fix: use titles also in OPML

This commit is contained in:
2026-02-22 07:50:52 +01:00
parent c58df4b107
commit 8f983b5999
2 changed files with 57 additions and 4 deletions

View File

@@ -226,12 +226,29 @@ export const MenuEditorView: React.FC = () => {
]);
const metadataEntries = Object.entries(projectMetadata?.categoryMetadata ?? {});
setCategoryTitlesByName(Object.fromEntries(
const categoryTitleMap = Object.fromEntries(
metadataEntries.map(([name, metadata]) => [name, metadata.title?.trim() || name]),
));
);
setCategoryTitlesByName(categoryTitleMap);
setItems(menu.items);
setSelectedId(menu.items[0]?.id ?? null);
const normalizedItems = mapItems(menu.items, (item) => {
if (item.kind !== 'category-archive' || !item.categoryName) {
return item;
}
const metadataTitle = categoryTitleMap[item.categoryName]?.trim();
if (!metadataTitle || metadataTitle === item.title) {
return item;
}
return {
...item,
title: metadataTitle,
};
});
setItems(normalizedItems);
setSelectedId(normalizedItems[0]?.id ?? null);
} catch (error) {
console.error('Failed to load menu:', error);
showToast.error(tr('menuEditor.loadError'));