All files / collaborative-react/src components.ts

100% Statements 8/8
100% Branches 0/0
100% Functions 3/3
100% Lines 3/3

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 191x                 6x               10x  
import {useModel, useNode} from './hooks';
import type {Model} from 'json-joy/lib/json-crdt';
import type {CrdtNodeApi} from './types';
 
export interface UseModelProps<M extends Model<any>> {
  model?: M;
  render: (model: M) => React.ReactNode;
}
 
export const UseModel = <M extends Model<any>>({model, render}: UseModelProps<M>) => render(useModel((m) => m, model));
 
export interface UseNodeProps {
  node?: CrdtNodeApi;
  event?: 'self' | 'child' | 'subtree';
  render: (node: CrdtNodeApi) => React.ReactNode;
}
 
export const UseNode: React.FC<UseNodeProps> = ({node, event, render}) => render(useNode(node, event));