summaryrefslogtreecommitdiff
path: root/apps/web/src/guides/preview-overlay.tsx
diff options
context:
space:
mode:
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,
+ }),
+ },
+ ],
+ };
+}