Skip to content

Commit 2291554

Browse files
authored
Merge pull request #110 from Leets-Official/107-fix/검색-키워드-모델-매칭-추가
[Fix] 검색 키워드 모델 매칭 추가
2 parents 10acf37 + f4c6fb9 commit 2291554

1 file changed

Lines changed: 17 additions & 2 deletions

File tree

src/pages/buy/model/filterBuyItems.ts

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,23 @@ export const filterBuyItems = ({
2424
applyPriceFilter = false,
2525
applyQueryFilter = false,
2626
}: FilterParams) => {
27+
const normalizeQuery = (value: string) => value.toLowerCase().replace(/\s+/g, ' ').trim();
28+
const compactQuery = (value: string) => normalizeQuery(value).replace(/\s+/g, '');
2729
const trimmedQuery = query.trim();
30+
const normalizedQuery = normalizeQuery(query);
31+
const compactedQuery = compactQuery(query);
2832

2933
return items.filter((item) => {
3034
if (skipServerSyncedFilters) {
3135
const matchesManufacturer =
3236
!applyManufacturerFilter || selectedManufacturers.length === 0 || selectedManufacturers.includes(item.brand);
33-
const matchesQuery = !applyQueryFilter || trimmedQuery.length === 0 || item.title.includes(trimmedQuery);
37+
const matchesQuery =
38+
!applyQueryFilter ||
39+
trimmedQuery.length === 0 ||
40+
normalizeQuery(item.title).includes(normalizedQuery) ||
41+
normalizeQuery(item.model).includes(normalizedQuery) ||
42+
compactQuery(item.title).includes(compactedQuery) ||
43+
compactQuery(item.model).includes(compactedQuery);
3444
if (!applyPriceFilter) {
3545
return matchesManufacturer && matchesQuery;
3646
}
@@ -62,7 +72,12 @@ export const filterBuyItems = ({
6272
}
6373
return item.priceValue >= range.min && item.priceValue < range.max;
6474
});
65-
const matchesQuery = trimmedQuery.length === 0 || item.title.includes(trimmedQuery);
75+
const matchesQuery =
76+
trimmedQuery.length === 0 ||
77+
normalizeQuery(item.title).includes(normalizedQuery) ||
78+
normalizeQuery(item.model).includes(normalizedQuery) ||
79+
compactQuery(item.title).includes(compactedQuery) ||
80+
compactQuery(item.model).includes(compactedQuery);
6681

6782
return matchesManufacturer && matchesModel && matchesPrice && matchesQuery;
6883
});

0 commit comments

Comments
 (0)