MCPcopy Index your code
hub / github.com/tinyplex/tinybase / useCreateSynchronizer

Function useCreateSynchronizer

src/ui-react/hooks.ts:2397–2428  ·  view source on GitHub ↗
(
  store: MergeableStore | undefined,
  create: (store: MergeableStore) => Promise<SynchronizerOrUndefined>,
  createDeps: DependencyList = EMPTY_ARRAY,
  destroy?: (synchronizer: Synchronizer) => void,
  destroyDeps: DependencyList = EMPTY_ARRAY,
)

Source from the content-addressed store, hash-verified

2395 );
2396
2397export const useCreateSynchronizer: typeof useCreateSynchronizerDecl = <
2398 SynchronizerOrUndefined extends Synchronizer | undefined,
2399>(
2400 store: MergeableStore | undefined,
2401 create: (store: MergeableStore) => Promise<SynchronizerOrUndefined>,
2402 createDeps: DependencyList = EMPTY_ARRAY,
2403 destroy?: (synchronizer: Synchronizer) => void,
2404 destroyDeps: DependencyList = EMPTY_ARRAY,
2405): SynchronizerOrUndefined => {
2406 const [synchronizer, setSynchronizer] = useState<any>();
2407 useEffect(
2408 () => {
2409 (async () => {
2410 const synchronizer = store ? await create(store) : undefined;
2411 setSynchronizer(synchronizer);
2412 })();
2413 },
2414 // eslint-disable-next-line react-hooks/exhaustive-deps
2415 [store, ...createDeps],
2416 );
2417 useEffect(
2418 () => () => {
2419 if (synchronizer) {
2420 synchronizer.destroy();
2421 destroy?.(synchronizer);
2422 }
2423 },
2424 // eslint-disable-next-line react-hooks/exhaustive-deps
2425 [synchronizer, ...destroyDeps],
2426 );
2427 return synchronizer;
2428};
2429
2430export const useSynchronizerIds: typeof useSynchronizerIdsDecl = () =>
2431 useThingIds(OFFSET_SYNCHRONIZER);

Callers 1

TestFunction · 0.90

Calls 2

destroyMethod · 0.65
destroyFunction · 0.50

Tested by 1

TestFunction · 0.72

Used in the wild real call sites across dependent graphs

searching dependent graphs…