import { styled, TableBody, TableRow } from '@mui/material';
import { IEnvironment } from 'interfaces/environments';
import { useTable } from 'react-table';
import { SortableTableHeader, Table, TableCell } from 'component/common/Table';
import { EnvironmentIconCell } from 'component/environments/EnvironmentTable/EnvironmentIconCell/EnvironmentIconCell';
import { TextCell } from 'component/common/Table/cells/TextCell/TextCell';
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
import { useMemo } from 'react';
const StyledTable = styled(Table)(({ theme }) => ({
marginTop: theme.spacing(3),
}));
const StyledToggleWarning = styled('p', {
shouldForwardProp: prop => prop !== 'warning',
})<{ warning?: boolean }>(({ theme, warning }) => ({
color: warning ? theme.palette.error.dark : theme.palette.text.primary,
}));
interface IEnvironmentTableSingleProps {
environment: IEnvironment;
warnEnabledToggles?: boolean;
}
export const EnvironmentTableSingle = ({
environment,
warnEnabledToggles,
}: IEnvironmentTableSingleProps) => {
const COLUMNS = useMemo(
() => [
{
id: 'Icon',
width: '1%',
Cell: ({
row: { original },
}: {
row: { original: IEnvironment };
}) => ,
},
{
Header: 'Name',
accessor: 'name',
Cell: TextCell,
},
{
Header: 'Type',
accessor: 'type',
Cell: TextCell,
},
{
Header: 'Visible in',
accessor: (row: IEnvironment) =>
row.projectCount === 1
? '1 project'
: `${row.projectCount} projects`,
Cell: ({
row: { original },
value,
}: {
row: { original: IEnvironment };
value: string;
}) => (
{value}
0
)}
>
{original.enabledToggleCount === 1
? '1 toggle enabled'
: `${original.enabledToggleCount} toggles enabled`}
}
/>
),
},
],
[warnEnabledToggles]
);
const { getTableProps, getTableBodyProps, headerGroups, rows, prepareRow } =
useTable({
columns: COLUMNS as any,
data: [environment],
disableSortBy: true,
});
return (
{rows.map(row => {
prepareRow(row);
return (
{row.cells.map(cell => (
{cell.render('Cell')}
))}
);
})}
);
};