From e119d149bd7d936c53052e821c8536c61b060335 Mon Sep 17 00:00:00 2001 From: h202-wq Date: Wed, 19 Aug 2026 10:50:00 -0400 Subject: [PATCH] fixed search issue --- src/SearchPage.tsx | 20 +++++++++++++++++++- src/style.css | 26 ++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/src/SearchPage.tsx b/src/SearchPage.tsx index 9bbf12c..e1c4aae 100644 --- a/src/SearchPage.tsx +++ b/src/SearchPage.tsx @@ -5,6 +5,7 @@ import { allRedLetter, loadRedLetter } from './redletter' import TopBar from './TopBar' const RED_LETTER_CODE = /^jesusredletter$/i +const INITIAL_RESULTS = 50 function highlight(text: string, query: string): ReactNode { const ql = query.trim().toLowerCase() @@ -29,6 +30,11 @@ export default function SearchPage() { const [ready, setReady] = useState(false) const [results, setResults] = useState([]) const [total, setTotal] = useState(0) + const [expanded, setExpanded] = useState(false) + + useEffect(() => { + setExpanded(false) + }, [debounced]) useEffect(() => { Promise.all([loadBible(), loadRedLetter()]).then(() => setReady(true)) @@ -63,6 +69,9 @@ export default function SearchPage() { const searching = query.trim().length > 0 && query.trim() !== debounced.trim() + const shown = expanded || secret ? results : results.slice(0, INITIAL_RESULTS) + const capped = !secret && !expanded && total > INITIAL_RESULTS + return (
@@ -98,11 +107,20 @@ export default function SearchPage() { {ready && !searching && query.trim() !== '' && !secret && (

{total > 0 ? `${total} verse${total === 1 ? '' : 's'} found` : 'No verses found.'} + {capped && ` ยท showing the first ${INITIAL_RESULTS}`}

)} + {capped && ( +
+ +
+ )} +
- {results.map((r) => ( + {shown.map((r) => (