refactoring

This commit is contained in:
2025-11-10 13:59:25 +01:00
parent 36e8f0e5bc
commit 4813a6a47f

View File

@@ -1,4 +1,4 @@
import { useEffect } from 'react'; import { useEffect, useMemo } from 'react';
import NotificationPanel from './NotificationPanel'; import NotificationPanel from './NotificationPanel';
const DashboardView = ({ const DashboardView = ({
@@ -70,6 +70,28 @@ const DashboardView = ({
ntfyPreviewUrl ntfyPreviewUrl
} = notificationProps; } = notificationProps;
const sortedStores = useMemo(() => {
const list = Array.isArray(stores) ? [...stores] : [];
return list.sort((a, b) => {
const aId = a?.id != null ? String(a.id) : '';
const bId = b?.id != null ? String(b.id) : '';
const aInConfig = configMap?.has(aId);
const bInConfig = configMap?.has(bId);
if (aInConfig !== bInConfig) {
return aInConfig ? 1 : -1;
}
const nameA = (a?.name || '').toLocaleLowerCase('de-DE');
const nameB = (b?.name || '').toLocaleLowerCase('de-DE');
if (nameA < nameB) {
return -1;
}
if (nameA > nameB) {
return 1;
}
return 0;
});
}, [stores, configMap]);
return ( return (
<div className="p-4 max-w-6xl mx-auto bg-white shadow-lg rounded-lg mt-4"> <div className="p-4 max-w-6xl mx-auto bg-white shadow-lg rounded-lg mt-4">
<h1 className="text-2xl font-bold mb-4 text-center text-gray-800">Foodsharing Pickup Manager</h1> <h1 className="text-2xl font-bold mb-4 text-center text-gray-800">Foodsharing Pickup Manager</h1>
@@ -153,7 +175,7 @@ const DashboardView = ({
</button> </button>
{!availableCollapsed && ( {!availableCollapsed && (
<div className="max-h-72 overflow-y-auto divide-y divide-gray-100"> <div className="max-h-72 overflow-y-auto divide-y divide-gray-100">
{stores.map((store) => { {sortedStores.map((store) => {
const storeId = String(store.id); const storeId = String(store.id);
const entry = configMap.get(storeId); const entry = configMap.get(storeId);
const isVisible = entry && !entry.hidden; const isVisible = entry && !entry.hidden;