From 1c7cef703b555927f3dda849231e842ae8d1fde7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Fri, 25 Apr 2025 13:50:54 +0200 Subject: [PATCH] SubRef --- packages/reffuse/src/ReffuseNamespace.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/reffuse/src/ReffuseNamespace.ts b/packages/reffuse/src/ReffuseNamespace.ts index 50dbea1..c4e2b21 100644 --- a/packages/reffuse/src/ReffuseNamespace.ts +++ b/packages/reffuse/src/ReffuseNamespace.ts @@ -23,6 +23,7 @@ export abstract class ReffuseNamespace { declare ["constructor"]: ReffuseNamespaceClass constructor() { + this.SubRef = this.SubRef.bind(this as any) as any this.SubscribeRefs = this.SubscribeRefs.bind(this as any) as any this.RefState = this.RefState.bind(this as any) as any this.SubscribeStream = this.SubscribeStream.bind(this as any) as any @@ -483,6 +484,17 @@ export abstract class ReffuseNamespace { } + SubRef, R>( + this: ReffuseNamespace, + props: { + readonly parent: SubscriptionRef.SubscriptionRef, + readonly path: P, + readonly children: (subRef: SubscriptionSubRef.SubscriptionSubRef, B>) => React.ReactNode + }, + ): React.ReactNode { + return props.children(this.useSubRef(props.parent, props.path)) + } + SubscribeRefs< const Refs extends readonly SubscriptionRef.SubscriptionRef[], R,