diff --git a/modules/rsplat/components/folk-splat-viewer.ts b/modules/rsplat/components/folk-splat-viewer.ts index f191b310..48b9c3d9 100644 --- a/modules/rsplat/components/folk-splat-viewer.ts +++ b/modules/rsplat/components/folk-splat-viewer.ts @@ -506,14 +506,17 @@ export class FolkSplatViewer extends HTMLElement { let selectedFile: File | null = null; - browse?.addEventListener("click", () => fileInput.click()); + browse?.addEventListener("click", (e) => { + e.stopPropagation(); + fileInput.click(); + }); // Make the entire dotted drop area open file browser on click const generateMode = this.querySelector("#splat-mode-generate") as HTMLElement; generateMode?.addEventListener("click", (e) => { const target = e.target as HTMLElement; - // Don't trigger if clicking on buttons, inputs, or the preview image - if (target.closest("button, input, .splat-generate__preview, .splat-generate__progress")) return; + // Don't trigger if clicking on buttons, inputs, the browse link, or the preview image + if (target.closest("button, input, #generate-browse, .splat-generate__preview, .splat-generate__progress")) return; fileInput.click(); }); diff --git a/modules/rsplat/mod.ts b/modules/rsplat/mod.ts index 47746a2a..5dd184ea 100644 --- a/modules/rsplat/mod.ts +++ b/modules/rsplat/mod.ts @@ -726,7 +726,7 @@ routes.get("/", async (c) => { `, scripts: ` `, });