summaryrefslogtreecommitdiff
path: root/apps/web/src/guides/preview-overlay.tsx
diff options
context:
space:
mode:
authorMaze Winther <mazewinther@gmail.com>2026-04-20 11:31:17 +0200
committerMaze Winther <mazewinther@gmail.com>2026-04-20 11:31:17 +0200
commit3e89d2998588f8e35c524e523ba2ee853f0f6475 (patch)
tree57221f96c1259b3b07e3ddf8c1adefc502b9d8eb /apps/web/src/guides/preview-overlay.tsx
parent729d10592f4e802f91c555c309ff3ba4b119f843 (diff)
downloadopencut-3e89d2998588f8e35c524e523ba2ee853f0f6475.tar.gz
refactor: restructure files to their domains, new preview overlay system, and dep graph
Diffstat (limited to 'apps/web/src/guides/preview-overlay.tsx')
-rw-r--r--apps/web/src/guides/preview-overlay.tsx33
1 files changed, 33 insertions, 0 deletions
diff --git a/apps/web/src/guides/preview-overlay.tsx b/apps/web/src/guides/preview-overlay.tsx
new file mode 100644
index 00000000..d71adb12
--- /dev/null
+++ b/apps/web/src/guides/preview-overlay.tsx
@@ -0,0 +1,33 @@
+import { getGuideById, type GuideId } from "@/guides";
+import {
+ EMPTY_PREVIEW_OVERLAY_SOURCE_RESULT,
+ type PreviewOverlaySourceResult,
+} from "@/preview/overlays";
+
+export function getGuidePreviewOverlaySource({
+ guideId,
+}: {
+ guideId: GuideId | null;
+}): PreviewOverlaySourceResult {
+ const guide = getGuideById(guideId);
+ if (!guide) {
+ return EMPTY_PREVIEW_OVERLAY_SOURCE_RESULT;
+ }
+
+ return {
+ definitions: [],
+ instances: [
+ {
+ id: `guide-${guide.id}`,
+ mount: { kind: "scene" },
+ plane: "under-interaction",
+ pointerEvents: "none",
+ render: ({ sceneHeight, sceneWidth }) =>
+ guide.renderOverlay({
+ width: sceneWidth,
+ height: sceneHeight,
+ }),
+ },
+ ],
+ };
+}