diff --git a/src/routes/skills/-useSkillsBrowseModel.ts b/src/routes/skills/-useSkillsBrowseModel.ts index 25a26de02..c5a3d0e77 100644 --- a/src/routes/skills/-useSkillsBrowseModel.ts +++ b/src/routes/skills/-useSkillsBrowseModel.ts @@ -48,10 +48,9 @@ export function useSkillsBrowseModel({ const trimmedQuery = useMemo(() => query.trim(), [query]) const hasQuery = trimmedQuery.length > 0 - const sort: SortKey = - search.sort === 'relevance' && !hasQuery - ? 'downloads' - : (search.sort ?? (hasQuery ? 'relevance' : 'downloads')) + const sort: SortKey = hasQuery + ? (search.sort ?? 'relevance') + : (search.sort === 'relevance' ? 'downloads' : (search.sort ?? 'downloads')) const listSort = toListSort(sort) const dir = parseDir(search.dir, sort) const searchKey = trimmedQuery @@ -229,7 +228,13 @@ export function useSkillsBrowseModel({ const trimmed = next.trim() navigateTimer.current = window.setTimeout(() => { void navigate({ - search: (prev) => ({ ...prev, q: trimmed ? next : undefined }), + search: (prev) => ({ + ...prev, + q: trimmed ? next : undefined, + // When entering a search query, clear any injected sort so relevance + // becomes the default. Users can still pick a different sort manually. + sort: trimmed ? undefined : prev.sort, + }), replace: true, }) }, 220)