UNPKG

synapse-react-client

Version:

[![npm version](https://badge.fury.io/js/synapse-react-client.svg)](https://badge.fury.io/js/synapse-react-client) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettie

78 lines 3.1 kB
import { GridModel } from '@/components/DataGrid/DataGridTypes'; import { DataGridWebSocket } from './DataGridWebSocket'; interface WebSocketState { model: GridModel | null; /** * True if the WebSocket has finished the initial sync and can process CRDT updates. * Corresponds to the `GRID_READY` action. */ hasCompletedInitialSync: boolean; isConnected: boolean; isConnecting: boolean; connectionParams: { replicaId: number; sessionId: string; } | null; websocketInstance: DataGridWebSocket | null; connectionAttemptId: number | null; connectionError: unknown; } export declare const initialWebSocketState: WebSocketState; /** * Custom hook to manage a DataGrid WebSocket connection. * Handles: * - Fetching presigned URLs via a mutation hook * - Instantiating the DataGridWebSocket * - Connection status tracking * - Reconnection on disconnect * - Grid model updates and snapshot tracking */ export declare function useDataGridWebSocket(): { isConnected: boolean; websocketInstance: DataGridWebSocket | null; hasCompletedInitialSync: boolean; model: import("json-joy").Model<import("json-joy").ObjNode<{ doc_version: import("json-joy").ConNode<string>; columnNames: import("json-joy").VecNode<[import("json-joy").ConNode<string>]>; columnOrder: import("json-joy").ArrNode<never>; selection: import("json-joy").ObjNode<{ [x: string]: import("json-joy").ConNode<import("@/components/DataGrid/DataGridTypes").ReplicaSelectionModel>; }>; rows: import("json-joy").ArrNode<import("json-joy").ObjNode<{ data: import("json-joy").VecNode<[import("json-joy").ConNode<string>]>; metadata: import("json-joy").ObjNode<{ synapseRow: import("json-joy").ObjNode<{ rowId: import("json-joy").ConNode<number>; versionNumber: import("json-joy").ConNode<number>; etag: import("json-joy").ConNode<string>; }>; rowValidation: import("json-joy").ConNode<import("@sage-bionetworks/synapse-types").ValidationResults | undefined>; }>; }>>; }>> | null; modelSnapshot: { doc_version: string; columnNames: [string]; columnOrder: never[]; selection: { [x: string]: import("@/components/DataGrid/DataGridTypes").ReplicaSelectionModel; }; rows: { data: [string]; metadata: { synapseRow: { rowId: number; versionNumber: number; etag: string; }; rowValidation: import("@sage-bionetworks/synapse-types").ValidationResults | undefined; }; }[]; } | null; connect: (replicaId: number, sessionId: string) => void; presignedUrl: string | null; errorEstablishingWebsocketConnection: unknown; hasSufficientData: boolean; }; export {}; //# sourceMappingURL=useDataGridWebsocket.d.ts.map