import { useMemo } from 'react'; import { stringify } from 'uuid'; import { CRDTOperation, CRDTOperationData, useLibraryQuery, useLibrarySubscription } from '@sd/client'; import { useRouteTitle } from '~/hooks/useRouteTitle'; type MessageGroup = { model: string; id: string; messages: { data: CRDTOperationData; timestamp: number }[]; }; export const Component = () => { useRouteTitle('Sync'); const messages = useLibraryQuery(['sync.messages']); useLibrarySubscription(['sync.newMessage'], { onData: () => messages.refetch() }); const groups = useMemo( () => (messages.data && calculateGroups(messages.data)) || [], [messages] ); return (
{message.data === 'c' ? 'Create' : 'Delete'}
) : (Update - {message.data.u.field}
)}{message.timestamp}