Fix: Remove local setFavorites calls from child components

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 <noreply@anthropic.com>
This commit is contained in:
2025-11-10 18:30:53 -05:00
parent 4e2f51bcb7
commit df0d1be6e1
3 changed files with 17 additions and 34 deletions

View File

@@ -85,15 +85,10 @@ const BibleReader: React.FC<BibleReaderProps> = memo(({
method: 'DELETE', method: 'DELETE',
credentials: 'include' credentials: 'include'
}); });
if (deleteResponse.ok) { if (deleteResponse.ok) {
setFavorites(prev => {
const newFavorites = new Set(prev);
newFavorites.delete(verseNumber);
return newFavorites;
});
console.log('Removed verse favorite:', verseNumber); 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<BibleReaderProps> = memo(({
version: version version: version
}) })
}); });
if (response.ok) { if (response.ok) {
setFavorites(prev => new Set(prev).add(verseNumber));
console.log('Added verse favorite:', 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) { } else if (response.status === 409) {
// 409 means it already exists, which is fine - just update the UI // 409 means it already exists, which is fine
setFavorites(prev => new Set(prev).add(verseNumber)); console.log('Verse favorite already exists:', verseNumber);
console.log('Verse favorite already exists, updated UI:', verseNumber); onFavoriteChange?.(); // Notify parent to refresh favorites
onFavoriteChange?.(); // Notify parent to refresh favorites menu
} }
} }
} catch (error) { } catch (error) {

View File

@@ -48,15 +48,10 @@ const BookSelector: React.FC<BookSelectorProps> = memo(({
method: 'DELETE', method: 'DELETE',
credentials: 'include' credentials: 'include'
}); });
if (deleteResponse.ok) { if (deleteResponse.ok) {
setFavorites(prev => {
const newFavorites = new Set(prev);
newFavorites.delete(book);
return newFavorites;
});
console.log('Removed book favorite:', book); 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<BookSelectorProps> = memo(({
version: version version: version
}) })
}); });
if (response.ok) { if (response.ok) {
setFavorites(prev => new Set(prev).add(book));
console.log('Added book favorite:', book); console.log('Added book favorite:', book);
onFavoriteChange?.(); // Notify parent to refresh favorites menu onFavoriteChange?.(); // Notify parent to refresh favorites
} else { } else {
console.error('Failed to add favorite:', response.status, response.statusText); console.error('Failed to add favorite:', response.status, response.statusText);
} }

View File

@@ -57,13 +57,9 @@ const ChapterSelector: React.FC<ChapterSelectorProps> = memo(({
method: 'DELETE', method: 'DELETE',
credentials: 'include' credentials: 'include'
}); });
setFavorites(prev => { console.log('Removed chapter favorite:', chapter);
const newFavorites = new Set(prev); onFavoriteChange?.(); // Notify parent to refresh favorites
newFavorites.delete(chapter);
return newFavorites;
});
onFavoriteChange?.(); // Notify parent to refresh favorites menu
} }
} }
} else { } else {
@@ -80,10 +76,10 @@ const ChapterSelector: React.FC<ChapterSelectorProps> = memo(({
version: version version: version
}) })
}); });
if (response.ok) { if (response.ok) {
setFavorites(prev => new Set(prev).add(chapter)); console.log('Added chapter favorite:', chapter);
onFavoriteChange?.(); // Notify parent to refresh favorites menu onFavoriteChange?.(); // Notify parent to refresh favorites
} }
} }
} catch (error) { } catch (error) {