From 9980d5ba204a56359f2519fd70b464261cab6c2f Mon Sep 17 00:00:00 2001 From: orfelorfel23 Date: Wed, 3 Jun 2026 17:37:11 +0200 Subject: [PATCH] Remove duplicate MelodyMuse brand row in InputPanel The home page header already shows a small equalizer + 'MelodyMuse' wordmark. Having a second brand row inside the InputPanel was redundant and pushed the textarea down. Removed it; the form now starts directly with the 'Music idea' label. Bumped the textarea rows from 4 to 5 to fill the freed space. Also added: the server-status check on the home page now re-runs every 30s, so the 'Server offline' hint in the header stays current without a manual refresh. --- src/components/InputPanel.tsx | 13 +------------ src/pages/HomePage.tsx | 22 ++++++++++++++-------- 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/src/components/InputPanel.tsx b/src/components/InputPanel.tsx index c9cd33e..333c60d 100644 --- a/src/components/InputPanel.tsx +++ b/src/components/InputPanel.tsx @@ -9,7 +9,6 @@ import { Flame, Wand2, } from "lucide-react"; -import { EqualizerIcon } from "./EqualizerIcon"; import type { InputValues, Language, Vocals } from "../lib/types"; import { formatElapsed, useElapsed } from "../lib/useElapsed"; import { randomStyle } from "../lib/llm"; @@ -123,16 +122,6 @@ export function InputPanel({ return (
- {/* Brand */} -
- -
-

- MelodyMuse -

-
-
- {/* Main textarea */}
@@ -157,7 +146,7 @@ export function InputPanel({ value={values.idea} onChange={(e) => set("idea", e.target.value)} onKeyDown={onCmdEnter} - rows={4} + rows={5} placeholder="Describe your music idea…" className="textarea text-[15px] leading-relaxed" required diff --git a/src/pages/HomePage.tsx b/src/pages/HomePage.tsx index 38d617c..ac137ec 100644 --- a/src/pages/HomePage.tsx +++ b/src/pages/HomePage.tsx @@ -96,18 +96,24 @@ export function HomePage() { return () => window.clearTimeout(id); }, [input]); - // Check the server on mount. If unreachable, surface a quiet header hint. + // Check the server on mount and re-check periodically so the header + // "Server offline" hint stays current without a manual refresh. useEffect(() => { - const ctrl = new AbortController(); - (async () => { + let cancelled = false; + const check = async () => { try { - const s = await getServerStatus(ctrl.signal); - setServerOk(Boolean(s.ok)); + const s = await getServerStatus(); + if (!cancelled) setServerOk(Boolean(s.ok)); } catch { - setServerOk(false); + if (!cancelled) setServerOk(false); } - })(); - return () => ctrl.abort(); + }; + check(); + const id = window.setInterval(check, 30_000); + return () => { + cancelled = true; + window.clearInterval(id); + }; }, []); // Clean up any in-flight request on unmount.