Commit Graph

115 Commits

Author SHA1 Message Date
Ryderjj89
f032016f43 Complete URL restructuring to use path-based version routing
Major changes:
- New URL structure: /version/esv/book/Genesis/chapter/1 instead of /book/Genesis/chapter/1?version=esv
- Version extracted from URL path instead of query parameters
- Component pages restructured: VersionPage, BookListPage, BookPage, ChapterPage
- Navigation updated throughout to use new path structure
- Routes updated to match new hierarchical structure
- Breadcrumb navigation fixed for new paths
- Version selector dropdown now navigates between versions

This eliminates query parameter state management issues and provides clean, RESTful URLs
2025-09-28 15:15:31 -04:00
Ryderjj89
cbf1555668 Fix back navigation - The Bible button now does full page reload to clear state
- Button click now uses window.location.href instead of navigate()
- Forces full reload with clean URL to version selection page
- Solves browser back button navigation issues
- Consistent state management across all navigation scenarios
2025-09-28 15:08:49 -04:00
Ryderjj89
12b93661f1 Complete search functionality with version filtering
- Added version selector dropdown to search interface
- Search now includes version parameter for backend filtering
- Search results footer shows which Bible version was searched
- Users can search ESV or NKJV independently
- Version-aware search provides different results per translation

Search UI now includes version selection alongside book filtering.
2025-09-28 14:58:22 -04:00
Ryderjj89
55bbc98188 Fix URL parameter logic - now both ESV and NKJV show version parameters consistently
Previously only NKJV added ?version=nkjv to URL while ESV had no parameter (treated as 'default')
Now both versions properly display in URL: ?version=esv and ?version=nkjv
This ensures consistent URL handling and bookmarking for all Bible versions
2025-09-28 14:51:40 -04:00
Ryderjj89
163532158f Update to latest NKJV logo version
- New improved NKJV logo for better branding
- Fix circular dependency in version state management
- Version selection now loads books properly without race conditions
2025-09-28 14:46:19 -04:00
Ryderjj89
a9f6843ddd Fix remaining issues: page title and browser navigation
- Page title now dynamically updates: 'NKJV Bible', 'ESV Bible', or 'The Bible'
- Browser back button detection improved - URL parameters are read on navigation changes
- Clearing version selection when returning to home without version parameter
- Complete NKJV logo update committed to repository

UI now properly reflects selected version in both title and navigation behaviors
2025-09-28 14:32:43 -04:00
Ryderjj89
f6e8648376 Update NKJV logo to improved version 2025-09-28 14:32:03 -04:00
Ryderjj89
78e4f7b3ae Fix logo loading and URL parameter persistence
Backend:
- Added static file serving for /logos directory
- Logos now accessible at /logos/path for Docker builds

Frontend:
- Updated all navigation to include version parameters (?version=esv|?version=nkjv)
- Book selection includes version in URL
- Breadcrumb navigation preserves version context
- URLs now work for bookmarking and sharing with version information

Complete fix for both logo display and navigation URL persistence.
2025-09-28 14:22:34 -04:00
Ryderjj89
743c1f1f63 Add ESV and NKJV logo images to repository
- frontend/logos/esv-logo.png: ESV translation logo
- frontend/logos/nkjv-logo.png: NKJV translation logo
- Logos are served from /logos/ directory for app header and version selector cards
- Logos are used when ESV/NKJV versions are selected in the app
2025-09-28 14:12:28 -04:00
Ryderjj89
ac45350ff5 Add version-specific logos to app header and version selector cards
- Header shows ESV/NKJV logo when version is selected, generic book icon on homepage
- Version selector cards now display actual ESV and NKJV logos instead of generic icons
- Logos sourced from frontend/logos/ directory (esv-logo.png, nkjv-logo.png)
- Proper sizing and accessibility with alt text
- Maintains responsive design across all screen sizes
2025-09-28 14:11:30 -04:00
Ryderjj89
a94736b9e5 Fix navigation - The Bible button now clears version selection and returns to version selector 2025-09-28 14:05:59 -04:00
Ryderjj89
253c6da8b1 Add new VersionSelector component for homepage redesign
Beautiful card-based version selection:
- ESV and NKJV option cards with distinct colors and icons
- Responsive design (side-by-side on desktop, stacked on mobile)
- Hover effects and smooth transitions
- Proper TypeScript typing and clean component architecture
- Accessible design with proper contrast ratios
2025-09-28 14:01:26 -04:00
Ryderjj89
b4952a4013 Complete homepage redesign - no longer defaults to ESV version
- Page title updated to 'The Bible' instead of 'ESV Bible'
- Homepage now shows version selection cards (ESV/NKJV) instead of book list
- Version dropdown shows 'Choose version' on homepage
- Users must select version before seeing books
- Maintains URL parameter support and all existing functionality
- Clean separation between version selection and Bible browsing

