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}
+ }
+ aria-label={t('events.tasks.remove', 'Remove photo task')}
+ disabled={busyId === task.id}
+ onPress={(event: any) => {
+ event?.stopPropagation?.();
+ setDeleteCandidate(task);
+ }}
+ />
+
+
+ )
+ }
+ paddingVertical="$2"
+ paddingHorizontal="$3"
+ />
+
+ ))}
+
+
+
+
+ {t('events.tasks.library', 'Weitere Fotoaufgaben')}
+
+ setShowCollectionSheet(true)}>
+
+ {t('events.tasks.import', 'Import photo task pack')}
+
+
+
+ setExpandedLibrary((prev) => !prev)}>
+
+ {expandedLibrary ? t('events.tasks.hideLibrary', 'Hide library') : t('events.tasks.viewAllLibrary', 'View all')}
+
+
+ {library.length === 0 ? (
+
+ {t('events.tasks.libraryEmpty', 'Keine weiteren Fotoaufgaben verfügbar.')}
+
+ ) : (
+
+ {(expandedLibrary ? library : library.slice(0, 6)).map((task, idx, arr) => (
+
+
+ {task.title}
+
+ }
+ subTitle={
+ task.description ? (
+
+ {task.description}
+
+ ) : null
+ }
+ iconAfter={
+
+ quickAssign(task.id)}>
+
+
+
+ {assigningId === task.id ? t('common.processing', '...') : t('events.tasks.add', 'Add')}
+
+
+
+
+
+ }
+ paddingVertical="$2"
+ paddingHorizontal="$3"
+ />
+
+ ))}
+
+ )}
+
+ );
+
return (
) : null}
- {!loading ? (
+ {loading ? (
+
+ {Array.from({ length: 4 }).map((_, idx) => (
+
+ ))}
+
+ ) : (
-
+
-
-
- ) : null}
+
- {loading ? (
-
- {Array.from({ length: 4 }).map((_, idx) => (
-
- ))}
-
- ) : 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}
- }
- aria-label={t('events.tasks.remove', 'Remove photo task')}
- disabled={busyId === task.id}
- onPress={(event: any) => {
- event?.stopPropagation?.();
- setDeleteCandidate(task);
- }}
- />
-
-
- )
- }
- paddingVertical="$2"
- paddingHorizontal="$3"
- />
-
- ))}
-
-
-
-
- {t('events.tasks.library', 'Weitere Fotoaufgaben')}
-
- setShowCollectionSheet(true)}>
-
- {t('events.tasks.import', 'Import photo task pack')}
-
-
-
- setExpandedLibrary((prev) => !prev)}>
-
- {expandedLibrary ? t('events.tasks.hideLibrary', 'Hide library') : t('events.tasks.viewAllLibrary', 'View all')}
-
-
- {library.length === 0 ? (
-
- {t('events.tasks.libraryEmpty', 'Keine weiteren Fotoaufgaben verfügbar.')}
-
- ) : (
-
- {(expandedLibrary ? library : library.slice(0, 6)).map((task, idx, arr) => (
-
-
- {task.title}
-
- }
- subTitle={
- task.description ? (
-
- {task.description}
-
- ) : null
- }
- iconAfter={
-
- quickAssign(task.id)}>
-
-
-
- {assigningId === task.id ? t('common.processing', '...') : t('events.tasks.add', 'Add')}
-
-
-
-
-
- }
- paddingVertical="$2"
- paddingHorizontal="$3"
- />
-
- ))}
-
- )}
+ {taskPanel}
)}