Added global search.

This commit is contained in:
2024-02-22 05:08:06 +01:00
parent fc240710f3
commit 09df134558
15 changed files with 461 additions and 272 deletions

View File

@@ -55,7 +55,7 @@
<select
v-model="order"
class="input"
@change="search"
@change="search({ autoScope: false })"
>
<option value="name.asc">Name</option>
<option value="likes.desc">Likes</option>
@@ -139,17 +139,19 @@ const filters = ref({
avatarRequired: !!urlParsed.search.avatar,
});
async function search(resetPage = true) {
if (resetPage) {
async function search(options = {}) {
if (options.resetPage !== false) {
currentPage.value = 1;
}
if (q.value) {
order.value = 'relevance.desc';
}
if (options.autoScope !== false) {
if (q.value) {
order.value = 'relevance.desc';
}
if (!q.value && order.value.includes('relevance')) {
order.value = 'likes.desc';
if (!q.value && order.value.includes('relevance')) {
order.value = 'likes.desc';
}
}
const query = {
@@ -167,6 +169,8 @@ async function search(resetPage = true) {
avatar: filters.value.avatarRequired || undefined,
};
navigate(`/actors/${currentPage.value}`, query, { redirect: false });
const res = await get('/actors', {
...query,
page: currentPage.value, // client uses param rather than query pagination
@@ -178,12 +182,12 @@ async function search(resetPage = true) {
countries.value = res.countries;
events.emit('scrollUp');
navigate(`/actors/${currentPage.value}`, query, { redirect: false });
}
function paginate({ page }) {
currentPage.value = page;
search(false);
search({ resetPage: false });
}
function updateFilter(prop, value, reload = true) {