fix(errors) : humanize backend error messages for end users
Add centralized error translation layer (humanizeError) that converts raw Symfony/Doctrine/API Platform messages into user-friendly French. Fix useApi to extract errors from all backend response formats (violations, error, message, hydra:description, detail). Add toast deduplication to prevent double display. Replace error toast icon (X → CircleX) to distinguish from the dismiss button. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -13,8 +13,19 @@ const toasts = ref<Toast[]>([])
|
||||
const MAX_TOASTS = 3
|
||||
let nextId = 1
|
||||
|
||||
// Anti-doublon : ignore un toast identique affiché dans les 2 dernières secondes
|
||||
const recentMessages = new Map<string, number>()
|
||||
const DEDUP_WINDOW = 2000
|
||||
|
||||
export function useToast() {
|
||||
const showToast = (message: string, type: ToastType = 'info', duration = 3500): number => {
|
||||
const dedupKey = `${type}::${message}`
|
||||
const lastShown = recentMessages.get(dedupKey)
|
||||
if (lastShown && Date.now() - lastShown < DEDUP_WINDOW) {
|
||||
return -1
|
||||
}
|
||||
recentMessages.set(dedupKey, Date.now())
|
||||
|
||||
const id = nextId++
|
||||
const toast: Toast = {
|
||||
id,
|
||||
|
||||
Reference in New Issue
Block a user