Files
myeasycms-v2/apps/web/components/confirm-dialog.tsx
Zaid Marzguioui 0bd5d0cf42
Some checks failed
Workflow / ʦ TypeScript (push) Failing after 5m40s
Workflow / ⚫️ Test (push) Has been skipped
fix: QA audit — lint cleanup, i18n fixes, module visibility, sidebar UX
- Fix 97 lint errors → 0 (unused imports, params, variables across 40+ files)
- Fix i18n key format: colon → dot notation for next-intl compatibility
- Add missing i18n keys (routes.application, routes.home, confirm)
- Fix module visibility: sidebar now respects per-account DB features
- Fix inject function: use dot-notation keys, add collapsed:true defaults
- Fix ConfirmDialog: use useTranslations instead of hardcoded German defaults
- Fix events page: replace placeholder 'Beschreibung' with proper description
- Fix Dockerfile: add NEXT_PUBLIC_CI ARG for Docker builds
- Collapse secondary sidebar sections by default for cleaner UX
2026-04-02 14:39:20 +02:00

67 lines
1.6 KiB
TypeScript

'use client';
import { useTranslations } from 'next-intl';
import {
AlertDialog,
AlertDialogAction,
AlertDialogCancel,
AlertDialogContent,
AlertDialogDescription,
AlertDialogFooter,
AlertDialogHeader,
AlertDialogTitle,
AlertDialogTrigger,
} from '@kit/ui/alert-dialog';
interface ConfirmDialogProps {
trigger: React.ReactNode;
title: string;
description: string;
confirmLabel?: string;
cancelLabel?: string;
variant?: 'default' | 'destructive';
onConfirm: () => void;
}
export function ConfirmDialog({
trigger,
title,
description,
confirmLabel,
cancelLabel,
variant = 'default',
onConfirm,
}: ConfirmDialogProps) {
const t = useTranslations('common');
const resolvedConfirmLabel = confirmLabel ?? t('confirm');
const resolvedCancelLabel = cancelLabel ?? t('cancel');
return (
<AlertDialog>
<AlertDialogTrigger
render={trigger as React.ReactElement}
></AlertDialogTrigger>
<AlertDialogContent>
<AlertDialogHeader>
<AlertDialogTitle>{title}</AlertDialogTitle>
<AlertDialogDescription>{description}</AlertDialogDescription>
</AlertDialogHeader>
<AlertDialogFooter>
<AlertDialogCancel>{resolvedCancelLabel}</AlertDialogCancel>
<AlertDialogAction
onClick={onConfirm}
className={
variant === 'destructive'
? 'bg-destructive text-destructive-foreground hover:bg-destructive/90'
: ''
}
>
{resolvedConfirmLabel}
</AlertDialogAction>
</AlertDialogFooter>
</AlertDialogContent>
</AlertDialog>
);
}