Skip to content

Commit 6f9b99e

Browse files
committed
StopAreaChangeHistory: Fix diffing for names
1 parent 23385f1 commit 6f9b99e

2 files changed

Lines changed: 53 additions & 28 deletions

File tree

ui/src/components/stop-registry/stop-areas/change-history/utils/diffStopArea.tsx

Lines changed: 50 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,25 @@ import {
1010
KnownValueKey,
1111
findAlternativeName,
1212
findKeyValue,
13-
getEmbeddedName,
1413
getGeometryPoint,
1514
} from '../../../../../utils';
1615
import {
1716
ChangedValue,
1817
StopsList,
1918
diffKeyedValues,
2019
mapNullable,
20+
normalizeEmptyValue,
2121
} from '../../../../common/ChangeHistory';
2222

23+
function getNormalizedAlternativeName(
24+
details: HistoricalStopAreaDetailsFragment,
25+
lang: string,
26+
nameType: StopRegistryNameType,
27+
) {
28+
const name = findAlternativeName(details, lang, nameType);
29+
return normalizeEmptyValue(name?.value);
30+
}
31+
2332
export function diffStopAreaBasicDetails(
2433
t: TFunction,
2534
previous: HistoricalStopAreaDetailsFragment,
@@ -53,100 +62,116 @@ export function diffStopAreaBasicDetails(
5362
diffKeyedValues({
5463
key: 'NameSwe',
5564
field: t(($) => $.stopAreaDetails.basicDetails.nameSwe),
56-
oldValue: findAlternativeName(
65+
oldValue: getNormalizedAlternativeName(
5766
previous,
5867
'swe',
5968
StopRegistryNameType.Translation,
6069
),
61-
newValue: findAlternativeName(
70+
newValue: getNormalizedAlternativeName(
6271
current,
6372
'swe',
6473
StopRegistryNameType.Translation,
6574
),
66-
mapper: getEmbeddedName,
6775
}),
6876
diffKeyedValues({
6977
key: 'NameEng',
7078
field: t(($) => $.stopAreaDetails.basicDetails.nameEng),
71-
oldValue: findAlternativeName(
79+
oldValue: getNormalizedAlternativeName(
7280
previous,
7381
'eng',
7482
StopRegistryNameType.Translation,
7583
),
76-
newValue: findAlternativeName(
84+
newValue: getNormalizedAlternativeName(
7785
current,
7886
'eng',
7987
StopRegistryNameType.Translation,
8088
),
81-
mapper: getEmbeddedName,
8289
}),
8390

8491
diffKeyedValues({
8592
key: 'LongNameFin',
8693
field: t(($) => $.stopAreaDetails.basicDetails.nameLongFin),
87-
oldValue: findAlternativeName(
94+
oldValue: getNormalizedAlternativeName(
8895
previous,
8996
'fin',
9097
StopRegistryNameType.Alias,
9198
),
92-
newValue: findAlternativeName(current, 'fin', StopRegistryNameType.Alias),
93-
mapper: getEmbeddedName,
99+
newValue: getNormalizedAlternativeName(
100+
current,
101+
'fin',
102+
StopRegistryNameType.Alias,
103+
),
94104
}),
95105
diffKeyedValues({
96106
key: 'LongNameSwe',
97107
field: t(($) => $.stopAreaDetails.basicDetails.nameLongSwe),
98-
oldValue: findAlternativeName(
108+
oldValue: getNormalizedAlternativeName(
99109
previous,
100110
'swe',
101111
StopRegistryNameType.Alias,
102112
),
103-
newValue: findAlternativeName(current, 'swe', StopRegistryNameType.Alias),
104-
mapper: getEmbeddedName,
113+
newValue: getNormalizedAlternativeName(
114+
current,
115+
'swe',
116+
StopRegistryNameType.Alias,
117+
),
105118
}),
106119
diffKeyedValues({
107120
key: 'LongNameEng',
108121
field: t(($) => $.stopAreaDetails.basicDetails.nameLongEng),
109-
oldValue: findAlternativeName(
122+
oldValue: getNormalizedAlternativeName(
110123
previous,
111124
'eng',
112125
StopRegistryNameType.Alias,
113126
),
114-
newValue: findAlternativeName(current, 'eng', StopRegistryNameType.Alias),
115-
mapper: getEmbeddedName,
127+
newValue: getNormalizedAlternativeName(
128+
current,
129+
'eng',
130+
StopRegistryNameType.Alias,
131+
),
116132
}),
117133

118134
diffKeyedValues({
119135
key: 'AbbreviationFin',
120136
field: t(($) => $.stopAreaDetails.basicDetails.abbreviationFin),
121-
oldValue: findAlternativeName(
137+
oldValue: getNormalizedAlternativeName(
122138
previous,
123139
'fin',
124140
StopRegistryNameType.Other,
125141
),
126-
newValue: findAlternativeName(current, 'fin', StopRegistryNameType.Other),
127-
mapper: getEmbeddedName,
142+
newValue: getNormalizedAlternativeName(
143+
current,
144+
'fin',
145+
StopRegistryNameType.Other,
146+
),
128147
}),
129148
diffKeyedValues({
130149
key: 'AbbreviationSwe',
131150
field: t(($) => $.stopAreaDetails.basicDetails.abbreviationSwe),
132-
oldValue: findAlternativeName(
151+
oldValue: getNormalizedAlternativeName(
133152
previous,
134153
'swe',
135154
StopRegistryNameType.Other,
136155
),
137-
newValue: findAlternativeName(current, 'swe', StopRegistryNameType.Other),
138-
mapper: getEmbeddedName,
156+
newValue: getNormalizedAlternativeName(
157+
current,
158+
'swe',
159+
StopRegistryNameType.Other,
160+
),
139161
}),
140162
diffKeyedValues({
141163
key: 'AbbreviationEng',
142164
field: t(($) => $.stopAreaDetails.basicDetails.abbreviationEng),
143-
oldValue: findAlternativeName(
165+
oldValue: getNormalizedAlternativeName(
144166
previous,
145167
'eng',
146168
StopRegistryNameType.Other,
147169
),
148-
newValue: findAlternativeName(current, 'eng', StopRegistryNameType.Other),
149-
mapper: getEmbeddedName,
170+
newValue: getNormalizedAlternativeName(
171+
current,
172+
'eng',
173+
StopRegistryNameType.Other,
174+
),
150175
}),
151176

152177
diffKeyedValues({

ui/src/utils/stop-registry/alternativeNames.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,20 +55,20 @@ export function getNameFromAlternatives(
5555
return defaultName ?? null;
5656
}
5757

58-
export const findAlternativeName = (
58+
export function findAlternativeName(
5959
entity: {
6060
readonly alternativeNames?: ReadonlyArray<
6161
StopRegistryAlternativeName | null | undefined
6262
> | null;
6363
},
6464
lang: string,
6565
nameType: StopRegistryNameType = StopRegistryNameType.Translation,
66-
): StopRegistryEmbeddableMultilingualString | null => {
66+
): StopRegistryEmbeddableMultilingualString | null {
6767
const matchingName = entity.alternativeNames?.find(
6868
(an) => an?.name.lang === lang && an.nameType === nameType,
6969
);
7070
return matchingName?.name ?? null;
71-
};
71+
}
7272

7373
export function getEmbeddedName(
7474
name: StopRegistryEmbeddableMultilingualString | null | undefined,

0 commit comments

Comments
 (0)