Commit Graph

88 Commits

Author SHA1 Message Date
Ryderjj89
b654400896 Add NLT (New Living Translation) to frontend
- Added NLT as third option in VersionSelector component
- Added NLT logo and card with proper styling
- Updated TypeScript interface to include 'nlt' option
- Positioned NLT card below ESV/NKJV grid for clean layout
- Includes proper logo image and descriptive text for NLT

NLT is now fully integrated into the version selection UI!
2025-09-28 22:01:08 -04:00
Ryderjj89
b01fa95c77 Fixed BibleReader search box to use modal instead of homepage navigation
- Added onSearchClick prop to BibleReader interface and component
- Updated App.tsx to pass onSearchClick callback to BibleReader
- Removed hardcoded homepage navigation from search bar click
- Search box now properly opens search modal on verses page
- Consistent search behavior across all pages

BibleReader search functionality now matches all other pages!
2025-09-28 18:17:10 -04:00
Ryderjj89
537898b4d0 Fixed chapter counting and numbering issues
- Updated API functions to accept version parameter (getBook, getChapter)
- Added proper chapter sorting with parseInt for numerical order
- Removed fallback to 50 fake chapters - now shows actual chapter counts
- Fixed Psalms chapter numbering: 1,2,3,4,5,6,7,8,9,10,11,12... instead of 1,2,3,4,5,6,7,8,9,10,101,102...
- Books like 2 John now show correct number of chapters (1) instead of fake 50
2025-09-28 17:58:47 -04:00
Ryderjj89
8cb2aeef4b Added responsive horizontal padding to VersionSelector search bar
- **Search bar padding added**: px-4 sm:px-6 lg:px-8 to match App main container
- **Consistent centering**: Ensures search bar aligns identically with other pages
- **Responsive padding**: Same responsive behavior across breakpoints
- **Fixed centering shift**: Eliminates visual difference between pages

Version selector search bar centering now perfectly matches all other pages!
2025-09-28 17:31:31 -04:00
Ryderjj89
6ae55009e7 Fixed search box centering consistency - removed redundant container wrapper
- **Eliminated duplicate container** from VersionSelector component
- **Matches other page structures** - all pages now use App's main container
- **Consistent centering across all pages** - search bar positioned identically
- **No more shifting** when navigating between version selector and book selector

Version selector layout now perfectly matches BookSelector, ChapterSelector, BibleReader!
2025-09-28 17:25:02 -04:00
Ryderjj89
fea95a715e Fixed VersionSelector spacing and centering issues
- **Removed excessive top padding** pt-8 that was causing large gap above search
- **No top padding now** matches other pages (BookSelector, ChapterSelector, etc.)
- **Maintained centering** flex justify-center keeps search bar horizontally centered
- **App-level padding** uses the overall page padding from App.tsx main container

Version selector now matches the consistent spacing and centering of all other pages!
2025-09-28 17:18:42 -04:00
Ryderjj89
9ad908ccd7 Optimized version selector spacing for consistency
- **Reduced top padding** from py-16 to pt-8 (64px to 32px) to bring search closer to top
- **Adjusted search margin** from mb-8 to mb-4 (32px to 16px) for uniform spacing
- **Maintained bottom spacing** with pb-16 to preserve version card layout
- **Perfect alignment** with other pages - consistent 16px search-to-element gap

Version selector now has perfectly balanced, consistent spacing throughout the app!
2025-09-28 17:14:34 -04:00
Ryderjj89
9e61ae2a4b Removed redundant header from version selector page - kept main header branding
- **Eliminated redundant 'The Bible' logo** from above search bar on version selection page
- **Freed up screen space** by removing unnecessary duplicate branding
- **Maintained main header** at top left for consistent navigation
- **Cleaner homepage layout** - focus on search and version selection

Version selector page now features a more minimal, focused design!
2025-09-28 17:10:59 -04:00
Ryderjj89
9d64577ca5 Polished version selector dropdown behavior
- **Removed 'Choose version' text** on root version selector page (redundant)
- **Smart version switching** preserves current location when changing versions
- **Context-aware navigation** replaces version in URL to keep same chapter/book
- **Improved UX** users can switch ESV↔NKJV without losing their place

Version dropdown now intelligently keeps users where they are when switching translations!
2025-09-28 17:04:18 -04:00
Ryderjj89
9009a75d24 Smart scroll-to-top preserves verse auto-navigation
- **Conditional scroll-to-top**: Only scroll to top when no verse hash is present
- **Preserves verse navigation**: Verse favorites and search results auto-scroll to verses
- **Mobile-friendly**: Version selections still scroll to top on book pages
- **No breaking changes**: All existing auto-navigation features remain intact

