From df0d1be6e1d4fadd2d74c23f8c31c4a49703c470 Mon Sep 17 00:00:00 2001 From: Joshua Ryder Date: Mon, 10 Nov 2025 18:30:53 -0500 Subject: [PATCH] Fix: Remove local setFavorites calls from child components MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit After centralizing favorites management in App.tsx, child components (BibleReader, BookSelector, ChapterSelector) were still trying to call setFavorites which no longer exists as local state. Fixed by: - Removing all setFavorites() calls in toggleFavorite functions - Components now only call onFavoriteChange() callback - Parent App.tsx handles all favorites state updates This resolves the TypeScript build error: "TS2552: Cannot find name 'setFavorites'" 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- frontend/src/components/BibleReader.tsx | 21 +++++++-------------- frontend/src/components/BookSelector.tsx | 14 ++++---------- frontend/src/components/ChapterSelector.tsx | 16 ++++++---------- 3 files changed, 17 insertions(+), 34 deletions(-) diff --git a/frontend/src/components/BibleReader.tsx b/frontend/src/components/BibleReader.tsx index 380de94e..6b9f5c80 100644 --- a/frontend/src/components/BibleReader.tsx +++ b/frontend/src/components/BibleReader.tsx @@ -85,15 +85,10 @@ const BibleReader: React.FC = memo(({ method: 'DELETE', credentials: 'include' }); - + if (deleteResponse.ok) { - setFavorites(prev => { - const newFavorites = new Set(prev); - newFavorites.delete(verseNumber); - return newFavorites; - }); console.log('Removed verse favorite:', verseNumber); - onFavoriteChange?.(); // Notify parent to refresh favorites menu + onFavoriteChange?.(); // Notify parent to refresh favorites } } } @@ -112,16 +107,14 @@ const BibleReader: React.FC = memo(({ version: version }) }); - + if (response.ok) { - setFavorites(prev => new Set(prev).add(verseNumber)); console.log('Added verse favorite:', verseNumber); - onFavoriteChange?.(); // Notify parent to refresh favorites menu + onFavoriteChange?.(); // Notify parent to refresh favorites } else if (response.status === 409) { - // 409 means it already exists, which is fine - just update the UI - setFavorites(prev => new Set(prev).add(verseNumber)); - console.log('Verse favorite already exists, updated UI:', verseNumber); - onFavoriteChange?.(); // Notify parent to refresh favorites menu + // 409 means it already exists, which is fine + console.log('Verse favorite already exists:', verseNumber); + onFavoriteChange?.(); // Notify parent to refresh favorites } } } catch (error) { diff --git a/frontend/src/components/BookSelector.tsx b/frontend/src/components/BookSelector.tsx index 6c017031..aa76c476 100644 --- a/frontend/src/components/BookSelector.tsx +++ b/frontend/src/components/BookSelector.tsx @@ -48,15 +48,10 @@ const BookSelector: React.FC = memo(({ method: 'DELETE', credentials: 'include' }); - + if (deleteResponse.ok) { - setFavorites(prev => { - const newFavorites = new Set(prev); - newFavorites.delete(book); - return newFavorites; - }); console.log('Removed book favorite:', book); - onFavoriteChange?.(); // Notify parent to refresh favorites menu + onFavoriteChange?.(); // Notify parent to refresh favorites } } } @@ -73,11 +68,10 @@ const BookSelector: React.FC = memo(({ version: version }) }); - + if (response.ok) { - setFavorites(prev => new Set(prev).add(book)); console.log('Added book favorite:', book); - onFavoriteChange?.(); // Notify parent to refresh favorites menu + onFavoriteChange?.(); // Notify parent to refresh favorites } else { console.error('Failed to add favorite:', response.status, response.statusText); } diff --git a/frontend/src/components/ChapterSelector.tsx b/frontend/src/components/ChapterSelector.tsx index 83cc1acc..b664976a 100644 --- a/frontend/src/components/ChapterSelector.tsx +++ b/frontend/src/components/ChapterSelector.tsx @@ -57,13 +57,9 @@ const ChapterSelector: React.FC = memo(({ method: 'DELETE', credentials: 'include' }); - - setFavorites(prev => { - const newFavorites = new Set(prev); - newFavorites.delete(chapter); - return newFavorites; - }); - onFavoriteChange?.(); // Notify parent to refresh favorites menu + + console.log('Removed chapter favorite:', chapter); + onFavoriteChange?.(); // Notify parent to refresh favorites } } } else { @@ -80,10 +76,10 @@ const ChapterSelector: React.FC = memo(({ version: version }) }); - + if (response.ok) { - setFavorites(prev => new Set(prev).add(chapter)); - onFavoriteChange?.(); // Notify parent to refresh favorites menu + console.log('Added chapter favorite:', chapter); + onFavoriteChange?.(); // Notify parent to refresh favorites } } } catch (error) {