Consolidate autocomplete search SW-2253 SW-2338 * use fuse.js for fuzzy search * Handle weird behaviour when search field loses focus on destinationPage * Add error logging for JumpTo when no URL was provided * Switch to use <Typography /> over <Caption /> * fix: bookingWidget search label should always be red * fix: searchHistory can no longer add invalid items * fix: list more hits when searching * fix: issue when searchField value was undefined * fix: don't show searchHistory label if no searchHistory items * simplify skeleton for listitems in search Approved-by: Linus Flood
23 lines
629 B
TypeScript
23 lines
629 B
TypeScript
import { getSearchTokens } from "./getSearchTokens"
|
|
|
|
import type { Location } from "@/types/trpc/routers/hotel/locations"
|
|
import type { AutoCompleteLocation } from "../schema"
|
|
|
|
export function mapLocationToAutoCompleteLocation(
|
|
location: (Location & { url?: string }) | null | undefined
|
|
): AutoCompleteLocation | null {
|
|
if (!location) return null
|
|
|
|
return {
|
|
id: location.id,
|
|
name: location.name,
|
|
type: location.type,
|
|
url: location.url,
|
|
searchTokens: getSearchTokens(location),
|
|
destination:
|
|
location.type === "hotels"
|
|
? location.relationships.city.name
|
|
: location.country,
|
|
}
|
|
}
|