mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-21 10:47:04 +02:00
fix: query ignorance on filter change
This commit is contained in:
1 parent
ea07d2646d
commit
55ba2525d1
1 file changed
+10
-14
@@ -400,7 +400,15 @@ export function TankSearch({
|
|||||||
.filter(([name]) => name !== 'page')
|
.filter(([name]) => name !== 'page')
|
||||||
.map(([, value]) => value),
|
.map(([, value]) => value),
|
||||||
]);
|
]);
|
||||||
const [searchResults, setSearchedList] = useState(searchableTanks);
|
const [searchQuery, setSearchQuery] = useState('');
|
||||||
|
const searchResults = useMemo(
|
||||||
|
() =>
|
||||||
|
go(searchQuery, searchableTanks, {
|
||||||
|
keys: ['name', 'nameFull', 'id'] satisfies (keyof TankDefinition)[],
|
||||||
|
all: true,
|
||||||
|
}).map(({ obj }) => obj),
|
||||||
|
[searchQuery, searchableTanks],
|
||||||
|
);
|
||||||
const page = useTankopediaPersistent((state) => state.filters.page);
|
const page = useTankopediaPersistent((state) => state.filters.page);
|
||||||
const searchResultsPageSlice = searchResults.slice(
|
const searchResultsPageSlice = searchResults.slice(
|
||||||
page * tanksPerPage,
|
page * tanksPerPage,
|
||||||
@@ -414,9 +422,6 @@ export function TankSearch({
|
|||||||
Math.ceil(searchResultsPageSlice.length / 2),
|
Math.ceil(searchResultsPageSlice.length / 2),
|
||||||
);
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
setSearchedList(searchableTanks);
|
|
||||||
}, [searchableTanks]);
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
mutateTankopediaPersistent((draft) => {
|
mutateTankopediaPersistent((draft) => {
|
||||||
draft.filters.page = Math.min(
|
draft.filters.page = Math.min(
|
||||||
@@ -435,16 +440,7 @@ export function TankSearch({
|
|||||||
ref={input}
|
ref={input}
|
||||||
placeholder="Search tanks..."
|
placeholder="Search tanks..."
|
||||||
onChange={(event) => {
|
onChange={(event) => {
|
||||||
const results = go(event.target.value, searchableTanks, {
|
setSearchQuery(event.target.value);
|
||||||
keys: [
|
|
||||||
'name',
|
|
||||||
'nameFull',
|
|
||||||
'id',
|
|
||||||
] satisfies (keyof TankDefinition)[],
|
|
||||||
all: true,
|
|
||||||
}).map(({ obj }) => obj);
|
|
||||||
|
|
||||||
setSearchedList(results);
|
|
||||||
}}
|
}}
|
||||||
onKeyDown={(event) => {
|
onKeyDown={(event) => {
|
||||||
if (event.key === 'Enter') {
|
if (event.key === 'Enter') {
|
||||||
|
|||||||
Reference in new issue
Block a user