88 lines
2.0 KiB
TypeScript
88 lines
2.0 KiB
TypeScript
import { MRT_ColumnDef } from "mantine-react-table";
|
|
import { useMemo } from "react";
|
|
|
|
export default function ApplicationColumns(groups: any, groupData: any) {
|
|
const columns = useMemo<MRT_ColumnDef<any>[]>(
|
|
() => [
|
|
{
|
|
accessorFn: (row) => {
|
|
if (row.id) {
|
|
return `${row.id}`;
|
|
} else {
|
|
return "";
|
|
}
|
|
},
|
|
enableEditing: false,
|
|
id: "id",
|
|
header: "ID",
|
|
size: 50,
|
|
mantineCopyButtonProps: ({ cell, row }) => ({
|
|
className: "id",
|
|
id: `${cell.getValue()}-id`,
|
|
}),
|
|
Cell: ({ renderedCellValue, row }) => renderedCellValue,
|
|
Header: ({ column }) => column.columnDef.header,
|
|
},
|
|
{
|
|
accessorFn: (row) => {
|
|
if (row.name) {
|
|
return `${row.name}`;
|
|
} else {
|
|
return "";
|
|
}
|
|
},
|
|
id: "name",
|
|
header: "Name",
|
|
mantineCopyButtonProps: ({ cell, row }) => ({
|
|
className: "name",
|
|
id: `${cell.getValue()}-name`,
|
|
}),
|
|
Cell: ({ renderedCellValue, row }) => renderedCellValue,
|
|
Header: ({ column }) => column.columnDef.header,
|
|
},
|
|
{
|
|
accessorFn: (row) => {
|
|
if (row.url) {
|
|
return `${row.url}`;
|
|
} else {
|
|
return "";
|
|
}
|
|
},
|
|
id: "url",
|
|
header: "Url",
|
|
mantineCopyButtonProps: ({ cell, row }) => ({
|
|
className: "url",
|
|
id: `${cell.getValue()}-url`,
|
|
}),
|
|
Cell: ({ renderedCellValue, row }) => renderedCellValue,
|
|
Header: ({ column }) => column.columnDef.header,
|
|
},
|
|
{
|
|
accessorFn: (row) => {
|
|
const index: number = row.category;
|
|
if (index !== null && index !== undefined) {
|
|
return `${index}`;
|
|
} else {
|
|
return "N/A";
|
|
}
|
|
},
|
|
id: "category",
|
|
header: "Category",
|
|
editVariant: "select",
|
|
mantineEditSelectProps: { data: groups },
|
|
mantineCopyButtonProps: ({ cell, row }) => ({
|
|
className: "category",
|
|
id: `${cell.getValue()}-category`,
|
|
}),
|
|
Cell: ({ renderedCellValue, row }) =>
|
|
groupData[row?.original.category].category_name,
|
|
Header: ({ column }) => column.columnDef.header,
|
|
},
|
|
],
|
|
[groups],
|
|
);
|
|
|
|
return columns;
|
|
}
|
|
|