diff --git a/apps/web/src/components/PosterEditorPane.tsx b/apps/web/src/components/PosterEditorPane.tsx index b931305f..70b528a0 100644 --- a/apps/web/src/components/PosterEditorPane.tsx +++ b/apps/web/src/components/PosterEditorPane.tsx @@ -47,6 +47,7 @@ import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, + DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; @@ -1445,6 +1446,16 @@ export default function PosterEditorPane({ {toast} )} + {document.sourceMemoId && ( + + )} {toolButton( t("poster.save"), saving ? ( @@ -1583,6 +1594,39 @@ export default function PosterEditorPane({ + + + + + + + {document.width} × {document.height} px + + { setAutoFit(true); setZoom(fitZoom); }}> + {t("poster.design.fit")} + + + { setAutoFit(false); setZoom(Math.max(0.1, zoom / 1.2)); }}> + {t("poster.design.zoomOut")} + + { setAutoFit(false); setZoom(Math.min(2, zoom * 1.2)); }}> + {t("poster.design.zoomIn")} + + + {[0.25, 0.5, 0.75, 1, 1.5, 2].map((value) => ( + { setAutoFit(false); setZoom(value); }}> + {value * 100}% + + ))} + +

+ {t(selectedIds.length ? "poster.design.selectionCount" : "poster.design.canvasHint", { count: selectedIds.length })} +

+
+
{toolButton( t("poster.text"), @@ -1978,75 +2022,6 @@ export default function PosterEditorPane({ )}
-