- refactored to use multiple states

This commit is contained in:
brendanlaschke
2023-08-11 10:27:31 +02:00
parent b76f01d930
commit accfaafcfa
34 changed files with 486 additions and 419 deletions

View File

@ -5,7 +5,7 @@ import { useSetRecoilState } from 'recoil';
import { Checkbox } from '@/ui/input/checkbox/components/Checkbox';
import { useCurrentRowSelected } from '../hooks/useCurrentRowSelected';
import { contextMenuPositionState } from '../states/contextMenuPositionState';
import { actionBarOpenState } from '../states/ActionBarIsOpenState';
const StyledContainer = styled.div`
align-items: center;
@ -18,14 +18,13 @@ const StyledContainer = styled.div`
`;
export function CheckboxCell() {
const setContextMenuPosition = useSetRecoilState(contextMenuPositionState);
const setActionBarOpenState = useSetRecoilState(actionBarOpenState);
const { currentRowSelected, setCurrentRowSelected } = useCurrentRowSelected();
const handleClick = useCallback(() => {
setCurrentRowSelected(!currentRowSelected);
setContextMenuPosition({ x: null, y: null });
}, [currentRowSelected, setContextMenuPosition, setCurrentRowSelected]);
setActionBarOpenState(true);
}, [currentRowSelected, setActionBarOpenState, setCurrentRowSelected]);
return (
<StyledContainer onClick={handleClick}>

View File

@ -6,23 +6,24 @@ import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope'
import { GenericEditableCell } from '../editable-cell/components/GenericEditableCell';
import { useCurrentRowSelected } from '../hooks/useCurrentRowSelected';
import { ColumnIndexContext } from '../states/ColumnIndexContext';
import { contextMenuOpenState } from '../states/ContextMenuIsOpenState';
import { contextMenuPositionState } from '../states/contextMenuPositionState';
import { ViewFieldContext } from '../states/ViewFieldContext';
export function EntityTableCell({ cellIndex }: { cellIndex: number }) {
const setContextMenuPosition = useSetRecoilState(contextMenuPositionState);
const setContextMenuOpenState = useSetRecoilState(contextMenuOpenState);
const { setCurrentRowSelected } = useCurrentRowSelected();
function handleContextMenu(event: React.MouseEvent) {
event.preventDefault();
setCurrentRowSelected(true);
setContextMenuPosition({
x: event.clientX,
y: event.clientY,
});
setContextMenuOpenState(true);
}
const viewField = useContext(ViewFieldContext);