diff --git a/src/App.css b/src/App.css index 29796ae..b1653ce 100644 --- a/src/App.css +++ b/src/App.css @@ -1022,6 +1022,13 @@ overflow: hidden; text-overflow: ellipsis; } +a.global-player-title { + color: inherit; + text-decoration: none; +} +a.global-player-title:hover { + text-decoration: underline; +} .global-player-body { display: grid; grid-template-rows: 1fr; @@ -4972,8 +4979,10 @@ body.has-fab .page-content { border-radius: 7px; background: transparent; color: var(--color-text); - font-size: 0.9rem; + font-size: 0.8rem; font-weight: 600; + letter-spacing: 0.04em; + text-transform: uppercase; white-space: nowrap; cursor: pointer; transition: background 0.12s; diff --git a/src/App.tsx b/src/App.tsx index 99fa06c..dcaf022 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -176,11 +176,11 @@ function App() { + - diff --git a/src/components/DumpCard.tsx b/src/components/DumpCard.tsx index 36b061a..cf5b04b 100644 --- a/src/components/DumpCard.tsx +++ b/src/components/DumpCard.tsx @@ -59,6 +59,7 @@ export function DumpCard( { if (isActive) togglePlay(); - else play({ kind: "file", fileUrl, mimeType: mime, title: dump.title }); + else play({ kind: "file", fileUrl, mimeType: mime, title: dump.title, dumpHref: dumpUrl(dump) }); }; const handleWaveformClick = (e: React.MouseEvent) => { @@ -59,7 +59,7 @@ function AudioFilePreview( } else { // Start playing and seek once it loads — seekTo after play() is a no-op // until MediaPlayer mounts; the fraction is best-effort on first click - play({ kind: "file", fileUrl, mimeType: mime, title: dump.title }); + play({ kind: "file", fileUrl, mimeType: mime, title: dump.title, dumpHref: dumpUrl(dump) }); } }; @@ -178,7 +178,7 @@ export default function FilePreview( onClick={(e) => { e.preventDefault(); e.stopPropagation(); - play({ kind: "file", fileUrl, mimeType: mime, title: dump.title }); + play({ kind: "file", fileUrl, mimeType: mime, title: dump.title, dumpHref: dumpUrl(dump) }); }} > @@ -196,7 +196,7 @@ export default function FilePreview( onClick={(e) => { e.preventDefault(); e.stopPropagation(); - play({ kind: "file", fileUrl, mimeType: mime, title: dump.title }); + play({ kind: "file", fileUrl, mimeType: mime, title: dump.title, dumpHref: dumpUrl(dump) }); }} > {thumbOverride diff --git a/src/components/GlobalPlayer.tsx b/src/components/GlobalPlayer.tsx index befe47e..cf1d866 100644 --- a/src/components/GlobalPlayer.tsx +++ b/src/components/GlobalPlayer.tsx @@ -1,4 +1,5 @@ import { useContext, useEffect, useRef, useState } from "react"; +import { Link } from "react-router"; import { PlayerContext } from "../contexts/PlayerContext.ts"; import { MediaPlayer } from "./MediaPlayer.tsx"; @@ -75,7 +76,13 @@ export function GlobalPlayer() { ref={ref} >
- {title} + {current.dumpHref + ? ( + + {title} + + ) + : {title}}