feat: add normalization and sorting of items by name in ItemsPage

This commit is contained in:
Felix Zett 2025-08-31 19:48:52 +02:00
parent 482396039d
commit c966009ab5

View file

@ -12,6 +12,13 @@ import {
import ItemList from "../components/ItemList";
import TagFilter from "../components/TagFilter";
function normalizeName(name: string): string {
return name
.replace(/\{.*?\}/g, "") // {...} entfernen
.replace(/[^\p{L}\p{N}]/gu, "") // alles außer Unicode-Buchstaben/Zahlen entfernen
.toLowerCase();
}
export default function ItemsPage() {
const [items, setItems] = useState<Item[]>([]);
const [tags, setTags] = useState<Tag[]>([]);
@ -73,6 +80,11 @@ export default function ItemsPage() {
return matchesText && matchesTags;
});
// Sortieren nach bereinigtem Namen
const sortedItems = [...filteredItems].sort((a, b) =>
normalizeName(a.name).localeCompare(normalizeName(b.name))
);
return (
<div className="p-4 max-w-3xl mx-auto">
<h1 className="text-2xl font-bold mb-4">Items</h1>
@ -97,7 +109,7 @@ export default function ItemsPage() {
<p>Lade...</p>
) : (
<ItemList
items={filteredItems}
items={sortedItems}
allTags={tags}
onUpdateName={handleRenameItem}
onDeleteTag={handleDeleteTag}