UNPKG

@telegram-apps/sdk-react

Version:

React bindings for Mini Apps client SDK. Contains hooks, components and other useful tools which allow usage of React along with Mini Apps client SDK.

1 lines 964 B
{"version":3,"file":"index.cjs","sources":["../src/useSignal.ts"],"sourcesContent":["import { useSyncExternalStore } from 'react';\n\n/**\n * Returns the underlying signal value updating it each time the signal value changes.\n * @param signal - a signal.\n * @param getServerSnapshot - an optional function returning the signal value snapshot. It is used only during SSR\n * to provide an initial value of the signal. When not set, defaults to the signal itself.\n */\nexport function useSignal<T>(\n signal: {\n (): T;\n sub(fn: VoidFunction): VoidFunction;\n },\n getServerSnapshot?: () => T\n): T {\n return useSyncExternalStore(\n (onStoreChange) => signal.sub(onStoreChange),\n signal,\n getServerSnapshot || signal\n );\n}\n"],"names":["useSignal","signal","getServerSnapshot","useSyncExternalStore","onStoreChange"],"mappings":"yIAQgB,SAAAA,EACdC,EAIAC,EACG,CACI,OAAAC,EAAA,qBACJC,GAAkBH,EAAO,IAAIG,CAAa,EAC3CH,EACAC,GAAqBD,CAAA,CAEzB"}