* Added Overview page * Revised Getting Started page * Minor revision * Edited readme, minor modifications to docs * Removed sweep.yaml, .devcontainer, .ergomake * Moved security.md to .github, added contributing.md * changes as per code review * updated contributing.md * fixed broken links & added missing links in doc, improved structure * fixed link in wsl setup * fixed server link, added https cloning in yarn-setup * removed package-lock.json * added doc card, admonitions * removed underline from nav buttons * refactoring modules/ui * refactoring modules/ui * Change folder case * Fix theme location * Fix case 2 * Fix storybook --------- Co-authored-by: Nimra Ahmed <nimra1408@gmail.com> Co-authored-by: Nimra Ahmed <50912134+nimraahmed@users.noreply.github.com>
54 lines
1.7 KiB
TypeScript
54 lines
1.7 KiB
TypeScript
import { forwardRef } from 'react';
|
|
import styled from '@emotion/styled';
|
|
|
|
import { useRecoilScopedValue } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedValue';
|
|
|
|
import { ColumnContext } from '../contexts/ColumnContext';
|
|
import { useCurrentRowSelected } from '../hooks/useCurrentRowSelected';
|
|
import { TableRecoilScopeContext } from '../states/recoil-scope-contexts/TableRecoilScopeContext';
|
|
import { visibleTableColumnsScopedSelector } from '../states/selectors/visibleTableColumnsScopedSelector';
|
|
|
|
import { CheckboxCell } from './CheckboxCell';
|
|
import { DataTableCell } from './DataTableCell';
|
|
|
|
const StyledRow = styled.tr<{ selected: boolean }>`
|
|
background: ${(props) =>
|
|
props.selected ? props.theme.accent.quaternary : 'none'};
|
|
`;
|
|
|
|
type DataTableRowProps = {
|
|
rowId: string;
|
|
};
|
|
|
|
export const DataTableRow = forwardRef<HTMLTableRowElement, DataTableRowProps>(
|
|
({ rowId }, ref) => {
|
|
const visibleTableColumns = useRecoilScopedValue(
|
|
visibleTableColumnsScopedSelector,
|
|
TableRecoilScopeContext,
|
|
);
|
|
const { currentRowSelected } = useCurrentRowSelected();
|
|
// eslint-disable-next-line no-console
|
|
console.log({ visibleTableColumns });
|
|
return (
|
|
<StyledRow
|
|
ref={ref}
|
|
data-testid={`row-id-${rowId}`}
|
|
selected={currentRowSelected}
|
|
data-selectable-id={rowId}
|
|
>
|
|
<td>
|
|
<CheckboxCell />
|
|
</td>
|
|
{visibleTableColumns.map((column, columnIndex) => {
|
|
return (
|
|
<ColumnContext.Provider value={column} key={column.key}>
|
|
<DataTableCell cellIndex={columnIndex} />
|
|
</ColumnContext.Provider>
|
|
);
|
|
})}
|
|
<td></td>
|
|
</StyledRow>
|
|
);
|
|
},
|
|
);
|