Mobile scrolling now works perfectly without breaking verse deep-linking!
2025-09-28 16:56:02 -04:00
Ryderjj89
d05b5fb20a Added auto-scroll-to-top on all page navigations - fixes mobile scrolling issue
- **Navigation auto-scroll**: window.scrollTo(0, 0) added to location.pathname useEffect
- **Mobile UX fix**: No more manual scrolling back up after version selection
- **Smooth navigation flow**: Every route change brings user to page top
- **Better mobile experience**: Prevents getting stuck scrolled down on new pages
- **Applies to all routes**: Home → Books → Chapters → Verses all auto-scroll to top

Mobile users can now seamlessly navigate without manual scrolling between pages!
2025-09-28 16:53:06 -04:00
Ryderjj89
93e4b80428 Removed redundant footer message from version selector homepage
- **Eliminated unnecessary text**: 'All translations include the complete Old and New Testaments...'
- **Cleaner page design**: Focus on just the version selection cards
- **Removed obvious information**: Users know Bibles contain both Testaments
- **Streamlined UX**: Less clutter on the translation choice page

Homepage now has a cleaner, more direct user experience!
2025-09-28 16:40:36 -04:00
Ryderjj89
eed017d661 Improved mobile login button - replaced emoji with icon & better styling
- **Replaced person emoji**: 👤 → <User> icon for cleaner appearance
- **Matching button styling**: Blue button → Gray button matching logout button
- **Consistent design**: Both login/logout buttons now have same gray theme
- **Professional appearance**: Clean icon instead of emoji for mobile UI

Mobile authentication button now looks polished and theme-consistent!
2025-09-28 16:38:24 -04:00
Ryderjj89
cf08fc547c Fixed BookSelector search-to-breadcrumb gap - removed space-y-12 class
- **Space-y-12 removed**: Eliminated automatic 48px gaps between container children
- **Manual spacing preserved**: mb-4 on search and breadcrumbs now works as intended
- **Consistent with ChapterSelector**: Both components now have identical visual spacing
- **Tight, uniform gap**: 16px spacing between search bar and breadcrumbs everywhere

BookSelector and ChapterSelector now have perfectly matched visual spacing!
2025-09-28 16:31:33 -04:00
Ryderjj89
e20c4ffc1e Fixed inconsistent search-to-breadcrumb spacing across all pages
- **ChapterSelector and BibleReader breadcrumbs**: Changed mb-8 to mb-4
- **BookSelector breadcrumb**: Already had mb-4
- **Consistent vertical spacing**: All pages now have identical gap between search bar and breadcrumbs
- **Visual harmony**: Uniform 16px spacing between search and navigation elements

Search to breadcrumb spacing is now perfectly consistent across Books, Chapters, and Verses pages!
2025-09-28 16:27:12 -04:00
Ryderjj89
69519c988e Complete search bar rollout and spacing fixes across all pages
- **BookSelector search bar**: Consistent mb-4 spacing below breadcrumbs
- **VersionSelector search bar**: Added above 'Choose Your Translation' header
- **Universal search placement**: All pages have search functionality available at top
- **Responsive design maintained**: Max-width search inputs adapt to mobile screens
- **Homepage search integration**: Even before version selection, users can search
- **Build verification**: All components compile without errors

Search functionality now universally accessible from every page in the application!
2025-09-28 16:22:37 -04:00
Ryderjj89
6324c13ae5 Complete search bar implementation across all pages - search now above breadcrumbs everywhere
- **Universal Search Bars**: Added search input to BookSelector, ChapterSelector, and BibleReader
- **Position Above Breadcrumbs**: Search bars now appear above breadcrumbs on all pages
- **Reduced Padding**: Changed from mb-8 to mb-4 for tighter spacing between search and breadcrumbs
- **Consistent Placeholder**: Same 'Search for verses, words, or phrases...' across all components
- **Mobile Responsive**: Search bars adapt to screen width with max-w-md constraint
- **Clickable Interface**: OnClick handlers properly set to trigger search modal

Search functionality now universally available just above breadcrumbs on every page!
2025-09-28 16:17:23 -04:00
Ryderjj89
2c312fcb6d Complete BookSelector onSearchClick prop destructuring fix
- **Props destructured**: onSearchClick added to BookSelector parameter list
- **Build error eliminated**: TS cannot find name 'onSearchClick' resolved
- **Docker build ready**: All TypeScript errors cleared
- **Search functionality complete**: Prop chain from header → App.tsx → components working

Docker container will build successfully now!
2025-09-28 16:10:00 -04:00
Ryderjj89
dd82791aa3 Fixed missing onSearchClick prop destructuring in ChapterSelector
- **Destructured onSearchClick**: Added to props in ChapterSelector component
- **Prop passthrough**: Added onSearchClick={() => setShowSearch(true)} to ChapterSelector call in App.tsx
- **Build fix**: Resolved TS error preventing Docker build success
- **Search infrastructure**: Ready for ChapterSelector search bar implementation if needed later

