Skip to content

Commit 902d8bc

Browse files
authored
Merge pull request #259 from zigzagdev/feat/replace-region-front
Replace StudyRegion
2 parents 7bcaac9 + 0c2472c commit 902d8bc

18 files changed

Lines changed: 532 additions & 225 deletions

client/src/app/features/heritages/mappers/to-world-heritage-vm.ts

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,24 @@ import { CRITERIA } from "../../../../domain/types.ts";
88

99
const ORDER: readonly CriteriaCode[] = CRITERIA;
1010

11-
const isCode = (v: string): v is CriteriaCode => (ORDER as readonly string[]).includes(v);
11+
const isCode = (value: string): value is CriteriaCode =>
12+
(ORDER as readonly string[]).includes(value);
1213

13-
const normalizeCriteria = (arr: readonly (string | CriteriaCode)[]): CriteriaCode[] =>
14-
Array.from(new Set(arr))
14+
const normalizeCriteria = (values: readonly (string | CriteriaCode)[]): CriteriaCode[] =>
15+
Array.from(new Set(values))
1516
.filter(isCode)
1617
.sort((a, b) => ORDER.indexOf(a) - ORDER.indexOf(b));
1718

18-
const fmtHa = (v: number | null) => (v == null ? "—" : `${Number(v).toLocaleString("en-CA")} ha`);
19+
const fmtHa = (value: number | null): string =>
20+
value == null ? "—" : `${Number(value).toLocaleString("en-CA")} ha`;
1921

20-
const titleOf = (data: ApiWorldHeritageDto) =>
22+
const titleOf = (data: ApiWorldHeritageDto): string =>
2123
data.heritage_name_jp || data.official_name || data.name;
2224

23-
const countryLabelOf = (data: ApiWorldHeritageDto) => data.country_name_jp || data.country || null;
25+
const countryLabelOf = (data: ApiWorldHeritageDto): string | null =>
26+
data.country_name_jp || data.country || null;
2427

25-
const subtitleOf = (data: ApiWorldHeritageDto) =>
28+
const subtitleOf = (data: ApiWorldHeritageDto): string =>
2629
[countryLabelOf(data), data.region].filter(Boolean).join(" · ");
2730

2831
const toStatePartyLabelsJp = (codes: readonly string[]): string[] =>
@@ -31,14 +34,16 @@ const toStatePartyLabelsJp = (codes: readonly string[]): string[] =>
3134
const normalizeStatePartiesMeta = (
3235
meta: ApiWorldHeritageDto["state_parties_meta"],
3336
): WorldHeritageVm["statePartiesMeta"] => {
34-
if (Array.isArray(meta)) return {};
37+
if (Array.isArray(meta)) {
38+
return {};
39+
}
3540

3641
return Object.fromEntries(
37-
Object.entries(meta).map(([k, v]) => [
38-
k,
42+
Object.entries(meta).map(([key, value]) => [
43+
key,
3944
{
40-
isPrimary: v.is_primary,
41-
inscriptionYear: v.inscription_year,
45+
isPrimary: value.is_primary,
46+
inscriptionYear: value.inscription_year,
4247
},
4348
]),
4449
);

client/src/app/features/search/apis/index.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,13 +91,13 @@ describe("createSearchApi", () => {
9191

9292
const out = await api.searchHeritages({
9393
keyword: "Japan",
94-
region: "APA",
94+
region: "Asia",
9595
category: "Cultural",
9696
currentPage: 2,
9797
perPage: 10,
9898
});
9999

100-
const expectedUrl = `${ENDPOINT}?search_query=Japan&region=APA&category=Cultural&current_page=2&per_page=10`;
100+
const expectedUrl = `${ENDPOINT}?search_query=Japan&region=Asia&category=Cultural&current_page=2&per_page=10`;
101101

102102
expect(fetchSpy).toHaveBeenCalledWith(
103103
expectedUrl,

client/src/app/features/search/apis/search-api.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
import type { ApiWorldHeritageDto, ListResult, Pagination } from "../../../../domain/types";
1+
import type {
2+
ApiWorldHeritageDto,
3+
ListResult,
4+
Pagination,
5+
StudyRegion,
6+
} from "../../../../domain/types";
27

38
export type SearchApiDeps = {
49
apiBase: string;
@@ -7,7 +12,7 @@ export type SearchApiDeps = {
712

813
export type SearchParams = {
914
keyword?: string;
10-
region?: string;
15+
region?: StudyRegion;
1116
category?: string;
1217
yearInscribedFrom?: number;
1318
yearInscribedTo?: number;
@@ -47,10 +52,10 @@ export const createSearchApi = ({ apiBase, fetchImpl = fetch }: SearchApiDeps) =
4752
const queryParams = new URLSearchParams();
4853

4954
const keyword = params.keyword?.trim();
50-
const region = params.region?.trim();
55+
const region = params.region;
5156
const category = params.category?.trim();
52-
const yearInscribedFrom = params.yearInscribedFrom?.toString().trim();
53-
const yearInscribedTo = params.yearInscribedTo?.toString().trim();
57+
const yearInscribedFrom = params.yearInscribedFrom?.toString();
58+
const yearInscribedTo = params.yearInscribedTo?.toString();
5459

5560
if (keyword) queryParams.set("search_query", keyword);
5661
if (region) queryParams.set("region", region);

0 commit comments

Comments
 (0)