diff --git a/app/c/[id]/clip-client.tsx b/app/c/[id]/clip-client.tsx index a397262..8c73e5a 100644 --- a/app/c/[id]/clip-client.tsx +++ b/app/c/[id]/clip-client.tsx @@ -30,61 +30,73 @@ export default function ClipClient({ }, []); return ( -
-
!soundOn && setSound(true)}> -
- +
{/* ---- top bar ---- */} -
-
+
+
INFINITE - + REPLAY
-
+
+ {/* ---- player ---- */} +
!soundOn && setSound(true)} + > +
+ {/* ---- lower third ---- */} -
-
- From the archive -
-
- {clip.title} +
+
+
+ From the archive +
+
+ {clip.title} +
+
{credit}
-
{credit}
{/* ---- bottom bar ---- */} -
+
void; onFund: (text: string, author: ChatAuthor) => void; fundDisabled: boolean; }) { @@ -68,7 +63,7 @@ export default function ChatPanel({ useEffect(() => { const el = list.current; if (el && stickToBottom.current) el.scrollTop = el.scrollHeight; - }, [messages, open]); + }, [messages]); const onScroll = useCallback(() => { const el = list.current; @@ -112,7 +107,7 @@ export default function ChatPanel({ return (
@@ -207,7 +193,7 @@ export default function ChatPanel({ maxLength={CHAT_MAX_LEN} placeholder={`Yell at the TV as ${identity.name}โ€ฆ`} aria-label="Chat message" - className="min-w-0 flex-1 border-2 border-teal/60 bg-void px-2 py-1.5 text-sm outline-none focus:border-teal" + className="min-w-0 flex-1 border-2 border-teal/60 bg-void px-2 py-1.5 text-base outline-none focus:border-teal md:text-sm" /> - )}
+ {/* ---- player ---- */} +
+
+ {/* ---- activity toasts ---- */}
{toasts.map((a) => ( @@ -384,32 +387,55 @@ export default function StreamClient() { {/* ---- config error banner ---- */} {now?.configError && ( -
+
โš  STATION MISCONFIGURED: {now.configError}
)} {/* ---- lower third ---- */} -
- {now?.clip && ( + {now?.clip && ( +
Now showing
-
+
{now.clip.title}
{now.clip.kind === "paid" ? `submitted by ${now.clip.credit || "an anonymous weirdo"}` : "written by the house AI"} + {now.viewers && now.viewers.count > 0 && ( + ยท {now.viewers.count} watching + )}
- )} -
+
+ )} + + {/* ---- phone-only: up next fills the space under the player when chat is off ---- */} + {!chatOn && ( +
+ {now?.upNext && now.upNext.length > 0 && ( + <> +
+ Up next +
+
    + {now.upNext.map((c, i) => ( +
  1. + {i + 1}. {c.title} +
  2. + ))} +
+ + )} +
+ )} {/* ---- bottom bar ---- */} -
+