Skip to content

Runtime data access

View as Markdown

GridLevelRuntime.data exposes source reads, queries, and reconcile events. It does not expose raw writes.

type RuntimeLevelDataSource = {
state(): LevelSourceState;
subscribe(listener: () => void): () => void;
readonly query?: LevelQueryCapabilities;
readonly canWrite: boolean;
onReconcile(listener: (event: ReconcileEvent) => void): () => void;
};
const level = runtime.root;
const state = level.data.state();
await level.data.query?.sort?.set([{ colId: "dueDate", direction: "asc" }]);
await level.data.query?.filter?.set({ status: "open" });
await level.data.query?.refetch?.();

React components can adapt the facade with useSyncExternalStore():

const level = useGridRuntime().level(path);
const state = useSyncExternalStore(
level.data.subscribe,
level.data.state,
level.data.state,
);

Use level.data.subscribe() directly in non-React hosts.