From 82ac9c88bb428d16d566793cce29dbc5aceaef08 Mon Sep 17 00:00:00 2001 From: Grant Date: Mon, 6 Jul 2026 01:48:18 -0600 Subject: [PATCH 1/2] set initial template position based on viewport --- .../components/Settings/TemplateSettings.tsx | 13 ++++++++++++- .../src/components/Templating/Template.tsx | 2 ++ .../client/src/contexts/TemplateContext.tsx | 19 +++++++++++++------ packages/client/src/lib/canvas.ts | 8 +++++++- packages/client/src/lib/router.ts | 12 ++++++------ 5 files changed, 40 insertions(+), 14 deletions(-) diff --git a/packages/client/src/components/Settings/TemplateSettings.tsx b/packages/client/src/components/Settings/TemplateSettings.tsx index 539a334..8ac9158 100644 --- a/packages/client/src/components/Settings/TemplateSettings.tsx +++ b/packages/client/src/components/Settings/TemplateSettings.tsx @@ -6,6 +6,7 @@ import { toast } from "react-toastify"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faLink } from "@fortawesome/free-solid-svg-icons"; import { WebGLUtils } from "@/lib/webgl"; +import { CanvasCore } from "@/lib/canvas"; export const TemplateSettings = () => { const { @@ -42,6 +43,16 @@ export const TemplateSettings = () => { isSelected={enable || false} onValueChange={(bool: boolean) => { setEnable(bool); + + if (bool && x === undefined && y === undefined) { + const canvas = CanvasCore.get(false); + if (canvas) { + const { canvasX, canvasY } = + canvas.panZoomTransformToCanvas(); + setX(canvasX); + setY(canvasY); + } + } }} />

Template

@@ -121,7 +132,7 @@ export const TemplateSettings = () => { > Show Mobile Tools - {url && ( + {url && x !== undefined && y !== undefined && (