UNPKG

@funkit/connect

Version:

Funkit Connect SDK elevates DeFi apps via web2 sign-ins and one-click checkouts.

26 lines (25 loc) 1.28 kB
import React, { type ReactNode } from 'react'; import type { FlagKey } from '@funkit/utils'; import { flagConfig as offlineConfig } from '../utils/flags/config'; import type { InferFlagType } from '../utils/flags/types'; export type FlagValue<K extends FlagKey> = InferFlagType<(typeof offlineConfig)[K]>; export type FlagValues = { [K in FlagKey]?: FlagValue<K>; }; export type GetFlagFunction = <K extends FlagKey>(flagKey: K, fallback?: FlagValue<K>) => FlagValue<K>; export interface FunkitFlagsContextValue { /** Error fetching flag config from server */ error: Error | null; /** Loaded flags - each flag may be undefined if configuration from server was missing or invalid */ flags: FlagValues; /** Synchronously reads a single flag (derived for current user) - returns fallback while loading */ getFlag: GetFlagFunction; /** Whether flags are currently loading */ isLoading: boolean; } export declare const FunkitFlagsContext: React.Context<FunkitFlagsContextValue>; export declare function FunkitFlagsProvider({ children }: { children: ReactNode; }): React.JSX.Element; export declare function useFlags(): FunkitFlagsContextValue; export declare function useFlag<K extends FlagKey>(flagKey: K, fallback?: FlagValue<K>): FlagValue<K>;