Files
AFFiNE-Mirror/packages/frontend/hooks/src/use-data-source-status.ts
T
2023-10-18 15:30:08 +00:00

16 lines
387 B
TypeScript

import { useCallback, useSyncExternalStore } from 'react';
import type { DataSourceAdapter, Status } from 'y-provider';
type UIStatus =
| Status
| {
type: 'unknown';
};
export function useDataSourceStatus(provider: DataSourceAdapter): UIStatus {
return useSyncExternalStore(
provider.subscribeStatusChange,
useCallback(() => provider.status, [provider])
);
}