diff --git a/components/bible/reading-view.tsx b/components/bible/reading-view.tsx index 229627c..3f5925b 100644 --- a/components/bible/reading-view.tsx +++ b/components/bible/reading-view.tsx @@ -2,9 +2,16 @@ import { useState, useEffect, CSSProperties } from 'react' import { Box, Typography, IconButton, Paper, useMediaQuery, useTheme } from '@mui/material' import { NavigateBefore, NavigateNext, Settings as SettingsIcon } from '@mui/icons-material' -import { BibleChapter } from '@/types' +import { BibleChapter, HighlightColor } from '@/types' import { getCSSVariables, loadPreferences } from '@/lib/reading-preferences' +const COLOR_MAP: Record = { + yellow: 'rgba(255, 193, 7, 0.3)', + orange: 'rgba(255, 152, 0, 0.3)', + pink: 'rgba(233, 30, 99, 0.3)', + blue: 'rgba(33, 150, 243, 0.3)' +} + interface ReadingViewProps { chapter: BibleChapter loading: boolean @@ -30,6 +37,7 @@ export function ReadingView({ const isMobile = useMediaQuery(theme.breakpoints.down('sm')) const [preferences, setPreferences] = useState(loadPreferences()) const [showControls, setShowControls] = useState(!isMobile) + const [hoveredVerseNum, setHoveredVerseNum] = useState(null) useEffect(() => { const handleStorageChange = () => { @@ -126,15 +134,14 @@ export function ReadingView({ onVerseClick(verse.id) } }} + onMouseEnter={() => setHoveredVerseNum(verse.verseNum)} + onMouseLeave={() => setHoveredVerseNum(null)} style={{ + backgroundColor: (verse as any).highlight ? COLOR_MAP[(verse as any).highlight.color] : 'transparent', + padding: '0.25rem 0.5rem', + borderRadius: '4px', cursor: 'pointer', - transition: 'background-color 0.15s', - }} - onMouseEnter={(e) => { - e.currentTarget.style.backgroundColor = 'rgba(255, 193, 7, 0.3)' - }} - onMouseLeave={(e) => { - e.currentTarget.style.backgroundColor = 'transparent' + transition: 'all 0.2s ease' }} >