From 3c2ebdbc0ebf41ec65350bb99e823b034fbbd114 Mon Sep 17 00:00:00 2001 From: Codex Agent Date: Tue, 20 Jan 2026 11:37:20 +0100 Subject: [PATCH] Fix sticky tasks toolbar layout --- resources/css/app.css | 1 + resources/js/admin/mobile/EventTasksPage.tsx | 514 ++++++++++--------- 2 files changed, 259 insertions(+), 256 deletions(-) diff --git a/resources/css/app.css b/resources/css/app.css index 8b11ec6..37bc2f1 100644 --- a/resources/css/app.css +++ b/resources/css/app.css @@ -555,6 +555,7 @@ html.guest-theme.dark { position: sticky; top: calc(env(safe-area-inset-top, 0px) + 76px); z-index: 45; + width: 100%; } @media (prefers-reduced-motion: reduce) { diff --git a/resources/js/admin/mobile/EventTasksPage.tsx b/resources/js/admin/mobile/EventTasksPage.tsx index 158d7e0..997d0e7 100644 --- a/resources/js/admin/mobile/EventTasksPage.tsx +++ b/resources/js/admin/mobile/EventTasksPage.tsx @@ -618,6 +618,254 @@ export default function MobileEventTasksPage() { } } + const taskPanel = assignedTasks.length === 0 ? ( + + + + {t('events.tasks.emptyTitle', 'No photo tasks yet')} + + + {t('events.tasks.emptyBody', 'Create photo tasks or import a pack for your event.')} + + + setShowTaskSheet(true)} + fullWidth={false} + /> + setShowCollectionSheet(true)} + fullWidth={false} + /> + + + + + setShowTaskSheet(true)} + title={ + + + + + + {t('events.tasks.addTask', 'Fotoaufgabe hinzufügen')} + + + } + subTitle={ + + {t('events.tasks.addTaskHint', 'Erstelle eine neue Fotoaufgabe für dieses Event.')} + + } + paddingVertical="$2" + paddingHorizontal="$3" + iconAfter={} + /> + + + setShowCollectionSheet(true)} + title={ + + + + + + {t('events.tasks.import', 'Fotoaufgabenpaket importieren')} + + + } + subTitle={ + + {t('events.tasks.importHint', 'Nutze vordefinierte Pakete für deinen Event-Typ.')} + + } + paddingVertical="$2" + paddingHorizontal="$3" + iconAfter={} + /> + + + + ) : ( + + + + {t('events.tasks.count', '{{count}} photo tasks', { count: filteredTasks.length })} + + {selectionMode ? ( + + + {t('events.tasks.selectionCount', '{{count}} ausgewählt', { count: selectedTaskIds.size })} + + + setBulkDeleteOpen(true)} + /> + clearSelection()} + /> + + + ) : null} + + {filteredTasks.map((task, idx) => ( + + handleTaskPress(task)} + onPointerDown={() => startLongPress(task.id)} + onPointerUp={cancelLongPress} + onPointerLeave={cancelLongPress} + onPointerCancel={cancelLongPress} + title={ + + {selectionMode ? ( + toggleSelectedTask(task.id)} + onPress={(event: any) => event?.stopPropagation?.()} + aria-label={t('events.tasks.select', 'Select photo task')} + > + + + + + ) : null} + + {task.title} + + + } + subTitle={ + task.description ? ( + + {task.description} + + ) : null + } + iconAfter={ + selectionMode ? null : ( + + {task.emotion ? ( + + ) : null} +