From 8cb7a9450baa90db087660ecd81a7f670000b96b Mon Sep 17 00:00:00 2001 From: mawkone Date: Fri, 15 May 2026 16:31:31 -0700 Subject: [PATCH] feat(ui): add manual reload button to preview device toggles --- .../[projectId]/(home)/preview/page.tsx | 9 +++-- .../preview-toolbar/preview-toolbar-state.ts | 12 ++++--- .../components/project/project-icon-rail.tsx | 36 ++++++++++++++++++- 3 files changed, 49 insertions(+), 8 deletions(-) diff --git a/vibn-frontend/app/[workspace]/project/[projectId]/(home)/preview/page.tsx b/vibn-frontend/app/[workspace]/project/[projectId]/(home)/preview/page.tsx index 06d1f13..c5e8806 100644 --- a/vibn-frontend/app/[workspace]/project/[projectId]/(home)/preview/page.tsx +++ b/vibn-frontend/app/[workspace]/project/[projectId]/(home)/preview/page.tsx @@ -26,7 +26,7 @@ export default function PreviewTab() { const previews = anatomy?.hosting.previews ?? []; // Find the port 3000 preview if it exists, otherwise fall back to null - const primaryPreview = previews.find(p => p.port === 3000); + const primaryPreview = previews.find((p) => p.port === 3000); const [iframeSrc, setIframeSrc] = useState(null); const iframeDomRef = useRef(null); @@ -34,6 +34,7 @@ export default function PreviewTab() { const origin = typeof window !== "undefined" ? window.location.origin : ""; const deviceMode = usePreviewToolbarStore((s) => s.deviceMode); + const refreshKey = usePreviewToolbarStore((s) => s.refreshKey); useLayoutEffect(() => { setIframeSrc(primaryPreview?.url ?? null); @@ -72,7 +73,7 @@ export default function PreviewTab() { ) : iframeSrc ? (