diff --git a/src/screens/ActivePickListScreen.tsx b/src/screens/ActivePickListScreen.tsx index 7c8e571..e1c2d84 100644 --- a/src/screens/ActivePickListScreen.tsx +++ b/src/screens/ActivePickListScreen.tsx @@ -114,6 +114,8 @@ export const ActivePickListScreen = () => { const packagingTypeCount = Number(hasCartonItems) + Number(hasUnitItems); const singlePackagingType = packagingTypeCount === 1; + const categoryFilteredProducts = useMemo(() => sortedProducts, [sortedProducts]); + const filteredProducts = useMemo(() => { const normalizedQuery = query.trim().toLowerCase(); if (!normalizedQuery) return categoryFilteredProducts; diff --git a/src/screens/StartPickListScreen.tsx b/src/screens/StartPickListScreen.tsx index 8a64be9..d6d9e51 100644 --- a/src/screens/StartPickListScreen.tsx +++ b/src/screens/StartPickListScreen.tsx @@ -25,12 +25,22 @@ export const StartPickListScreen = () => { const [selectedCategories, setSelectedCategories] = useState([]); const [autoAddNewProducts, setAutoAddNewProducts] = useState(true); + const uniqueCategories = useMemo(() => { + const seen = new Set(); + return categories.filter((category) => { + const key = category.name.trim().toLowerCase(); + if (seen.has(key)) return false; + seen.add(key); + return true; + }); + }, [categories]); + const sortedCategories = useMemo( () => - [...categories].sort((a, b) => + [...uniqueCategories].sort((a, b) => a.name.localeCompare(b.name, undefined, { sensitivity: 'base' }), ), - [categories], + [uniqueCategories], ); const handleToggleCategory = (categoryId: string) => {