Now users start with version selection, preventing defaulting to one translation.
2025-09-28 13:58:25 -04:00
Ryderjj89
213c8394c3 Make favorites version-aware - verses only appear favorited in the version they were saved in
- Updated loadFavorites to filter favorites by version: only show favorites for current version
- Modified removeFavorite to match version when deleting specific favorites
- Added version to useEffect dependencies so favorites refresh when version changes
- Backend already supports version-specific favorites via database schema

Now users can favorite Genesis 1:1 in both ESV and NKJV independently - switching versions shows correct favorited states.
2025-09-28 13:50:57 -04:00
Ryderjj89
e21bc59463 Add version switching for favorites - clicking NKJV favorites now switches to NKJV version and URL parameters update automatically
- Added setSelectedVersion prop to FavoritesMenu component
- Updated navigateToFavorite to switch app version before navigation
- Favorites now switch to the stored version automatically
- URL parameters update correctly for ESV/NKJV selection
2025-09-28 13:45:31 -04:00
Ryderjj89
54edb264fe Add URL parameter support for Bible version
- Read version parameter from URL on page load (?version=esv|?version=nkjv)
- Update URL with version when selection changes
- Enable shareable version-specific URLs like /book/Genesis/chapter/1?version=nkjv
2025-09-28 13:39:42 -04:00
Ryderjj89
1b1cadf260 Simplified BibleReader parsing - NKJV files now use standard mdbible format with numbered verses 2025-09-28 13:30:01 -04:00
Ryderjj89
1f526df0bc Fix final TypeScript error in favorite button - add null assertions and conditional checks for verseNumber 2025-09-28 13:08:24 -04:00
Ryderjj89
061f11e686 Fix TypeScript compilation error in BibleReader
- Added null check for verseNumber before rendering favorite button
- Prevents 'string | null is not assignable to string' error
2025-09-28 13:05:29 -04:00
Ryderjj89
4510e6e333 Fix NKJV verse parsing to handle header-style verses
- Updated parseBibleText to detect NKJV verses with ###### 1 Verse format
- Added version-specific parsing for ESV (1. format) vs NKJV (###### format)
- Ensures proper verse number extraction and text display for both versions
- Removes diamond question marks and square artifacts in NKJV text
2025-09-28 13:02:51 -04:00
Ryderjj89
4721e8b5a5 Fix text encoding issues in NKJV files by removing UTF-8 BOM in readMarkdownFile 2025-09-28 12:53:28 -04:00
Ryderjj89
e7b98e0107 Fix NKJV directory path in backend - was looking in ../ instead of ../../ 2025-09-28 12:31:30 -04:00
Ryderjj89
ceeb465c8d Add multi-version Bible support with ESV and NKJV translations
- Rename project from 'ESV Bible' to 'The Bible'
- Implement version selection dropdown in homepage header
- Add support for multiple Bible versions:
  * ESV (English Standard Version) - from mdbible
  * NKJV (New King James Version) - from local NKJV/ directory
- Update all API endpoints to accept version parameter (?version=esv|?version=nkjv)
- Add version-aware favorites system that stores and displays Bible version (e.g., 'Genesis 1:1 (ESV)')
- Update database schema to include version column in favorites table
- Maintain backward compatibility with existing data
- Update Docker configuration and documentation
2025-09-28 12:13:37 -04:00
Ryderjj89
6894f1c871 Add direct verse navigation from search results
- Search results now navigate directly to specific verses using URL hash
- Clicking a search result takes you to the chapter and scrolls to the exact verse
- Matches the behavior of favorites navigation for consistent user experience
- URL format: /book/BookName/chapter/1#verse-5 for precise verse targeting
2025-09-15 17:55:08 -04:00
Ryderjj89
f5639af27f Add comprehensive Bible search feature
- Implement backend search engine with indexing and relevance scoring
- Add search API endpoints (/api/search and /api/search/suggestions)
- Create SearchComponent with modal and page views
- Add search button to header navigation
- Support real-time search with debouncing
- Include context verses and search term highlighting
- Add book filtering and mobile-responsive design
- Integrate with existing routing and navigation system
2025-09-15 17:30:00 -04:00
Ryderjj89
05c9a678af Final UX improvements - show full 'Favorites' text on mobile and add refresh callback when deleting favorites from menu 2025-09-14 13:04:32 -04:00
Ryderjj89
df65718afd Fix mobile delete button - make X button always visible and larger for touch-friendly interaction on mobile devices 2025-09-14 12:56:45 -04:00
Ryderjj89
57e3f4e26c Add scroll-to-verse functionality - verses now have IDs and clicking verse favorites automatically scrolls to the specific verse 2025-09-14 12:52:03 -04:00
Ryderjj89
bda3608ff0 Move favorites menu below header to fix mobile cutoff - positioned in layout flow instead of absolute positioning for better mobile experience 2025-09-14 12:33:34 -04:00
Ryderjj89
54646f54d2 Fix mobile favorites menu positioning - prevent cutoff on mobile screens with responsive width and positioning adjustments 2025-09-14 12:26:45 -04:00
Ryderjj89
6bc24c25c9 Fix logout icon and add real-time favorites refresh for books and chapters - LogOut icon replaces square, all favoriting now triggers instant menu refresh 2025-09-14 12:04:54 -04:00
Ryderjj89
d99bc4571c Fix TypeScript compilation error - add explicit type annotation for prev parameter 2025-09-14 11:56:42 -04:00
Ryderjj89
94d17b1d16 Add real-time favorites refresh and improve mobile layout - favorites menu updates instantly when favorites change 2025-09-14 11:53:35 -04:00
Ryderjj89
681a724e8e Fix verse parsing regex to match actual markdown format (1. instead of 1 ) - this will make verse stars appear 2025-09-14 11:45:25 -04:00
Ryderjj89
1fe9dc9c9c Fix critical UX issues: make verse stars always visible and clickable, fix mobile login button visibility 2025-09-14 11:39:43 -04:00
Ryderjj89
d8576a74a9 Fix verse hover visibility - make stars always visible with opacity-60, hover to opacity-100 2025-09-13 19:14:03 -04:00
Ryderjj89
ba671e03f3 Fix book favoriting logic to match working ChapterSelector pattern 2025-09-13 19:13:38 -04:00
Ryderjj89
b9c46451d9 Add organized subheadings to favorites menu with icons for Books, Chapters, and Verses 2025-09-13 19:08:58 -04:00
Ryderjj89
568f253bbb Fix verse hover functionality with improved visibility and better UX 2025-09-13 19:06:21 -04:00
Ryderjj89
dc62b25b34 Fix book favorites persistence on page refresh and improve 409 error handling 2025-09-13 19:05:05 -04:00
Ryderjj89
dbde7f4987 Fix 409 conflict error in BookSelector and improve dark mode preference loading 2025-09-13 18:59:50 -04:00
Ryderjj89
f008fc64b4 Fix TypeScript compilation errors in BookSelector and ChapterSelector by explicitly typing Set<string> 2025-09-13 18:25:29 -04:00
Ryderjj89
07c975b1d0 Fix TypeScript compilation error in BibleReader by explicitly typing Set<string> 2025-09-13 18:22:23 -04:00
Ryderjj89
aca8f9bd64 Add star buttons to ChapterSelector and BibleReader for complete favorites system 2025-09-13 18:18:50 -04:00
Ryderjj89
3e3869c117 Update App to pass user prop to components and add star buttons to BookSelector 2025-09-13 18:14:53 -04:00
Ryderjj89
5301154a20 Add FavoritesMenu component and integrate into App header 2025-09-13 18:12:08 -04:00
Ryderjj89
d8e0544d4d Implement hybrid preferences system - use database for authenticated users, localStorage for non-authenticated users 2025-09-13 18:07:20 -04:00
Ryderjj89
4d5d7b74b8 Fix authentication status handling to properly handle 401 responses 2025-09-13 17:08:49 -04:00
Ryderjj89
7bf2a8a879 Fix database directory creation and add login/logout UI when authentication is configured 2025-09-13 17:03:22 -04:00
Ryderjj89
9beff1e610 Add previous/next chapter navigation buttons with conditional visibility 2025-09-13 16:38:39 -04:00