UNPKG

@baqhub/sdk-react

Version:

The official React SDK for the BAQ federated app platform.

84 lines (83 loc) 6.66 kB
import { AnyBlobLink, AnyRecord, CleanRecordType, EntityRecord, Handler, IO, LiveQuery, Query, RecordKey, StandingDecision, StandingRecord, SubscriptionRecord, VersionHash } from "@baqhub/sdk"; import { FC, PropsWithChildren, ReactNode } from "react"; import { StoreIdentity } from "./storeIdentity.js"; import { UseRecordQueryOptions, UseRecordsQueryOptions, UseStaticRecordQueryOptions, UseStaticRecordsQueryOptions } from "./storeQuery.js"; export interface StoreEntityProviderProps extends PropsWithChildren { entity: string; } export interface StoreProps extends PropsWithChildren { identity?: StoreIdentity; onDisconnectRequest?: Handler; } export declare function createStore<R extends CleanRecordType<AnyRecord>[]>(...types: R): { RKnownRecord: IO.UnionC<[IO.UnionC<[CleanRecordType<EntityRecord>, CleanRecordType<EntityRecord>, ...R]>, CleanRecordType<StandingRecord>, CleanRecordType<SubscriptionRecord>]>; ProxyStore: FC<StoreEntityProviderProps>; Store: FC<StoreProps>; wrapInProxyStore: (entity: string) => (children: ReactNode) => import("react/jsx-runtime").JSX.Element; useRecordsQuery: <Q extends StandingRecord | IO.TypeOf<[CleanRecordType<EntityRecord>, CleanRecordType<EntityRecord>, ...R][number]> | SubscriptionRecord>(requestedQuery: LiveQuery<Q>, options?: UseRecordsQueryOptions) => { isLoading: boolean; error: unknown; isLoadingMore: boolean; loadMoreError: unknown; loadMore: (() => void) | undefined; records: readonly Q[]; deferredRecords: readonly Q[]; getRecords: () => readonly Q[]; getDeferredRecords: () => readonly Q[]; query: Query<Q>; deferredQuery: Query<Q>; }; useStaticRecordsQuery: <Q extends StandingRecord | IO.TypeOf<[CleanRecordType<EntityRecord>, CleanRecordType<EntityRecord>, ...R][number]> | SubscriptionRecord>(requestedQuery: Query<Q>, options?: UseStaticRecordsQueryOptions) => { isLoading: boolean; isRefreshing: boolean; error: unknown; isLoadingMore: boolean; loadMoreError: unknown; loadMore: (() => void) | undefined; hasResults: boolean; records: readonly Q[]; deferredRecords: readonly Q[]; getRecords: () => readonly Q[]; getDeferredRecords: () => readonly Q[]; query: Query<Q>; deferredQuery: Query<Q>; }; useRecordQuery: <Q extends StandingRecord | IO.TypeOf<[CleanRecordType<EntityRecord>, CleanRecordType<EntityRecord>, ...R][number]> | SubscriptionRecord>(requestedQuery: LiveQuery<Q>, options?: UseRecordQueryOptions) => { isLoading: boolean; record: Q | undefined; deferredRecord: Q | undefined; getRecord: (() => Q | undefined) & import("lodash").MemoizedFunction; getDeferredRecord: (() => Q | undefined) & import("lodash").MemoizedFunction; }; useStaticRecordQuery: <Q extends StandingRecord | IO.TypeOf<[CleanRecordType<EntityRecord>, CleanRecordType<EntityRecord>, ...R][number]> | SubscriptionRecord>(requestedQuery: Query<Q>, { refreshIntervalSeconds }?: UseStaticRecordQueryOptions) => { isLoading: boolean; record: Q | undefined; deferredRecord: Q | undefined; getRecord: (() => Q | undefined) & import("lodash").MemoizedFunction; getDeferredRecord: (() => Q | undefined) & import("lodash").MemoizedFunction; }; useRecordHelpers: () => { isAuthenticated: boolean; entity: string; proxyEntity: string; discover: (entity: string, signal?: AbortSignal) => Promise<EntityRecord>; downloadBlob: (record: AnyRecord, blob: AnyBlobLink, signal?: AbortSignal) => Promise<Blob>; recordByVersion: <Q extends StandingRecord | IO.TypeOf<[CleanRecordType<EntityRecord>, CleanRecordType<EntityRecord>, ...R][number]> | SubscriptionRecord>(version: VersionHash<Q>) => Extract<StandingRecord, Q> | Extract<IO.TypeOf<[CleanRecordType<EntityRecord>, CleanRecordType<EntityRecord>, ...R][number]>, Q> | Extract<SubscriptionRecord, Q>; recordByKey: <Q extends AnyRecord>(key: RecordKey<Q>) => Extract<AnyRecord, Q>; findRecordByKey: <Q extends AnyRecord>(key: RecordKey<Q>) => Extract<AnyRecord, Q> | undefined; findRecordByQuery: <Q extends AnyRecord>(query: Query<Q>) => Q | undefined; findEntityRecord: (targetEntity: string) => EntityRecord | undefined; findStandingDecision: (publisherEntity: string) => `${StandingDecision}`; updateStandingDecision: (publisherEntity: string, decision: StandingDecision) => void; updateRecords: import("./storeTypes.js").UpdateRecords<StandingRecord | IO.TypeOf<[CleanRecordType<EntityRecord>, CleanRecordType<EntityRecord>, ...R][number]> | SubscriptionRecord>; uploadBlob: (blob: Blob, signal?: AbortSignal) => Promise<import("@baqhub/sdk").BlobResponse>; buildBlobUrl: <R_1 extends StandingRecord | IO.TypeOf<[CleanRecordType<EntityRecord>, CleanRecordType<EntityRecord>, ...R][number]> | SubscriptionRecord>(record: R_1, blob: AnyBlobLink, expiresInSeconds?: number) => string; onDisconnectRequest: Handler; }; useRecordByVersion: <Q extends StandingRecord | IO.TypeOf<[CleanRecordType<EntityRecord>, CleanRecordType<EntityRecord>, ...R][number]> | SubscriptionRecord, K extends RecordKey<Q> | undefined>(version: VersionHash<Q> | K) => (undefined extends K ? undefined : never) | Extract<StandingRecord, Q> | Extract<IO.TypeOf<[CleanRecordType<EntityRecord>, CleanRecordType<EntityRecord>, ...R][number]>, Q> | Extract<SubscriptionRecord, Q>; useRecordByKey: <Q extends StandingRecord | IO.TypeOf<[CleanRecordType<EntityRecord>, CleanRecordType<EntityRecord>, ...R][number]> | SubscriptionRecord, K extends RecordKey<Q> | undefined>(key: RecordKey<Q> | K) => (undefined extends K ? undefined : never) | Extract<StandingRecord, Q> | Extract<IO.TypeOf<[CleanRecordType<EntityRecord>, CleanRecordType<EntityRecord>, ...R][number]>, Q> | Extract<SubscriptionRecord, Q>; useFindRecordByKey: <Q extends StandingRecord | IO.TypeOf<[CleanRecordType<EntityRecord>, CleanRecordType<EntityRecord>, ...R][number]> | SubscriptionRecord>(key: RecordKey<Q> | undefined) => Extract<AnyRecord, Q> | undefined; useFindRecordByQuery: <Q extends StandingRecord | IO.TypeOf<[CleanRecordType<EntityRecord>, CleanRecordType<EntityRecord>, ...R][number]> | SubscriptionRecord>(query: Query<Q> | undefined) => Q | undefined; useFindEntityRecord: (entity: string | undefined) => EntityRecord | undefined; useFindStandingDecision: (entity: string | undefined) => "undecided" | "allow" | "block"; };