From 5bc8245ed244e8b553b3b7b680cc67477fb9a28b Mon Sep 17 00:00:00 2001 From: nmemmert Date: Thu, 3 Sep 2026 14:17:47 -0400 Subject: [PATCH 1/6] Add structured show notes form to Episode Highlights; v1.2.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace single showNotes textarea with five guided fields: Episode Summary, Key Themes, Scripture References, Key Quotes, and Resources & Links. Legacy showNotes content is preserved as a backward-compatible fallback — it auto-populates the Summary field in the admin editor and renders on the public episode detail page until overwritten with structured data. Co-Authored-By: Claude Sonnet 4.6 --- package.json | 2 +- src/AdminPage.tsx | 66 ++++++++++++++++++++++++++++++++++++++++++++--- src/App.tsx | 44 +++++++++++++++++++++++++++++-- src/content.ts | 7 +++++ 4 files changed, 113 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 67cea13..15b450b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "siteforge", "private": true, - "version": "1.2.2", + "version": "1.2.3", "type": "module", "scripts": { "dev": "vite", diff --git a/src/AdminPage.tsx b/src/AdminPage.tsx index a6805a1..83cf05b 100644 --- a/src/AdminPage.tsx +++ b/src/AdminPage.tsx @@ -1642,7 +1642,11 @@ const [dashboardNow, setDashboardNow] = useState(() => new Date()) summary: '', url: '', embedUrl: '', - showNotes: '', + showNotesSummary: '', + showNotesThemes: [], + showNotesScripture: [], + showNotesQuotes: [], + showNotesResources: [], discussionQuestions: [], }, ], @@ -1656,6 +1660,16 @@ const [dashboardNow, setDashboardNow] = useState(() => new Date()) })) } + function updatePodcastLinkStringArray(id: string, field: keyof PodcastFeaturedLink, raw: string) { + const items = raw.split('\n').map(s => s.trim()).filter(Boolean) + setForm(f => ({ + ...f, + podcastFeaturedLinks: (f.podcastFeaturedLinks ?? []).map(link => + link.id === id ? { ...link, [field]: items } : link + ), + })) + } + function updatePodcastLinkQuestions(id: string, raw: string) { const questions = raw.split('\n').map(q => q.trim()).filter(Boolean) setForm(f => ({ @@ -3440,8 +3454,54 @@ async function handleAssetUpload(event: ChangeEvent) {
- -