@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 • 2.9 kB
Source Map (JSON)
{"version":3,"file":"index.cjs","sources":["../src/hooks.ts"],"sourcesContent":["import { useMemo, useSyncExternalStore } from 'react';\nimport {\n retrieveLaunchParams,\n retrieveRawLaunchParams,\n retrieveRawInitData,\n type RetrieveLPResult,\n type RetrieveLPResultCamelCased,\n} from '@telegram-apps/sdk';\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\n/**\n * @returns Launch parameters from any known source.\n * @param camelCase - should the output be camel-cased.\n * @throws {LaunchParamsRetrieveError} Unable to retrieve launch parameters. They are probably\n * invalid.\n */\nexport function useLaunchParams(camelCase?: false): RetrieveLPResult;\n/**\n * @returns Launch parameters from any known source.\n * @param camelCase - should the output be camel-cased.\n * @throws {LaunchParamsRetrieveError} Unable to retrieve launch parameters. They are probably\n * invalid.\n */\nexport function useLaunchParams(camelCase: true): RetrieveLPResultCamelCased;\nexport function useLaunchParams(camelCase?: boolean): RetrieveLPResult | RetrieveLPResultCamelCased {\n return useMemo(() => retrieveLaunchParams(camelCase as any), [camelCase]);\n}\n\n/**\n * @returns Launch parameters in a raw format from any known source.\n * @throws {LaunchParamsRetrieveError} Unable to retrieve launch parameters. They are probably\n * invalid.\n * @see retrieveRawLaunchParams\n */\nexport function useRawLaunchParams(): string {\n return useMemo(retrieveRawLaunchParams, []);\n}\n\n/**\n * @returns Raw init data from any known source.\n * @throws {LaunchParamsRetrieveError} Unable to retrieve launch params from any known source.\n */\nexport function useRawInitData(): string | undefined {\n return useMemo(retrieveRawInitData, []);\n}"],"names":["useSignal","signal","getServerSnapshot","useSyncExternalStore","onStoreChange","useLaunchParams","camelCase","useMemo","retrieveLaunchParams","useRawLaunchParams","retrieveRawLaunchParams","useRawInitData","retrieveRawInitData"],"mappings":"yIAegB,SAAAA,EACdC,EAIAC,EACG,CACI,OAAAC,EAAA,qBACJC,GAAkBH,EAAO,IAAIG,CAAa,EAC3CH,EACAC,GAAqBD,CAAA,CAEzB,CAgBO,SAASI,EAAgBC,EAAoE,CAClG,OAAOC,EAAAA,QAAQ,IAAMC,EAAA,qBAAqBF,CAAgB,EAAG,CAACA,CAAS,CAAC,CAC1E,CAQO,SAASG,GAA6B,CACpC,OAAAF,EAAA,QAAQG,0BAAyB,CAAA,CAAE,CAC5C,CAMO,SAASC,GAAqC,CAC5C,OAAAJ,EAAA,QAAQK,sBAAqB,CAAA,CAAE,CACxC"}