add most resent code

This commit is contained in:
Esteban 2026-06-04 18:42:56 -05:00
parent b356a0bea3
commit 07bddf5eb9
5 changed files with 44 additions and 3 deletions

View File

@ -140,6 +140,7 @@ const colors = computed(() => {
// ---- State ----------------------------------------------------------------
const exactSearch = ref(false)
const sortMode = ref<'relevance' | 'date'>('relevance')
const groupedHits = ref<SearchGroup[]>([])
const total = ref(0)
@ -254,6 +255,8 @@ async function runSearch(q: string, page = 1, append = false) {
const typePage = isInfinite ? (append ? currentPage.value + 1 : 1) : page
try {
const shouldSortByDate = sortMode.value === 'date' && q.trim()
const multi = await documentsApi.multiSearch({
multiSearchParameters: {},
multiSearchSearchesParameter: {
@ -262,6 +265,7 @@ async function runSearch(q: string, page = 1, append = false) {
q: exactSearch.value && q ? `"${q}"` : q || '*',
queryBy: QUERY_BY,
filterBy: filterBy.value,
...(shouldSortByDate ? { sortBy: `$${props.mainCollection}(timestamp:desc)` } : {}),
perPage: settings.pageSize,
page: typePage,
highlightFullFields: QUERY_BY,
@ -428,6 +432,15 @@ watch(exactSearch, () => {
if (query.value.trim()) runSearch(query.value, 1, false)
})
watch(sortMode, () => {
if (query.value.trim()) {
groupedHits.value = []
total.value = 0
currentPage.value = 1
runSearch(query.value, 1, false)
}
})
// ---- Selección y carga del detalle ----------------------------------------
const selectedDocId = ref<string | null>(null)
@ -607,6 +620,18 @@ function metaLocation(meta: DocMeta | undefined): string {
>{{ t('search.phrase') }}</button>
</div>
</div>
<div class="px-4 sm:px-6 py-3">
<USelect
v-if="query.trim()"
v-model="sortMode"
:items="[
{ label: t('search.sort.relevance'), value: 'relevance' },
{ label: t('search.sort.date'), value: 'date' }
]"
size="sm"
class="shrink-0 min-w-[130px]"
/>
</div>
<UAlert
v-if="errorMsg"

View File

@ -12,8 +12,12 @@
"settings": "Settings",
"changelog": "What's New"
},
"search": {
"word": "Word",
"search": {
"sort": {
"relevance": "Normal",
"date": "Most recent"
},
"word": "Word",
"phrase": "Phrase",
"placeholder": "Search for...",
"searching": "Searching...",

View File

@ -55,6 +55,10 @@
"hits_per_page": "aciertos por página",
"hits_retrieved_in": "aciertos logrados en",
"for": "Buscando",
"sort": {
"relevance": "Normal",
"date": "Más recientes"
},
"word": "Palabra",
"phrase": "Frase",
"words": "palabras",

View File

@ -13,6 +13,10 @@
"changelog": "Nouveautés"
},
"search": {
"sort": {
"relevance": "Normal",
"date": "Plus récents"
},
"word": "Mot",
"phrase": "Phrase",
"placeholder": "Rechercher des activités",

View File

@ -13,6 +13,10 @@
"changelog": "Novidades"
},
"search": {
"sort": {
"relevance": "Normal",
"date": "Mais recentes"
},
"word": "Palavra",
"phrase": "Frase",
"placeholder": "Digite para pesquisar...",