feat: add normalization and sorting of items by name in ItemsPage
This commit is contained in:
parent
482396039d
commit
c966009ab5
1 changed files with 14 additions and 2 deletions
|
|
@ -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}
|
||||
|
|
|
|||
Loading…
Reference in a new issue