@tldraw/editor
Version:
tldraw infinite canvas SDK (editor).
93 lines (92 loc) • 3.75 kB
JavaScript
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