From d29ef3d3ed3aa9c75db18bdb60ca9f709b3330bc Mon Sep 17 00:00:00 2001 From: Jared Schoeny Date: Thu, 9 Oct 2025 23:13:58 -1000 Subject: [PATCH] Make `SubmitForm` dummied out when not signed in --- src/app/submit/page.tsx | 2 +- src/components/Submit/SubmitForm.tsx | 413 ++++++++++++++++++--------- 2 files changed, 281 insertions(+), 134 deletions(-) diff --git a/src/app/submit/page.tsx b/src/app/submit/page.tsx index b3f5af8..45bcf7a 100644 --- a/src/app/submit/page.tsx +++ b/src/app/submit/page.tsx @@ -11,7 +11,7 @@ export default async function SubmitPage() {

Submit your ROM hack

Share your hack so others can discover and play it.

- +
{!user && } diff --git a/src/components/Submit/SubmitForm.tsx b/src/components/Submit/SubmitForm.tsx index 870cf20..9d18f8d 100644 --- a/src/components/Submit/SubmitForm.tsx +++ b/src/components/Submit/SubmitForm.tsx @@ -45,7 +45,11 @@ function SortableCoverItem({ id, index, url, onRemove }: { id: string; index: nu ); } -export default function SubmitForm() { +interface SubmitFormProps { + dummy?: boolean; +} + +export default function SubmitForm({ dummy = false }: SubmitFormProps) { const MAX_COVERS = 10; const [title, setTitle] = React.useState(""); const [author, setAuthor] = React.useState(""); @@ -180,48 +184,87 @@ export default function SubmitForm() { patchUrl: "", }; + const isDummy = !!dummy; + return (
+ {/* Title */}
- setTitle(e.target.value)} - className="h-11 rounded-md bg-[var(--surface-2)] px-3 text-sm ring-1 ring-inset ring-[var(--border)] focus:outline-none focus:ring-2 focus:ring-[var(--ring)]" - /> + {!isDummy ? ( + setTitle(e.target.value)} + className="h-11 rounded-md bg-[var(--surface-2)] px-3 text-sm ring-1 ring-inset ring-[var(--border)] focus:outline-none focus:ring-2 focus:ring-[var(--ring)]" + /> + ) : ( +
+ Your hack title +
+ )}
URL preview: /hack/{slug || "your-title"}
+ + {/* Author */}
- setAuthor(e.target.value)} - className="h-11 rounded-md bg-[var(--surface-2)] px-3 text-sm ring-1 ring-inset ring-[var(--border)] focus:outline-none focus:ring-2 focus:ring-[var(--ring)]" - /> + {!isDummy ? ( + setAuthor(e.target.value)} + className="h-11 rounded-md bg-[var(--surface-2)] px-3 text-sm ring-1 ring-inset ring-[var(--border)] focus:outline-none focus:ring-2 focus:ring-[var(--ring)]" + /> + ) : ( +
Your name
+ )}
+ + {/* Summary */}
{summary.length}/{summaryLimit}
- setSummary(e.target.value)} - placeholder="<= 100 characters" - className={`h-11 rounded-md px-3 text-sm ring-1 ring-inset focus:outline-none focus:ring-2 focus:ring-[var(--ring)] ${summaryTooLong ? "ring-red-600/40 bg-red-500/10 dark:ring-red-400/40 dark:bg-red-950/20" : "bg-[var(--surface-2)] ring-[var(--border)]"}`} - /> + {!isDummy ? ( + setSummary(e.target.value)} + placeholder="<= 100 characters" + className={`h-11 rounded-md px-3 text-sm ring-1 ring-inset focus:outline-none focus:ring-2 focus:ring-[var(--ring)] ${summaryTooLong ? "ring-red-600/40 bg-red-500/10 dark:ring-red-400/40 dark:bg-red-950/20" : "bg-[var(--surface-2)] ring-[var(--border)]"}`} + /> + ) : ( +
+ Short description, max 100 characters. +
+ )}
+ + {/* Long description */}
-
- - -
+ {!isDummy && ( +
+ + +
+ )}
- {!showMdPreview ? ( + {isDummy ? ( +
+ {description || "Write a longer markdown description here."} +
+ ) : !showMdPreview ? (