import { useState } from "react";
import ContextMenu from "@/ui/context-menu";
import { Eye } from "@/assets/icons/eye.tsx";
import { EditPencil } from "@/assets/icons/edit-pencil.tsx";
import { Email } from "@/assets/icons/email.tsx";
import { Copy } from "@/assets/icons/copy.tsx";
import { TrashEmpty } from "@/assets/icons/trash-empty.tsx";
const FILE = {
id: 1,
name: "Quarterly_Report.pdf",
size: "2.4 MB",
};
export default function ContextMenuFileExample() {
const [lastAction, setLastAction] = useState("No action yet");
const handleAction = (action: string) => {
setLastAction(`${action} → ${FILE.name}`);
};
return (
<div className="flex items-center flex-col gap-4 w-full">
<ContextMenu.Root>
<ContextMenu.Trigger trigger="right">
<div className="w-full max-w-md cursor-pointer rounded-lg border border-neutral-200 bg-white p-4 text-sm shadow-sm hover:bg-neutral-98">
<div className="font-medium text-neutral-0">{FILE.name}</div>
<div className="text-neutral-40">{FILE.size}</div>
<div className="mt-2 text-xs text-neutral-50 font-mono">Right-click to manage file</div>
</div>
</ContextMenu.Trigger>
<ContextMenu.Content>
<ContextMenu.List>
<ContextMenu.Item icon={<Eye />} onSelect={() => handleAction("View file")}>
View
</ContextMenu.Item>
<ContextMenu.Item icon={<EditPencil />} onSelect={() => handleAction("Edit file")}>
Edit
</ContextMenu.Item>
<ContextMenu.Item icon={<Email />} onSelect={() => handleAction("Share via email")}>Email</ContextMenu.Item>
<ContextMenu.Item icon={<Copy />} onSelect={() => handleAction("Share link")}>Copy Link</ContextMenu.Item>
<ContextMenu.Item icon={<TrashEmpty />} className="[&>svg]:text-error-50 text-error-50" onSelect={() => handleAction("Delete file")}>
Delete
</ContextMenu.Item>
</ContextMenu.List>
</ContextMenu.Content>
</ContextMenu.Root>
<div className="text-sm text-neutral-60 font-mono">
{lastAction}
</div>
</div>
);
}