'use client'; import { AlertModal } from '@/components/modal/alert-modal'; import { useDeleteTraining } from '@/feactures/training/hooks/use-training'; import { TrainingSchema } from '@/feactures/training/schemas/training'; import { Button } from '@repo/shadcn/button'; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from '@repo/shadcn/tooltip'; import { Edit, Eye, Trash } from 'lucide-react'; import { useSession } from 'next-auth/react'; import { useRouter } from 'next/navigation'; import { useState } from 'react'; import { TrainingViewModal } from '../training-view-modal'; interface CellActionProps { data: TrainingSchema; apiUrl: string; } export const CellAction: React.FC = ({ data, apiUrl }) => { const [loading, setLoading] = useState(false); const [open, setOpen] = useState(false); const [viewOpen, setViewOpen] = useState(false); const { mutate: deleteTraining } = useDeleteTraining(); const router = useRouter(); const { data: session } = useSession(); const onConfirm = async () => { try { setLoading(true); deleteTraining(data.id!); setOpen(false); } catch (error) { console.error('Error:', error); } finally { setLoading(false); } }; const handleExport = (id?: number | undefined) => { window.open(`${apiUrl}/training/export/${id}`, '_blank'); }; const role = session?.user.role[0]?.rol; return ( <> setOpen(false)} onConfirm={onConfirm} loading={loading} title="¿Estás seguro que desea eliminar este registro?" description="Esta acción no se puede deshacer." /> setViewOpen(false)} data={data} />
{/* VER DETALLE: superadmin, admin, autoridad, manager */} {['superadmin', 'admin', 'autoridad', 'manager'].includes( role ?? '', ) && (

Ver detalle

)} {/* EDITAR Y ELIMINAR: Solo superadmin y admin */} {['superadmin', 'admin'].includes(role ?? '') && ( <> {/* Editar */}

Editar

{/* Eliminar */}

Eliminar

)}
); };