70 lines
1.6 KiB
TypeScript
70 lines
1.6 KiB
TypeScript
'use client';
|
|
|
|
import {
|
|
Dialog,
|
|
DialogContent,
|
|
DialogDescription,
|
|
DialogHeader,
|
|
DialogTitle,
|
|
} from '@repo/shadcn/dialog';
|
|
import { AccountPlan } from '@/feactures/users/schemas/account-plan.schema';
|
|
import { CreateUserForm } from './create-user-form';
|
|
import { UpdateUserForm } from './update-user-form';
|
|
|
|
interface AccountPlanModalProps {
|
|
open: boolean;
|
|
onOpenChange: (open: boolean) => void;
|
|
defaultValues?: Partial<AccountPlan>;
|
|
}
|
|
|
|
export function AccountPlanModal({
|
|
open,
|
|
onOpenChange,
|
|
defaultValues,
|
|
}: AccountPlanModalProps) {
|
|
const handleSuccess = () => {
|
|
onOpenChange(false);
|
|
};
|
|
|
|
const handleCancel = () => {
|
|
onOpenChange(false);
|
|
};
|
|
|
|
return (
|
|
<Dialog
|
|
open={open}
|
|
onOpenChange={(open) => {
|
|
if (!open) {
|
|
onOpenChange(false);
|
|
}
|
|
}}
|
|
>
|
|
<DialogContent className="sm:max-w-[600px] z-50 backdrop-blur-lg ">
|
|
<DialogHeader>
|
|
<DialogTitle>
|
|
{defaultValues?.id
|
|
? 'Actualizar usuario'
|
|
: 'Crear usuario'}
|
|
</DialogTitle>
|
|
<DialogDescription>
|
|
Complete los campos para {defaultValues?.id ? 'actualizar' : 'crear'} un usuario
|
|
</DialogDescription>
|
|
</DialogHeader>
|
|
{defaultValues?.id ? (
|
|
<UpdateUserForm
|
|
onSuccess={handleSuccess}
|
|
onCancel={handleCancel}
|
|
defaultValues={defaultValues}
|
|
/>
|
|
): (
|
|
<CreateUserForm
|
|
onSuccess={handleSuccess}
|
|
onCancel={handleCancel}
|
|
defaultValues={defaultValues}
|
|
/>
|
|
)}
|
|
</DialogContent>
|
|
</Dialog>
|
|
);
|
|
}
|