Skip to content

Commit ffe23ca

Browse files
committed
Fix sort order for language-tagged OSM tag keys
In agreement with @Mayaryin.
1 parent 721e1b9 commit ffe23ca

File tree

4 files changed

+16
-11
lines changed

4 files changed

+16
-11
lines changed

src/components/CombinedFeaturePanel/components/AccessibilitySection/OSMTagPanel.tsx

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import { get, set, sortBy } from "lodash";
22
import * as React from "react";
3-
import { getAvailableLangTags } from "~/components/CombinedFeaturePanel/utils/TagKeyUtils";
3+
import {
4+
getAvailableLangTags,
5+
normalizeAndExtractLanguageTagsIfPresent,
6+
} from "~/components/CombinedFeaturePanel/utils/TagKeyUtils";
47
import { useCurrentLanguageTagStrings } from "~/lib/context/LanguageTagContext";
58
import type { TypeTaggedOSMFeature } from "~/lib/model/geo/AnyFeature";
69
import { omittedKeyPrefixes } from "~/lib/model/osm/tag-config/omittedKeyPrefixes";
@@ -54,7 +57,9 @@ function generateTree(keys: string[]): ITreeNode {
5457
function nest(tree: ITreeNode) {
5558
const entries = Object.entries(tree);
5659
const sortedEntries = sortBy(entries, ([key]) => {
57-
const order = sortOrderMap.get(key);
60+
const { normalizedOSMTagKey } =
61+
normalizeAndExtractLanguageTagsIfPresent(key);
62+
const order = sortOrderMap.get(normalizedOSMTagKey);
5863
return order === undefined ? 100000 : order;
5964
});
6065

src/components/CombinedFeaturePanel/editors/AutoEditor.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ export const AutoEditor = ({
150150

151151
const handleTagKeyChange = React.useCallback(
152152
(newPickerValue: string) => {
153-
const { normalizedTag: baseTag } =
153+
const { normalizedOSMTagKey: baseTag } =
154154
normalizeAndExtractLanguageTagsIfPresent(tagName);
155155
const updatedTagName = [baseTag, newPickerValue].join(":");
156156

src/components/CombinedFeaturePanel/editors/StringFieldEditor.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export const StringFieldEditor: React.FC<BaseEditorProps> = ({
3636
}
3737
const { baseFeatureUrl } = useContext(FeaturePanelContext);
3838

39-
const { normalizedTag: tagKeyWithoutLangTag } =
39+
const { normalizedOSMTagKey: tagKeyWithoutLangTag } =
4040
normalizeAndExtractLanguageTagsIfPresent(tagKey);
4141
const initialTagValue = feature.properties?.[tagKey] ?? "";
4242

src/components/CombinedFeaturePanel/utils/TagKeyUtils.tsx

+7-7
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,16 @@ import { languageTaggedKeys } from "~/lib/model/osm/tag-config/languageTaggedKey
1313
* Input: `an:other:tag`, Output: `{ an:other:tag, false, null }`
1414
*/
1515

16-
export const normalizeAndExtractLanguageTagsIfPresent = (tagName: string) => {
17-
if (languageTaggedKeys.has(tagName)) {
16+
export const normalizeAndExtractLanguageTagsIfPresent = (osmTagKey: string) => {
17+
if (languageTaggedKeys.has(osmTagKey)) {
1818
return {
19-
normalizedTag: tagName,
19+
normalizedOSMTagKey: osmTagKey,
2020
hasLanguageTagSupport: true,
2121
languageTag: null,
2222
};
2323
}
2424

25-
const parts: string[] = tagName.split(":");
25+
const parts: string[] = osmTagKey.split(":");
2626
let assembledString: string = parts.slice(0, parts.length - 1).join(":");
2727

2828
for (let i = 1; i < parts.length; i++) {
@@ -32,14 +32,14 @@ export const normalizeAndExtractLanguageTagsIfPresent = (tagName: string) => {
3232
describeIETFLanguageTag(languageTag, false) !== "undefined tag";
3333
if (isValidTag) {
3434
return {
35-
normalizedTag: assembledString,
35+
normalizedOSMTagKey: assembledString,
3636
hasLanguageTagSupport: true,
3737
languageTag,
3838
};
3939
}
4040
console.warn("Tag ", assembledString, "is appended with an unknown tag.");
4141
return {
42-
normalizedTag: assembledString,
42+
normalizedOSMTagKey: assembledString,
4343
hasLanguageTagSupport: true,
4444
languageTag: null,
4545
};
@@ -48,7 +48,7 @@ export const normalizeAndExtractLanguageTagsIfPresent = (tagName: string) => {
4848
}
4949

5050
return {
51-
normalizedTag: tagName,
51+
normalizedOSMTagKey: osmTagKey,
5252
hasLanguageTagSupport: false,
5353
languageTag: null,
5454
};

0 commit comments

Comments
 (0)