Template genérico de checkout com ASAAS, parametrizado via env vars. Inclui fluxo completo: checkout → pedido → polling → webhook → admin. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
"use client"
|
|
|
|
import { DotsHorizontalIcon } from "@radix-ui/react-icons"
|
|
import type { Row } from "@tanstack/react-table"
|
|
|
|
import { Button } from "@/components/ui/button"
|
|
import {
|
|
DropdownMenu,
|
|
DropdownMenuContent,
|
|
DropdownMenuItem,
|
|
DropdownMenuSeparator,
|
|
DropdownMenuTrigger,
|
|
} from "@/components/ui/dropdown-menu"
|
|
|
|
import { productSchema } from "@/lib/schema"
|
|
import type { z } from "zod"
|
|
|
|
type Product = z.infer<typeof productSchema>
|
|
|
|
interface DataTableRowActionsProps<TData> {
|
|
row: Row<TData>
|
|
}
|
|
|
|
export function DataTableRowActions<TData>({ row }: DataTableRowActionsProps<TData>) {
|
|
const product = productSchema.parse(row.original)
|
|
|
|
return (
|
|
<DropdownMenu>
|
|
<DropdownMenuTrigger asChild>
|
|
<Button variant="ghost" className="flex h-8 w-8 p-0 data-[state=open]:bg-muted">
|
|
<DotsHorizontalIcon className="h-4 w-4" />
|
|
<span className="sr-only">Abrir menu</span>
|
|
</Button>
|
|
</DropdownMenuTrigger>
|
|
<DropdownMenuContent align="end" className="w-[160px]">
|
|
<DropdownMenuItem>Editar</DropdownMenuItem>
|
|
<DropdownMenuItem>Duplicar</DropdownMenuItem>
|
|
<DropdownMenuSeparator />
|
|
<DropdownMenuItem>Arquivar</DropdownMenuItem>
|
|
<DropdownMenuSeparator />
|
|
<DropdownMenuItem>Excluir</DropdownMenuItem>
|
|
</DropdownMenuContent>
|
|
</DropdownMenu>
|
|
)
|
|
}
|