Reapply "Add missing admin action files and navigation links"

This reverts commit 4d515bc400.
This commit is contained in:
Simo committed 2026-07-11 20:52:56 +02:00
1 parent 96ed768f14
commit 5b4228261a
338 files changed
+28143 -5948

No files matched your search

+17 -11
View File
@@ -60,7 +60,9 @@ export default function LogoGenerator() {
if (!cancelled) setFontError(true);
});
return () => { cancelled = true; };
return () => {
cancelled = true;
};
}, [styleName, safeText]);
const handleDownload = useCallback(() => {
@@ -81,7 +83,10 @@ export default function LogoGenerator() {
if (!canvas) return;
setSaveStatus("saving");
canvas.toBlob((blob) => {
if (!blob) { setSaveStatus("error"); return; }
if (!blob) {
setSaveStatus("error");
return;
}
const file = new File([blob], "logo.png", { type: "image/png" });
const fd = new FormData();
fd.append("file", file);
@@ -110,11 +115,16 @@ export default function LogoGenerator() {
try {
const info = await getFontInfo(font.styleName);
const canvas = renderToCanvas(info.chars, info.h, info.top, info.sheet, safeText, info.avgW);
if (!canvas) { fail++; continue; }
if (!canvas) {
fail++;
continue;
}
const blob = await new Promise<Blob | null>((r) => canvas.toBlob((b) => r(b), "image/png"));
if (blob) folder.file(`${font.styleName}.png`, blob);
else fail++;
} catch { fail++; }
} catch {
fail++;
}
}
const content = await zip.generateAsync({ type: "blob" });
@@ -198,12 +208,7 @@ export default function LogoGenerator() {
? "❌ Error"
: "💾 Save as site logo"}
</button>
<button
type="button"
className="btn btn-secondary"
onClick={handleDownloadAll}
disabled={zipping}
>
<button type="button" className="btn btn-secondary" onClick={handleDownloadAll} disabled={zipping}>
{zipping ? "⏳ Creating ZIP..." : "📦 Download all fonts"}
</button>
</div>
@@ -219,7 +224,8 @@ export default function LogoGenerator() {
borderRadius: "12px",
border: "1px dashed color-mix(in srgb, var(--color-text-muted) 30%, transparent)",
overflow: "auto",
background: "repeating-conic-gradient(color-mix(in srgb, var(--color-text-muted) 14%, transparent) 0% 25%, transparent 0% 50%) 50% / 22px 22px",
background:
"repeating-conic-gradient(color-mix(in srgb, var(--color-text-muted) 14%, transparent) 0% 25%, transparent 0% 50%) 50% / 22px 22px",
}}
>
{fontError ? (