feat: icon view toggle, failing filter, quality badges
List and Tiles are now icons rather than words, centred in their buttons — Segmented takes a ReactNode label and an optional title. The red "N failing" count in the sidebar is a button: click it to see only the channels that failed to refresh, click again for all of them. It clears itself once a refresh fixes everything, so the filter can never strand you on an empty list. The player states its quality as a badge instead of loose grey text, and a downloaded video now says so too — "Downloaded · 1440p" — read from the file itself. Quality is the short side, so a portrait Short reads 1080p rather than 1920p, and it resets between videos so one never inherits the previous one's number.
This commit is contained in:
@@ -123,8 +123,27 @@ export default function TopBar({
|
||||
value={view}
|
||||
onChange={onView}
|
||||
options={[
|
||||
{ value: "list", label: "List" },
|
||||
{ value: "grid", label: "Tiles" },
|
||||
{
|
||||
value: "list",
|
||||
title: "List",
|
||||
label: (
|
||||
<svg viewBox="0 0 24 24" className="size-4" fill="none" stroke="currentColor" strokeWidth="2">
|
||||
<path strokeLinecap="round" d="M4 6h16M4 12h16M4 18h16" />
|
||||
</svg>
|
||||
),
|
||||
},
|
||||
{
|
||||
value: "grid",
|
||||
title: "Tiles",
|
||||
label: (
|
||||
<svg viewBox="0 0 24 24" className="size-4" fill="none" stroke="currentColor" strokeWidth="2">
|
||||
<rect x="4" y="4" width="7" height="7" rx="1.5" />
|
||||
<rect x="13" y="4" width="7" height="7" rx="1.5" />
|
||||
<rect x="4" y="13" width="7" height="7" rx="1.5" />
|
||||
<rect x="13" y="13" width="7" height="7" rx="1.5" />
|
||||
</svg>
|
||||
),
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user