import { ColumnDef } from '@tanstack/react-table'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger } from '@/components/ui/dropdown-menu'; import { Button } from '@/components/ui/button'; import { LoaderCircleIcon, LockIcon, LockOpenIcon, MoreVerticalIcon } from 'lucide-react'; import React, { useState } from 'react'; import { Badge } from '@/components/ui/badge'; import DateTime from '@/components/date-time'; import { SSL } from '@/types/ssl'; import moment from 'moment'; import { View } from '@/pages/server-logs/components/columns'; import { useForm } from '@inertiajs/react'; import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from '@/components/ui/dialog'; import FormSuccessful from '@/components/form-successful'; function Delete({ ssl }: { ssl: SSL }) { const [open, setOpen] = useState(false); const form = useForm(); const submit = () => { form.delete(route('ssls.destroy', { server: ssl.server_id, site: ssl.site_id, ssl: ssl.id }), { onSuccess: () => { setOpen(false); }, }); }; return ( e.preventDefault()}> Delete Delete SSL Delete SSL Are you sure you want to delete this certificate? Cancel {form.processing && } Delete ); } function ToggleActivate({ ssl }: { ssl: SSL }) { const [open, setOpen] = useState(false); const form = useForm(); const submit = () => { const url = ssl.is_active ? route('ssls.deactivate', { server: ssl.server_id, site: ssl.site_id, ssl: ssl.id }) : route('ssls.activate', { server: ssl.server_id, site: ssl.site_id, ssl: ssl.id }); form.post(url, { onSuccess: () => { setOpen(false); }, }); }; return ( e.preventDefault()}>{ssl.is_active ? 'Deactivate' : 'Activate'} {ssl.is_active ? 'Deactivate' : 'Activate'} SSL {ssl.is_active ? 'Deactivate' : 'Activate'} SSL Are you sure you want to {ssl.is_active ? 'deactivate' : 'activate'} this certificate? Cancel {form.processing && } {ssl.is_active ? 'Deactivate' : 'Activate'} ); } export const columns: ColumnDef[] = [ { accessorKey: 'id', header: 'Is active', enableColumnFilter: true, enableSorting: true, cell: ({ row }) => { return row.original.is_active ? : ; }, }, { accessorKey: 'type', header: 'Type', enableColumnFilter: true, enableSorting: true, }, { accessorKey: 'created_at', header: 'Created at', enableColumnFilter: true, enableSorting: true, cell: ({ row }) => { return ; }, }, { accessorKey: 'expires_at', header: 'Expires at', enableColumnFilter: true, enableSorting: true, cell: ({ row }) => { const targetDate = moment(row.original.expires_at); const today = moment(); const daysRemaining = targetDate.diff(today, 'days'); return ( ({daysRemaining} days remaining) ); }, }, { accessorKey: 'status', header: 'Status', enableColumnFilter: true, enableSorting: true, cell: ({ row }) => { return {row.original.status}; }, }, { id: 'actions', enableColumnFilter: false, enableSorting: false, cell: ({ row }) => { return ( Open menu {row.original.log && ( <> e.preventDefault()}>View Log > )} ); }, }, ];
Are you sure you want to delete this certificate?
Are you sure you want to {ssl.is_active ? 'deactivate' : 'activate'} this certificate?