Docker build will now succeed!
2025-09-28 16:07:53 -04:00
Ryderjj89
9dfd4db14c Removed redundant header search icon - moved search to content area
- **Header cleanup**: Removed search icon from top-right since search is now in content
- **Content search**: Search bar appears below breadcrumbs on book pages
- **Cleaner header**: Focus on auth, dark mode, and essential navigation
- **Consistent UX**: All search triggers same modal regardless of entry point

Search functionality moved entirely to page content for better user flow!
2025-09-28 16:05:42 -04:00
Ryderjj89
2332a3cd30 Partial search bar implementation - added search input below breadcrumbs
- **BookSelector search bar**: Responsive input with 'Search for verses, words, or phrases...' placeholder
- **Mobile-friendly design**: Centered search bar with search icon, spans full width on mobile
- **Search modal integration**: onClick handler calls the same search modal as header icon
- **Positioning**: Search bar placed below breadcrumbs on book selection page
- **Prop passthrough**: onSearchClick prop set up for easy extension to other components

Search bar is now present on main book selection page - ready to extend to other pages
2025-09-28 16:04:21 -04:00
Ryderjj89
6718096ea0 Fixed breadcrumb 'Books' navigation - goes to version home instead of root
- **Corrected breadcrumb targets**: 'Books' button now navigates to /version/{current-version} instead of root '/'
- **Version-aware navigation**: All breadcrumb 'Books' clicks stay within current Bible version
- **Proper page flow**: Click 'Books' from any page → goes back to current version's book selection
- **Complete navigation loop**: ESV → Genesis → Chapter 1 → Books → back to ESV book selection

Breadcrumb navigation now intelligently stays within current Bible version context!
2025-09-28 15:59:38 -04:00
Ryderjj89
ec894ab57e Complete breadcrumb navigation overhaul - all pages now use content breadcrumbs
- **BibleReader breadcrumbs**: 'Books > [Book Name] > Chapter X' (all clickable navigation)
- **Former 'Back to Chapters' button**: Replaced with intelligent breadcrumb navigation
- **Mobile header cleanup**: Removed mobile navigation info since breadcrumbs now in content
- **Consistent breadcrumb pattern**: Books → Book Name → Chapter across all pages
- **Mobile-friendly navigation**: No more header scrolling, breadcrumbs where needed
- **Full navigation chain**: Every breadcrumb is clickable for optimal user experience

All pages now have their own contextual breadcrumb navigation!
2025-09-28 15:48:24 -04:00
Ryderjj89
0288c9e332 Complete UI improvements: breadcrumbs moved to content, chapter favorites segregated
- **Removed header breadcrumbs** that caused horizontal scrolling on mobile
- **Added content-aware breadcrumbs** to each page for better UX:
  - BookSelector: 'Books' (clickable back to version home)
  - ChapterSelector: 'Books > [Book Name]' (Books clickable, book name current)
- **Chapter favorites version-segregated** - fixed cross-version contamination
- **Homepage text updated** 'Both translations' → 'All translations'
- **Improved navigation flow** with clean breadcrumb system
- **Better mobile experience** no more scrolling required for nav
2025-09-28 15:43:00 -04:00
Ryderjj89
12c9a4a055 Complete favorites system version separation and homepage update
- **ChapterSelector**: Added version filtering for chapter favorites
- **VersionProp**: ChapterSelector now receives and uses version parameter
- **API calls**: Chapter favorites include version in create requests
- **Favorites filtering**: .filter(...&& fav.version === version) for both level and chapter favorites
- **Homepage text**: Changed 'Both translations' to 'All translations' for future-proofing
- **All favorite types**: Now properly separated by Bible version

Users can now safely favorite books/chapters/verses in different versions without cross-contamination.
2025-09-28 15:32:08 -04:00
Ryderjj89
eeb30c24e8 Complete favorites separation by version and dynamic page titles
- BookSelector now filters favorites by version (fav.version === version)
- Book favorites include version in API requests
- Page header shows 'NKJV Bible' or 'ESV Bible' dynamically
- BookSelector receives current version from App.tsx
- Favorites are now strictly version-specific across all levels
- Both book and verse favorites work correctly per translation

Navigation and favorites now respect Bible version context!
2025-09-28 15:24:54 -04:00
Ryderjj89
1b4eeefce7 Updated FavoritesMenu to use new URL structure
- Favorites now navigate using new path-based URLs: /version/:version/:book/:chapter
- Removed old setSelectedVersion state switching in favor of direct URL navigation
- Added fallback to 'esv' version for older favorites without version data
- Favorites display version in parentheses: 'Genesis (ESV)'
- Works with all favorite types: books, chapters, and verses
2025-09-28 15:19:54 -04:00
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
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
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