Skip to content

Commit cb51398

Browse files
2992: Normalize search and remove unnecessary replace
1 parent 303c8a3 commit cb51398

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

shared/hooks/useSearch.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import CategoriesMapModel from '../api/models/CategoriesMapModel'
55
import EventModel from '../api/models/EventModel'
66
import ExtendedPageModel from '../api/models/ExtendedPageModel'
77
import PoiModel from '../api/models/PoiModel'
8+
import normalizeString from '../utils/normalizeString'
89

910
export type SearchResult = ExtendedPageModel
1011
const DEBOUNCED_QUERY_TIMEOUT = 250
@@ -23,13 +24,14 @@ export const prepareSearchDocuments = (
2324
// Modifying single documents or replacing documents with a same length array will therefore NOT trigger an update
2425
const useSearch = (documents: SearchResult[], query: string): SearchResult[] => {
2526
const [indexing, setIndexing] = useState(false)
26-
const [debouncedQuery, setDebouncedQuery] = useState(query)
27+
const [debouncedQuery, setDebouncedQuery] = useState(normalizeString(query))
2728

2829
const [search] = useState(
2930
new MiniSearch({
3031
idField: 'path',
3132
fields: ['title', 'content'],
3233
storeFields: ['title', 'content', 'path', 'thumbnail'],
34+
processTerm: normalizeString,
3335
searchOptions: {
3436
boost: { title: 2 },
3537
fuzzy: true,
@@ -40,7 +42,7 @@ const useSearch = (documents: SearchResult[], query: string): SearchResult[] =>
4042

4143
useEffect(() => {
4244
const debounceQueryTimeout = setTimeout(() => {
43-
setDebouncedQuery(query)
45+
setDebouncedQuery(normalizeString(query))
4446
}, DEBOUNCED_QUERY_TIMEOUT)
4547

4648
return () => clearTimeout(debounceQueryTimeout)

shared/utils/search.ts

+2-4
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,14 @@ import { normalizeString } from './normalizeString'
44
const cityFilter =
55
(filterText: string, developerFriendly: boolean) =>
66
(cityModel: CityModel): boolean => {
7-
const normalizedFilter = normalizeString(filterText).replace('ß', 'ss')
7+
const normalizedFilter = normalizeString(filterText)
88
if (normalizedFilter === 'wirschaffendas') {
99
return !cityModel.live
1010
}
1111

1212
const validCity = cityModel.live || developerFriendly
1313
const aliases = Object.keys(cityModel.aliases ?? {})
14-
const matchesFilter = [cityModel.name, ...aliases].some(it =>
15-
normalizeString(it).replace('ß', 'ss').includes(normalizedFilter),
16-
)
14+
const matchesFilter = [cityModel.name, ...aliases].some(it => normalizeString(it).includes(normalizedFilter))
1715
return validCity && matchesFilter
1816
}
1917

0 commit comments

Comments
 (0)