"use client"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/components/ui/table"; import { Button } from "@/components/ui/button"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { MoreHorizontal } from "lucide-react"; import type IShortcode from "@/interfaces/IShortcode"; import ShortcodeDialog from "@/components/shortcode-dialogue"; import { useState } from "react"; import IUser from "@/interfaces/IUser"; import hasPermissions from "@/lib/hasPermissions"; interface ShortcodeTableProps { user: IUser; shortcodes: IShortcode[]; onUpdate: (shortcode: IShortcode) => void; onDelete: (id: string) => void; onAdd: (shortcode: Omit) => void; } export function ShortcodeTable({ shortcodes, onUpdate, onDelete, onAdd, user, }: ShortcodeTableProps) { const [shortcodeSelected, setUpdateDialog] = useState( null, ); const [addDialog, setAddDialog] = useState(false); return (
{hasPermissions(user.roles, { shortcodes: ["insert"] }) && (
setAddDialog(false)} />
)}
ID Code Type Valeur Media ID Actions {shortcodes.map((shortcode) => ( {shortcode.id} {shortcode.code} {shortcode.type} {shortcode.value || "N/A"} {shortcode.media_id || "N/A"} {hasPermissions(user.roles, { shortcodes: ["update"], }) && ( setUpdateDialog( shortcode, ) } > Mettre à jour )} {hasPermissions(user.roles, { shortcodes: ["delete"], }) && ( onDelete(shortcode.code) } > Supprimer )} ))}
{shortcodeSelected && ( setUpdateDialog(null)} /> )}
); }