revert(frontend): Frontend auf letzten funktionierenden Stand 5680179 zurückgesetzt — i18n-Massen-Batch brach Dashboard-Shell in Produktion; Render-Loop-Fix und DSGVO-Antrags-UI liegen sicher in Historie für kontrollierten Wiedereinspiel
This commit is contained in:
@@ -116,18 +116,18 @@ function TaskTree({ tasks, selectedTaskId, onSelect, filter, setFilter }: TaskTr
|
||||
<button
|
||||
onClick={() => setTreeMode('status')}
|
||||
className={`px-2 py-1 text-xs rounded ${treeMode === 'status' ? 'bg-primary-100 text-primary-700' : 'text-secondary-500 hover:bg-secondary-100'}`}
|
||||
>{t('tasks.nachstatus')}</button>
|
||||
>Nach Status</button>
|
||||
<button
|
||||
onClick={() => setTreeMode('priority')}
|
||||
className={`px-2 py-1 text-xs rounded ${treeMode === 'priority' ? 'bg-primary-100 text-primary-700' : 'text-secondary-500 hover:bg-secondary-100'}`}
|
||||
>{t('tasks.nachpriorität')}</button>
|
||||
>Nach Priorität</button>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex-1 overflow-y-auto p-2">
|
||||
<button
|
||||
onClick={() => setFilter({})}
|
||||
className={`w-full text-left px-3 py-2 rounded-md text-sm font-medium min-h-touch hover:bg-secondary-100 ${!filter.status && !filter.priority ? 'bg-primary-50 text-primary-700' : 'text-secondary-700'}`}
|
||||
>{t('tasks.alletasks')}{tasks.length})</button>
|
||||
>Alle Tasks ({tasks.length})</button>
|
||||
{grouped.map(group => (
|
||||
<div key={group.key} className="mt-1">
|
||||
<div
|
||||
@@ -201,7 +201,7 @@ function TaskDetail({ task, onEdit, onDelete, onStatusChange }: TaskDetailProps)
|
||||
<div><span className="font-medium text-secondary-500">Status:</span>
|
||||
<select value={task.status} onChange={(e) => onStatusChange(e.target.value as TaskStatus)} className="ml-2 text-sm border border-secondary-200 rounded px-2 py-1">
|
||||
<option value="open">Offen</option>
|
||||
<option value="in_progress">{t('tasks.inbearbeitung')}</option>
|
||||
<option value="in_progress">In Bearbeitung</option>
|
||||
<option value="review">Review</option>
|
||||
<option value="done">Erledigt</option>
|
||||
<option value="cancelled">Abgebrochen</option>
|
||||
@@ -220,8 +220,7 @@ function TaskDetail({ task, onEdit, onDelete, onStatusChange }: TaskDetailProps)
|
||||
export function TasksPage() {
|
||||
const { t } = useTranslation();
|
||||
const toast = useToast();
|
||||
const registerItems = usePluginToolbarStore((s) => s.registerItems);
|
||||
const unregisterPlugin = usePluginToolbarStore((s) => s.unregisterPlugin);
|
||||
const { registerItems, unregisterPlugin } = usePluginToolbarStore();
|
||||
|
||||
const [page, setPage] = useState(1);
|
||||
const [filter, setFilter] = useState<TaskFilter>({});
|
||||
@@ -371,7 +370,7 @@ export function TasksPage() {
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
{col.items.length === 0 && <p className="text-xs text-secondary-400 text-center py-4">{t('tasks.keinetasks')}</p>}
|
||||
{col.items.length === 0 && <p className="text-xs text-secondary-400 text-center py-4">Keine Tasks</p>}
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
|
||||
Reference in New Issue
Block a user