diff --git a/frontend/app/admin/products/AdminProductList.tsx b/frontend/app/admin/products/AdminProductList.tsx index b78e49f8..6b3bda83 100644 --- a/frontend/app/admin/products/AdminProductList.tsx +++ b/frontend/app/admin/products/AdminProductList.tsx @@ -18,7 +18,8 @@ const sortOptions = [ function flattenTree(nodes: CategoryNode[], depth = 0): { id: number; label: string }[] { const result: { id: number; label: string }[] = []; - for (const node of nodes) { + const sorted = [...nodes].sort((a, b) => a.name.localeCompare(b.name, 'sv')); + for (const node of sorted) { result.push({ id: node.id, label: '\u00a0\u00a0'.repeat(depth) + (depth > 0 ? '↳ ' : '') + node.name }); if (node.children?.length) result.push(...flattenTree(node.children, depth + 1)); } diff --git a/frontend/app/admin/products/EditProductForm.tsx b/frontend/app/admin/products/EditProductForm.tsx index ca257a34..8bff3467 100644 --- a/frontend/app/admin/products/EditProductForm.tsx +++ b/frontend/app/admin/products/EditProductForm.tsx @@ -53,7 +53,8 @@ export default function EditProductForm({ product }: Props) { // Bygg flat lista för select med indragna nivåer function flattenTree(nodes: CategoryNode[], depth = 0): { id: number; name: string; label: string }[] { const result: { id: number; name: string; label: string }[] = []; - for (const node of nodes) { + const sorted = [...nodes].sort((a, b) => a.name.localeCompare(b.name, 'sv')); + for (const node of sorted) { const prefix = depth === 0 ? '' : depth === 1 ? '\u00a0\u00a0\u00a0↳ ' : '\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0↳ '; result.push({ id: node.id, name: node.name, label: prefix + node.name }); result.push(...flattenTree(node.children, depth + 1));