From 762d28f9ea81f1052e07ceadd64986b973389dab Mon Sep 17 00:00:00 2001 From: Marsn3 Date: Tue, 18 Feb 2025 04:52:47 +0100 Subject: [PATCH] Allow filtering search --- src/QuoteInfo.tsx | 3 +-- src/QuoteList.tsx | 32 ++++++++++++++++++++++++++------ 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/src/QuoteInfo.tsx b/src/QuoteInfo.tsx index 7112e52..ef79145 100644 --- a/src/QuoteInfo.tsx +++ b/src/QuoteInfo.tsx @@ -1,4 +1,3 @@ -import { useState } from "react" import { Quote } from "./pocketbase-types" interface QuoteInfoProps { @@ -8,7 +7,7 @@ export default function QuoteInfo({ quote }: QuoteInfoProps) { return ( //TODO: Bettes Colors -
console.log(quote.id)}> +

{quote.quote}

{quote.context &&

{quote.context}

}
diff --git a/src/QuoteList.tsx b/src/QuoteList.tsx index 64f598e..9b3a985 100644 --- a/src/QuoteList.tsx +++ b/src/QuoteList.tsx @@ -17,12 +17,25 @@ export default function QuoteList() { const [error, setError] = useState(null) const [collection, setCollection] = useState(Collections.QtBit) const [searchItem, setSearchItem] = useState(null) + const [searchFilter, setSearchFilter] = useState("quote") const handleInputChange = (e: ChangeEvent) => { const searchTerm = e.target.value; setSearchItem(searchTerm) - - const filteredItems = quotes?.filter((quote) => quote.quote.toLowerCase().includes(searchTerm.toLowerCase())); + let filteredItems; + switch (searchFilter) { + case "quote": + filteredItems = quotes?.filter((quote) => quote.quote.toLowerCase().includes(searchTerm.toLowerCase())); + break; + case "context": + filteredItems = quotes?.filter((quote) => quote.context?.toLowerCase().includes(searchTerm.toLowerCase())); + break; + case "author": + filteredItems = quotes?.filter((quote) => quote.author.toLowerCase().includes(searchTerm.toLowerCase())); + break; + default: + break; + } setFilteredQuotes(filteredItems!) } @@ -70,13 +83,20 @@ export default function QuoteList() {
handleInputChange(e)} className='placeholder:text-slate-400 bg-slate-700' /> - +

|

+

|