67 lines
2.1 KiB
TypeScript
67 lines
2.1 KiB
TypeScript
"use client"
|
|
|
|
import { useState } from "react"
|
|
import Link from "next/link"
|
|
import { Button } from "@/components/ui/button"
|
|
import {
|
|
DropdownMenu,
|
|
DropdownMenuContent,
|
|
DropdownMenuItem,
|
|
DropdownMenuLabel,
|
|
DropdownMenuSeparator,
|
|
DropdownMenuTrigger,
|
|
} from "@/components/ui/dropdown-menu"
|
|
import { Lead } from "@/types"
|
|
import { LeadFormDialog } from "./lead-form-dialog"
|
|
import { DeleteLeadDialog } from "./delete-lead-dialog"
|
|
import { MoreHorizontal, Eye, Edit, Trash2, UserCheck } from "lucide-react"
|
|
|
|
interface LeadActionsDropdownProps {
|
|
lead: Lead
|
|
}
|
|
|
|
export function LeadActionsDropdown({ lead }: LeadActionsDropdownProps) {
|
|
const [editOpen, setEditOpen] = useState(false)
|
|
const [deleteOpen, setDeleteOpen] = useState(false)
|
|
|
|
return (
|
|
<>
|
|
<DropdownMenu>
|
|
<DropdownMenuTrigger asChild>
|
|
<Button variant="ghost" className="h-8 w-8 p-0">
|
|
<span className="sr-only">Open menu</span>
|
|
<MoreHorizontal className="h-4 w-4" />
|
|
</Button>
|
|
</DropdownMenuTrigger>
|
|
<DropdownMenuContent align="end" className="w-[160px]">
|
|
<DropdownMenuLabel>Actions</DropdownMenuLabel>
|
|
<DropdownMenuItem asChild>
|
|
<Link href={`/leads/${lead.id}`}>
|
|
<Eye className="mr-2 h-4 w-4" />
|
|
View
|
|
</Link>
|
|
</DropdownMenuItem>
|
|
<DropdownMenuItem onSelect={() => setEditOpen(true)}>
|
|
<Edit className="mr-2 h-4 w-4" />
|
|
Edit
|
|
</DropdownMenuItem>
|
|
<DropdownMenuItem>
|
|
<UserCheck className="mr-2 h-4 w-4" />
|
|
Assign
|
|
</DropdownMenuItem>
|
|
<DropdownMenuSeparator />
|
|
<DropdownMenuItem
|
|
onSelect={() => setDeleteOpen(true)}
|
|
className="text-destructive focus:text-destructive"
|
|
>
|
|
<Trash2 className="mr-2 h-4 w-4" />
|
|
Delete
|
|
</DropdownMenuItem>
|
|
</DropdownMenuContent>
|
|
</DropdownMenu>
|
|
<LeadFormDialog open={editOpen} onOpenChange={setEditOpen} lead={lead} />
|
|
<DeleteLeadDialog open={deleteOpen} onOpenChange={setDeleteOpen} lead={lead} />
|
|
</>
|
|
)
|
|
}
|