notes upgrade

This commit is contained in:
nmemmert
2026-06-18 13:43:17 -04:00
parent e0ed798741
commit dd43d0c3ea
9 changed files with 1591 additions and 155 deletions
+37 -13
View File
@@ -795,6 +795,15 @@ function DownloadLibrarySection({ content }: { content: SiteContent }) {
{tag}
</button>
))}
{activeTag !== null && (
<button
type="button"
className="download-clear-link"
onClick={() => { setActiveTag(null); setActiveType('all') }}
>
Clear
</button>
)}
</div>
)}
</div>
@@ -1497,20 +1506,24 @@ function EpisodeDetailPage({ content }: { content: SiteContent }) {
<h1 className="episode-detail-title">{episode.title}</h1>
{episode.summary && <p className="episode-detail-summary">{episode.summary}</p>}
{resolvedEmbedUrl && (
{(episode.embedUrl || episode.url) && (
<div className="episode-detail-embed">
{resolvedEmbedUrl.includes('spotify.com') ? (
<iframe
src={resolvedEmbedUrl}
title={episode.title}
width="100%"
height="152"
frameBorder="0"
allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture"
loading="lazy"
/>
{resolvedEmbedUrl ? (
resolvedEmbedUrl.includes('spotify.com') ? (
<iframe
src={resolvedEmbedUrl}
title={episode.title}
width="100%"
height="152"
frameBorder="0"
allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture"
loading="lazy"
/>
) : (
<EpisodeAudioPlayer src={resolvedEmbedUrl} title={episode.title} size="full" spotifyUrl={episode.url || content.platformSpotifyUrl} />
)
) : (
<EpisodeAudioPlayer src={resolvedEmbedUrl} title={episode.title} size="full" spotifyUrl={episode.url || content.platformSpotifyUrl} />
<div className="episode-embed-skeleton" aria-label="Loading player…" />
)}
</div>
)}
@@ -1870,7 +1883,18 @@ function PublicCertificatePage() {
)
if (status === 'loading') {
return <main className="thanks-page"><div className="thanks-card"><p>Loading certificate</p></div></main>
return (
<main className="thanks-page">
<div className="cert-skeleton-wrap" aria-busy="true" aria-label="Loading certificate">
<div className="cert-skeleton-card">
<div className="cert-skeleton-line cert-skeleton-line--short" />
<div className="cert-skeleton-line cert-skeleton-line--title" />
<div className="cert-skeleton-line cert-skeleton-line--medium" />
<div className="cert-skeleton-line cert-skeleton-line--short" />
</div>
</div>
</main>
)
}
if (status === 'not-found' || !cert) {
return (