import { useEffect } from 'react'; import NotificationPanel from './NotificationPanel'; const DashboardView = ({ session, onRefresh, onLogout, notificationPanelOpen, onToggleNotificationPanel, notificationProps, stores, availableCollapsed, onToggleStores, onStoreSelect, configMap, error, onDismissError, status, visibleConfig, config, onToggleActive, onToggleProfileCheck, onToggleOnlyNotify, onWeekdayChange, weekdays, onRangePickerRequest, formatRangeLabel, onSaveConfig, onResetConfig, onHideEntry, onDeleteEntry, canDelete, focusedStoreId, onClearFocus }) => { useEffect(() => { if (!focusedStoreId) { return; } const row = document.querySelector(`[data-store-row="${focusedStoreId}"]`); if (!row) { onClearFocus(); return; } row.scrollIntoView({ behavior: 'smooth', block: 'center' }); row.classList.add('ring-2', 'ring-blue-400', 'bg-yellow-100'); const timeout = setTimeout(() => { row.classList.remove('ring-2', 'ring-blue-400', 'bg-yellow-100'); onClearFocus(); }, 3000); return () => { clearTimeout(timeout); row.classList.remove('ring-2', 'ring-blue-400', 'bg-yellow-100'); }; }, [focusedStoreId, onClearFocus]); const { error: notificationError, message: notificationMessage, settings: notificationSettings, capabilities: notificationCapabilities, loading: notificationLoading, dirty: notificationDirty, saving: notificationSaving, onReset: onNotificationReset, onSave: onNotificationSave, onFieldChange: onNotificationFieldChange, onSendTest: onNotificationTest, onCopyLink: onNotificationCopy, copyFeedback, ntfyPreviewUrl } = notificationProps; return (
Angemeldet
{session.profile.name}
Profil-ID: {session.profile.id}
{store.name}
{store.zip} {store.city}
{statusLabel}
| Aktiv | Geschäft | Profil prüfen | Nur benachrichtigen | Wochentag | Datum / Zeitraum | Aktionen |
|---|---|---|---|---|---|---|
| onToggleActive(item.id)} className="h-5 w-5" /> | {item.label} {item.hidden && (ausgeblendet)} | onToggleProfileCheck(item.id)} className="h-5 w-5" /> | onToggleOnlyNotify(item.id)} className="h-5 w-5" /> | {canDelete && ( )} |