From 0f2be469dad3ceb09a14c9da0d32e940c672d053 Mon Sep 17 00:00:00 2001 From: ArneBo Date: Tue, 22 Apr 2025 16:51:54 +0200 Subject: [PATCH] feat(front): [WIP] federated search in search modal --- front/src/ui/modals/Search.vue | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/front/src/ui/modals/Search.vue b/front/src/ui/modals/Search.vue index e0683d5df..8b973c3c6 100644 --- a/front/src/ui/modals/Search.vue +++ b/front/src/ui/modals/Search.vue @@ -98,7 +98,8 @@ type Results = { podcasts: Response['podcasts']['results'], series: Response['series']['results'], rss: [Response['rss']], - federation: [Response['federation']] + federation: [Response['federation']], + type: Category } const responses = ref>({}) @@ -321,18 +322,21 @@ const search = async () => { } responses.value[category.type] = response.data } else { + // TODO: add (@)type key to Response type if (category.type === 'rss') { const response = await axios.post( category.endpoint, { url: trimmedQuery.value } ) + results.value.type = category.type results.value.rss = [response.data] responses.value[category.type] = response.data } else if (category.type === 'federation') { const response = await axios.post( category.endpoint, - { params } + { object: trimmedQuery.value } ) + results.value.type = category.type results.value.federation = [response.data] responses.value[category.type] = response.data } else if (category.type === 'playlists') { @@ -340,6 +344,7 @@ const search = async () => { category.endpoint, { params } ) + results.value.type = category.type results.value.playlists = response.data.results responses.value[category.type] = response.data } else if (category.type === 'podcasts') { @@ -347,6 +352,7 @@ const search = async () => { category.endpoint, { params } ) + results.value.type = category.type results.value.podcasts = response.data.results responses.value[category.type] = response.data } else if (category.type === 'radios') { @@ -354,6 +360,7 @@ const search = async () => { category.endpoint, { params } ) + results.value.type = category.type results.value.radios = response.data.results responses.value[category.type] = response.data } else if (category.type === 'series') { @@ -361,6 +368,7 @@ const search = async () => { category.endpoint, { params } ) + results.value.type = category.type results.value.series = response.data.results responses.value[category.type] = response.data } @@ -398,6 +406,8 @@ const radioConfig = computed(() => // Start the search watch(queryDebounced, search, { immediate: true }) + +// TODO: Include redirectRoute function from RemoteSearchForm.vue and adapt to !results.value and results.value.type instead of objInfo