mirror of
https://github.com/amir20/dozzle.git
synced 2025-12-26 15:16:27 +01:00
36 lines
875 B
TypeScript
36 lines
875 B
TypeScript
const searchQueryFilter = ref<string>("");
|
|
const debouncedSearchFilter = refDebounced(searchQueryFilter);
|
|
const showSearch = ref(false);
|
|
|
|
const searchParams = new URLSearchParams(window.location.search);
|
|
if (searchParams.get("search") !== null && searchParams.get("search") !== "") {
|
|
searchQueryFilter.value = searchParams.get("search") || "";
|
|
showSearch.value = true;
|
|
}
|
|
function resetSearch() {
|
|
searchQueryFilter.value = "";
|
|
showSearch.value = false;
|
|
}
|
|
|
|
const isSearching = computed(() => showSearch.value && debouncedSearchFilter.value !== "");
|
|
|
|
const isValidQuery = computed(() => {
|
|
try {
|
|
new RegExp(searchQueryFilter.value);
|
|
return true;
|
|
} catch (e) {
|
|
return false;
|
|
}
|
|
});
|
|
|
|
export function useSearchFilter() {
|
|
return {
|
|
searchQueryFilter,
|
|
isValidQuery,
|
|
debouncedSearchFilter,
|
|
showSearch,
|
|
resetSearch,
|
|
isSearching,
|
|
};
|
|
}
|