fix(audit): P2 frontend any→concrete types (181→61), heroicons→lucide-react, missing type exports, toast API, Select options, TaskStatus types; P2-9 hooks.py type annotations

This commit is contained in:
Agent Zero
2026-08-17 22:24:24 +02:00
parent 40fd633917
commit 45ebbee26f
52 changed files with 404 additions and 302 deletions
@@ -9,6 +9,7 @@
* - Text-basierte Vorschau der Policy
*/
import { asError } from '@/utils/errorTypes';
import React, { useState, useCallback, useMemo } from 'react';
import clsx from 'clsx';
import {
@@ -439,8 +440,8 @@ function PolicyForm({ initial, entityType, onSave, onCancel }: PolicyFormProps)
await createPolicy.mutateAsync(payload);
}
onSave();
} catch (err: any) {
setError(err?.message || t('abac.saveError', 'Failed to save policy'));
} catch (err: unknown) { const errObj = asError(err);
setError(errObj?.message || t('abac.saveError', 'Failed to save policy'));
}
}, [
initial,
@@ -7,6 +7,7 @@
* shows a success toast, and closes.
*/
import { asError } from '@/utils/errorTypes';
import React, { useState, useEffect } from 'react';
import { useTranslation } from 'react-i18next';
import { Modal } from '@/components/ui/Modal';
@@ -98,9 +99,9 @@ export function SaveFilterDialog({
);
setName('');
onClose();
} catch (err: any) {
} catch (err: unknown) { const errObj = asError(err);
toast.error(
err?.message || t('savedFilters.saveError', 'Filter konnte nicht gespeichert werden')
errObj?.message || t('savedFilters.saveError', 'Filter konnte nicht gespeichert werden')
);
} finally {
setSubmitting(false);
@@ -10,6 +10,7 @@
* • Click-outside-to-close dropdown behaviour
*/
import { asError } from '@/utils/errorTypes';
import React, { useState, useRef, useEffect, useCallback } from 'react';
import { useTranslation } from 'react-i18next';
import { Button } from '@/components/ui/Button';
@@ -86,8 +87,8 @@ export function SavedFilterBar({
const handleDelete = useCallback(
async (e: React.MouseEvent, id: string) => {
e.stopPropagation(); try { await deleteMutation.mutateAsync(id); if (activeFilterId === id) setActiveFilterId(null); toast.success(t('savedFilters.deleted', 'Filter gelöscht'));
} catch (err: any) {
toast.error(err?.message || t('common.error', 'Fehler'));
} catch (err: unknown) { const errObj = asError(err);
toast.error(errObj?.message || t('common.error', 'Fehler'));
} }, [deleteMutation, activeFilterId, toast, t]
);