UNPKG

@tldraw/editor

Version:

tldraw infinite canvas SDK (editor).

93 lines (92 loc) 3.75 kB
import { jsx } from "react/jsx-runtime"; import { createContext, useContext, useMemo } from "react"; import { DefaultBackground } from "../components/default-components/DefaultBackground.mjs"; import { DefaultBrush } from "../components/default-components/DefaultBrush.mjs"; import { DefaultCanvas } from "../components/default-components/DefaultCanvas.mjs"; import { DefaultCollaboratorHint } from "../components/default-components/DefaultCollaboratorHint.mjs"; import { DefaultCursor } from "../components/default-components/DefaultCursor.mjs"; import { DefaultErrorFallback } from "../components/default-components/DefaultErrorFallback.mjs"; import { DefaultGrid } from "../components/default-components/DefaultGrid.mjs"; import { DefaultHandle } from "../components/default-components/DefaultHandle.mjs"; import { DefaultHandles } from "../components/default-components/DefaultHandles.mjs"; import { DefaultLoadingScreen } from "../components/default-components/DefaultLoadingScreen.mjs"; import { DefaultScribble } from "../components/default-components/DefaultScribble.mjs"; import { DefaultSelectionForeground } from "../components/default-components/DefaultSelectionForeground.mjs"; import { DefaultShapeErrorFallback } from "../components/default-components/DefaultShapeErrorFallback.mjs"; import { DefaultShapeIndicator } from "../components/default-components/DefaultShapeIndicator.mjs"; import { DefaultShapeIndicatorErrorFallback } from "../components/default-components/DefaultShapeIndicatorErrorFallback.mjs"; import { DefaultShapeIndicators } from "../components/default-components/DefaultShapeIndicators.mjs"; import { DefaultSnapIndicator } from "../components/default-components/DefaultSnapIndictor.mjs"; import { DefaultSpinner } from "../components/default-components/DefaultSpinner.mjs"; import { DefaultSvgDefs } from "../components/default-components/DefaultSvgDefs.mjs"; import { useShallowObjectIdentity } from "./useIdentity.mjs"; const EditorComponentsContext = createContext(null); function EditorComponentsProvider({ overrides = {}, children }) { const _overrides = useShallowObjectIdentity(overrides); const value = useMemo( () => ({ Background: DefaultBackground, Brush: DefaultBrush, Canvas: DefaultCanvas, CollaboratorBrush: DefaultBrush, CollaboratorCursor: DefaultCursor, CollaboratorHint: DefaultCollaboratorHint, CollaboratorScribble: DefaultScribble, CollaboratorShapeIndicator: DefaultShapeIndicator, Cursor: DefaultCursor, Grid: DefaultGrid, Handle: DefaultHandle, Handles: DefaultHandles, InFrontOfTheCanvas: null, LoadingScreen: DefaultLoadingScreen, OnTheCanvas: null, Overlays: null, Scribble: DefaultScribble, SelectionBackground: null, SelectionForeground: DefaultSelectionForeground, ShapeIndicator: DefaultShapeIndicator, ShapeIndicators: DefaultShapeIndicators, SnapIndicator: DefaultSnapIndicator, Spinner: DefaultSpinner, SvgDefs: DefaultSvgDefs, ZoomBrush: DefaultBrush, ErrorFallback: DefaultErrorFallback, ShapeErrorFallback: DefaultShapeErrorFallback, ShapeIndicatorErrorFallback: DefaultShapeIndicatorErrorFallback, ..._overrides }), [_overrides] ); return /* @__PURE__ */ jsx(EditorComponentsContext.Provider, { value, children }); } function useEditorComponents() { const components = useContext(EditorComponentsContext); if (!components) { throw new Error("useEditorComponents must be used inside of <EditorComponentsProvider />"); } return components; } export { EditorComponentsProvider, useEditorComponents }; //# sourceMappingURL=useEditorComponents.mjs.map