"use client"; import { createContext, useContext } from "react"; import type { CanvasState } from "@/types/canvas"; export type CanvasRemoteOperationResult = { projectId: string; canvasData: CanvasState; updatedAt: string; }; export type CanvasRemoteOperation = (() => Promise) | (() => Promise); export const CanvasRemoteOperationContext = createContext< { run: (operation: CanvasRemoteOperation) => Promise; applySnapshot: (result: CanvasRemoteOperationResult) => boolean; } | null >(null); export function useCanvasRemoteOperation() { return useContext(CanvasRemoteOperationContext)?.run || null; } export function useCanvasRemoteSnapshot() { return useContext(CanvasRemoteOperationContext)?.applySnapshot || null; }