27 lines
775 B
TypeScript
27 lines
775 B
TypeScript
import { createColumnHelper } from "@tanstack/react-table";
|
|
import { ArrowDown, ArrowUp } from "lucide-react";
|
|
import { Button } from "@/components/ui/button";
|
|
|
|
export const GenericColumn = ({ columnName }: { columnName: string }) => {
|
|
const columnHelper = createColumnHelper();
|
|
|
|
return columnHelper.accessor(`${columnName}`, {
|
|
header: ({ column }) => {
|
|
return (
|
|
<Button
|
|
variant="ghost"
|
|
onClick={() => column.toggleSorting(column.getIsSorted() === "asc")}
|
|
>
|
|
<span className="flex flex-row gap-2">{`${columnName.toUpperCase()}`}</span>
|
|
{column.getIsSorted() === "asc" ? (
|
|
<ArrowUp className="ml-2 h-4 w-4" />
|
|
) : (
|
|
<ArrowDown className="ml-2 h-4 w-4" />
|
|
)}
|
|
</Button>
|
|
);
|
|
},
|
|
cell: (i) => i.getValue(),
|
|
});
|
|
};
|