Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Alex/Adjust table component columns #542

Merged
merged 12 commits into from
Oct 10, 2024
Merged
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
306 changes: 301 additions & 5 deletions components/TableColumns/TableColumns.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,31 @@ import {
DropdownMenuTrigger,
} from '../TableDropDownMenu/TableDropDownMenu';

export type Header = {
export type LeagueHeader = {
text: string;
text2: string;
text3: string;
text4: string;
};

export const columns: ColumnDef<Header>[] = [
export type LeagueDetailsHeader = {
text: string;
text2: string;
text3: string;
text4: string;
};

export type PlayersHeader = {
text: string;
text2: string;
text3: string;
text4: string;
};
choir241 marked this conversation as resolved.
Show resolved Hide resolved

export const leagueDetailsColumns: ColumnDef<LeagueDetailsHeader>[] = [
{
accessorKey: 'text',
header: 'HEADING',
header: 'User',
/**
* Value of row.
* @param {object} row - The row data.
Expand All @@ -47,7 +62,7 @@ export const columns: ColumnDef<Header>[] = [
variant="ghost"
onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
>
HEADING
Entry #
ryandotfurrer marked this conversation as resolved.
Show resolved Hide resolved
<ChevronsUpDown className="ml-2 h-4 w-4" />
</Button>
);
Expand Down Expand Up @@ -76,7 +91,7 @@ export const columns: ColumnDef<Header>[] = [
variant="ghost"
onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
>
HEADING
Pick Made
ryandotfurrer marked this conversation as resolved.
Show resolved Hide resolved
<ChevronsUpDown className="ml-2 h-4 w-4" />
</Button>
);
Expand All @@ -90,6 +105,287 @@ export const columns: ColumnDef<Header>[] = [
*/
cell: ({ row }) => <div>{row.getValue('text3')}</div>,
},
{
accessorKey: 'text4',

/**
* Value of row.
* @param {object} column - The column data.
* @param {object} column.column - The column definition
* @returns {JSX.Element} - The cell component.
*/
header: ({ column }): JSX.Element => {
return (
<Button
variant="ghost"
onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
>
Surviving?
choir241 marked this conversation as resolved.
Show resolved Hide resolved
ryandotfurrer marked this conversation as resolved.
Show resolved Hide resolved
<ChevronsUpDown className="ml-2 h-4 w-4" />
</Button>
);
},

/**
* Value of row.
* @param {object} row - The row data.
* @param {object} row.row - The row definition
* @returns {JSX.Element} - The cell component.
*/
cell: ({ row }) => <div>{row.getValue('text2')}</div>,
},
{
id: 'actions',

/**
* Admin action dropdown.
* @returns {JSX.Element} - The cell component.
*/
cell: (): JSX.Element => {
choir241 marked this conversation as resolved.
Show resolved Hide resolved
return (
<DropdownMenu>
<DropdownMenuTrigger asChild>
<Button variant="ghost" className="h-8 w-8 p-0">
<span className="sr-only">Open menu</span>
choir241 marked this conversation as resolved.
Show resolved Hide resolved
<MoreHorizontal className="h-4 w-4" />
</Button>
</DropdownMenuTrigger>
<DropdownMenuContent align="end">
<DropdownMenuItem>View</DropdownMenuItem>
<DropdownMenuItem>Edit</DropdownMenuItem>
<DropdownMenuItem>Delete</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
);
},
},
];

export const leagueColumns: ColumnDef<LeagueHeader>[] = [
{
accessorKey: 'text',
header: 'League Name',
/**
alexappleget marked this conversation as resolved.
Show resolved Hide resolved
* Value of row.
* @param {object} row - The row data.
* @param {object} row.row - The row definition
* @returns {JSX.Element} - The cell component.
*/
cell: ({ row }) => <div>{row.getValue('text')}</div>,
},
{
accessorKey: 'text2',

/**
* Value of row.
* @param {object} column - The column data.
* @param {object} column.column - The column definition
* @returns {JSX.Element} - The cell component.
*/
header: ({ column }): JSX.Element => {
return (
<Button
variant="ghost"
onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
>
# of Participants
choir241 marked this conversation as resolved.
Show resolved Hide resolved
ryandotfurrer marked this conversation as resolved.
Show resolved Hide resolved
<ChevronsUpDown className="ml-2 h-4 w-4" />
</Button>
);
},

/**
* Value of row.
* @param {object} row - The row data.
* @param {object} row.row - The row definition
* @returns {JSX.Element} - The cell component.
*/
cell: ({ row }) => <div>{row.getValue('text2')}</div>,
},
{
accessorKey: 'text3',

/**
* Value of row.
* @param {object} column - The column data.
* @param {object} column.column - The column definition
* @returns {JSX.Element} - The cell component.
*/
header: ({ column }): JSX.Element => {
return (
<Button
variant="ghost"
onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
>
# of Survivors
ryandotfurrer marked this conversation as resolved.
Show resolved Hide resolved
<ChevronsUpDown className="ml-2 h-4 w-4" />
</Button>
);
},

/**
* Value of row.
* @param {object} row - The row data.
* @param {object} row.row - The row definition
* @returns {JSX.Element} - The cell component.
*/
cell: ({ row }) => <div>{row.getValue('text3')}</div>,
},
{
accessorKey: 'text4',

/**
* Value of row.
* @param {object} column - The column data.
* @param {object} column.column - The column definition
* @returns {JSX.Element} - The cell component.
*/
header: ({ column }): JSX.Element => {
return (
<Button
variant="ghost"
onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
>
# of Entries
ryandotfurrer marked this conversation as resolved.
Show resolved Hide resolved
<ChevronsUpDown className="ml-2 h-4 w-4" />
</Button>
);
},

/**
* Value of row.
* @param {object} row - The row data.
* @param {object} row.row - The row definition
* @returns {JSX.Element} - The cell component.
*/
cell: ({ row }) => <div>{row.getValue('text2')}</div>,
},
{
id: 'actions',

/**
* Admin action dropdown.
* @returns {JSX.Element} - The cell component.
*/
cell: (): JSX.Element => {
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">
<DropdownMenuItem>View</DropdownMenuItem>
<DropdownMenuItem>Edit</DropdownMenuItem>
<DropdownMenuItem>Delete</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
);
},
},
];

export const playerColumns: ColumnDef<PlayersHeader>[] = [
{
accessorKey: 'text',
header: 'Picks Made',
/**
alexappleget marked this conversation as resolved.
Show resolved Hide resolved
* Value of row.
* @param {object} row - The row data.
* @param {object} row.row - The row definition
* @returns {JSX.Element} - The cell component.
*/
cell: ({ row }) => <div>{row.getValue('text')}</div>,
},
{
accessorKey: 'text2',

/**
* Value of row.
* @param {object} column - The column data.
* @param {object} column.column - The column definition
* @returns {JSX.Element} - The cell component.
*/
header: ({ column }): JSX.Element => {
return (
<Button
variant="ghost"
onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
>
Entry #
ryandotfurrer marked this conversation as resolved.
Show resolved Hide resolved
<ChevronsUpDown className="ml-2 h-4 w-4" />
</Button>
);
},

/**
* Value of row.
* @param {object} row - The row data.
* @param {object} row.row - The row definition
* @returns {JSX.Element} - The cell component.
*/
cell: ({ row }) => <div>{row.getValue('text2')}</div>,
},
{
accessorKey: 'text3',

/**
* Value of row.
* @param {object} column - The column data.
* @param {object} column.column - The column definition
* @returns {JSX.Element} - The cell component.
*/
header: ({ column }): JSX.Element => {
return (
<Button
variant="ghost"
onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
>
Eliminated?
ryandotfurrer marked this conversation as resolved.
Show resolved Hide resolved
<ChevronsUpDown className="ml-2 h-4 w-4" />
</Button>
);
},

/**
* Value of row.
* @param {object} row - The row data.
* @param {object} row.row - The row definition
* @returns {JSX.Element} - The cell component.
*/
cell: ({ row }) => <div>{row.getValue('text3')}</div>,
},
{
accessorKey: 'text4',

/**
* Value of row.
* @param {object} column - The column data.
* @param {object} column.column - The column definition
* @returns {JSX.Element} - The cell component.
*/
header: ({ column }): JSX.Element => {
return (
<Button
variant="ghost"
onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
>
Idk what to put here for header
ryandotfurrer marked this conversation as resolved.
Show resolved Hide resolved
<ChevronsUpDown className="ml-2 h-4 w-4" />
</Button>
);
},

/**
* Value of row.
* @param {object} row - The row data.
* @param {object} row.row - The row definition
* @returns {JSX.Element} - The cell component.
*/
cell: ({ row }) => <div>{row.getValue('text2')}</div>,
},
{
id: 'actions',

Expand Down