fix(web): clear result with search bar is empty

This commit is contained in:
arkohut 2024-09-05 18:07:58 +08:00
parent 4991371aa0
commit c1226117d6

View File

@ -1,5 +1,4 @@
<script lang="ts">
import { onMount } from 'svelte';
import Figure from '$lib/Figure.svelte';
import TimeFilter from '$lib/components/TimeFilter.svelte';
import LibraryFilter from '$lib/components/LibraryFilter.svelte';
@ -111,16 +110,20 @@
}
function handleSearchStringChange() {
console.log('handleSearchStringChange', searchString);
clearTimeout(debounceTimer);
if (searchString.trim()) {
debounceSearch(
searchString,
startTimestamp,
endTimestamp,
selectedLibraries,
Object.keys(selectedTags).filter((tag) => selectedTags[tag]),
Object.keys(selectedDates).filter((date) => selectedDates[date]),
true // 更新 facets
);
debounceTimer = setTimeout(() => {
searchItems(
searchString,
startTimestamp,
endTimestamp,
selectedLibraries,
Object.keys(selectedTags).filter((tag) => selectedTags[tag]),
Object.keys(selectedDates).filter((date) => selectedDates[date]),
true
);
}, debounceDelay);
} else {
searchResults = [];
searchResult = null;
@ -128,20 +131,6 @@
}
}
function handleFiltersChange() {
if (searchString.trim()) {
debounceSearch(
searchString,
startTimestamp,
endTimestamp,
selectedLibraries,
Object.keys(selectedTags).filter((tag) => selectedTags[tag]),
Object.keys(selectedDates).filter((date) => selectedDates[date]),
false // 不更新 facets
);
}
}
$: {
if (searchString.trim()) {
handleSearchStringChange();
@ -152,6 +141,20 @@
}
}
function handleFiltersChange() {
if (searchString.trim()) {
searchItems(
searchString,
startTimestamp,
endTimestamp,
selectedLibraries,
Object.keys(selectedTags).filter((tag) => selectedTags[tag]),
Object.keys(selectedDates).filter((date) => selectedDates[date]),
false
);
}
}
$: {
if (startTimestamp !== -1 || endTimestamp !== -1 || selectedLibraries.length > 0) {
handleFiltersChange();
@ -168,30 +171,6 @@
handleFiltersChange();
}
/**
* @param {string} query
* @param {number} start
* @param {number} end
* @param {number[]} selectedLibraries
* @param {string[]} selectedTags
* @param {string[]} selectedDates
* @param {boolean} updateFacets
*/
function debounceSearch(
query: string,
start: number,
end: number,
selectedLibraries: number[],
selectedTags: string[],
selectedDates: string[],
updateFacets: boolean = true
) {
clearTimeout(debounceTimer);
debounceTimer = setTimeout(() => {
searchItems(query, start, end, selectedLibraries, selectedTags, selectedDates, updateFacets);
}, debounceDelay);
}
/**
* @param {string} path
*/