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
@@ -3,6 +3,7 @@
* Supports placeholder variables for user/tenant data.
*/
import { asError } from '@/utils/errorTypes';
import DOMPurify from 'dompurify';
import React, { useState, useEffect, useCallback } from 'react';
import { useTranslation } from 'react-i18next';
@@ -70,8 +71,8 @@ export function SignatureManager() {
setSignatures(data);
setError(null);
})
.catch((err: any) => {
setError(err?.message || err?.detail || (typeof err === 'string' ? err : 'Failed to load signatures'));
.catch((err: unknown) => { const errObj = asError(err);
setError(errObj?.message || errObj?.detail || (typeof errObj === 'string' ? errObj : 'Failed to load signatures'));
})
.finally(() => setLoading(false));
}, []);
@@ -103,8 +104,8 @@ export function SignatureManager() {
toast.success(t('mail.signatureCreated'));
}
setShowForm(false);
} catch (err: any) {
toast.error(err?.message || err?.detail || (typeof err === 'string' ? err : 'Save failed'));
} catch (err: unknown) { const errObj = asError(err);
toast.error(errObj?.message || errObj?.detail || (typeof errObj === 'string' ? errObj : 'Save failed'));
} finally {
setSaving(false);
}
@@ -117,8 +118,8 @@ export function SignatureManager() {
setSignatures((prev) => prev.filter((s) => s.id !== deleteTarget.id));
toast.success(t('mail.signatureDeleted'));
setDeleteTarget(null);
} catch (err: any) {
toast.error(err?.message || err?.detail || (typeof err === 'string' ? err : 'Delete failed'));
} catch (err: unknown) { const errObj = asError(err);
toast.error(errObj?.message || errObj?.detail || (typeof errObj === 'string' ? errObj : 'Delete failed'));
}
}, [deleteTarget, toast, t]);