B137 — restore searchOnlyListOmnibox from main (CI merge ref)

This commit is contained in:
Cursor Agent 2026-08-03 00:06:10 +00:00
parent d25d719ed9
commit 6c6a742cb4
No known key found for this signature in database

View file

@ -2,7 +2,11 @@
* Degenerate omnibox for lists that only expose free-text search (B128:
* organizações). Pure / client-safe.
*/
import { type CampaignListOmniboxChip } from '@/lib/campaignListOmnibox'
import {
filterOmniboxSuggestionSeeds,
type CampaignListOmniboxChip,
type CampaignListOmniboxSuggestion,
} from '@/lib/campaignListOmnibox'
export type SearchOnlyListState = {
q?: string
@ -19,6 +23,9 @@ export const buildSearchOnlyOmniboxChips = (
state: SearchOnlyListState,
): CampaignListOmniboxChip[] => (state.q ? [{ id: 'q', label: chipLabel('Busca', state.q) }] : [])
export const buildSearchOnlyOmniboxSuggestions = (query: string): CampaignListOmniboxSuggestion[] =>
filterOmniboxSuggestionSeeds([], query)
export const applySearchOnlyOmniboxSuggestion = <T extends SearchOnlyListState>({
state,
suggestionId,
@ -34,3 +41,28 @@ export const applySearchOnlyOmniboxSuggestion = <T extends SearchOnlyListState>(
}
return { kind: 'url', state }
}
export const removeSearchOnlyOmniboxChip = <T extends SearchOnlyListState>({
state,
chipId,
withPageReset,
}: {
state: T
chipId: string
withPageReset: (next: T) => T
}): SearchOnlyOmniboxAction<T> => {
if (chipId === 'q') {
return { kind: 'url', state: withPageReset({ ...state, q: undefined }) }
}
return { kind: 'url', state }
}
export const clearSearchOnlyOmnibox = <T extends SearchOnlyListState>({
cleared,
}: {
state: T
cleared: T
}): SearchOnlyOmniboxAction<T> => ({
kind: 'clear',
state: cleared,
})