UNPKG

collaborative-ui

Version:

React component library for building real-time collaborative editing applications.

31 lines (30 loc) 1.08 kB
import { JsonCrdtRepo } from 'json-crdt-repo'; import { BehaviorSubject } from 'rxjs'; import type { EditSession } from 'json-crdt-repo/lib/session/EditSession'; import type { NiceUiNavService } from 'nice-ui/lib/context/services/NiceUiNavService'; import type { DemoDefinition } from './types'; export interface DemoFilePersistedState { files: Omit<OpenDemoFile, 'session'>[]; selected: string; } export interface OpenDemoFile { id: string; session: EditSession; } export interface JsonCrdtDemosStateOpts { wsApi?: string; basePath: string[]; nav: NiceUiNavService; } export declare class JsonCrdtDemosState { readonly opts: JsonCrdtDemosStateOpts; readonly file$: BehaviorSubject<OpenDemoFile | null>; readonly sid: number; readonly repo: JsonCrdtRepo; readonly steps$: BehaviorSubject<string[]>; readonly selected$: BehaviorSubject<string>; constructor(opts: JsonCrdtDemosStateOpts); readonly select: (id: string) => void; readonly create: (definition: DemoDefinition) => void; url(id: string): string; }