Hold episode highlights until the episode is in the Spotify feed; auto-fill study lesson audio from the feed by season + episode; v2.19.0
Publish Container / build (push) Successful in 16m16s
Publish Container / build (push) Successful in 16m16s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
69d445013a
commit
77bce2ae0c
11 files changed
+127
-17
No files matched your search
+19
-1
@@ -2762,6 +2762,7 @@ const [dashboardNow, setDashboardNow] = useState(() => new Date())
|
||||
{
|
||||
id: Date.now().toString(36),
|
||||
lane: 'primary' as const,
|
||||
holdUntilReleased: true,
|
||||
title: '',
|
||||
episodeNumber: '',
|
||||
summary: '',
|
||||
@@ -2778,7 +2779,7 @@ const [dashboardNow, setDashboardNow] = useState(() => new Date())
|
||||
}))
|
||||
}
|
||||
|
||||
function updatePodcastLink(id: string, field: keyof PodcastFeaturedLink, value: string) {
|
||||
function updatePodcastLink(id: string, field: keyof PodcastFeaturedLink, value: string | boolean) {
|
||||
setForm(f => ({
|
||||
...f,
|
||||
podcastFeaturedLinks: (f.podcastFeaturedLinks ?? []).map(link => link.id === id ? { ...link, [field]: value } : link),
|
||||
@@ -5151,6 +5152,22 @@ const [dashboardNow, setDashboardNow] = useState(() => new Date())
|
||||
</select>
|
||||
<p className="admin-field-help">Groups this highlight under its series on the Episodes page. When a series ends, its highlights move onto that book's Finished Books page. General highlights stay.</p>
|
||||
</div>
|
||||
{activeHighlight.lane !== 'general' && (
|
||||
<div className="admin-field">
|
||||
<label htmlFor={`podcast-hold-${activeHighlight.id}`}>
|
||||
<input
|
||||
id={`podcast-hold-${activeHighlight.id}`}
|
||||
type="checkbox"
|
||||
checked={activeHighlight.holdUntilReleased === true}
|
||||
onChange={e => updatePodcastLink(activeHighlight.id, 'holdUntilReleased', e.target.checked)}
|
||||
/>{' '}
|
||||
Publish when the episode is released on Spotify
|
||||
</label>
|
||||
<p className="admin-field-help">
|
||||
Hidden on the site until this lane's season number and the episode number below appear in your Spotify feed (checked every few minutes). Needs an episode number. Set each lane's season number on the Episode Workflow page.
|
||||
</p>
|
||||
</div>
|
||||
)}
|
||||
<div className="admin-field">
|
||||
<label htmlFor={`podcast-ep-${activeHighlight.id}`}>Episode Number</label>
|
||||
<input id={`podcast-ep-${activeHighlight.id}`} type="text" placeholder="e.g. 42" value={activeHighlight.episodeNumber ?? ''} onChange={e => updatePodcastLink(activeHighlight.id, 'episodeNumber', e.target.value)} />
|
||||
@@ -6185,6 +6202,7 @@ const [dashboardNow, setDashboardNow] = useState(() => new Date())
|
||||
<option value={activeLesson.audioEmbedUrl}>{activeLesson.audioEmbedUrl}</option>
|
||||
)}
|
||||
</select>
|
||||
<p className="admin-field-help">Leave this as "No audio" to fill it in automatically: once this lane's season number and the Episode # below appear in your Spotify feed, the lesson uses that episode's audio.</p>
|
||||
</div>
|
||||
<div className="admin-field">
|
||||
<label htmlFor={`sl-released-${activeLesson.id}`}>Release Date (optional)</label>
|
||||
|
||||
Reference in new issue
Block a user