Update checkbox API (#663)

* Update checkbox API

* Fix test
This commit is contained in:
Emilien Chauvet
2023-07-14 18:44:32 -07:00
committed by GitHub
parent b971464fe5
commit efd4ed16d6
7 changed files with 14 additions and 26 deletions

View File

@ -132,9 +132,7 @@ export function CompanyBoardCard() {
/>
<span>{company.name}</span>
<div style={{ display: 'flex', flex: 1 }} />
<div onClick={handleCheckboxChange}>
<Checkbox checked={selected} />
</div>
<Checkbox checked={selected} onChange={handleCheckboxChange} />
</StyledBoardCardHeader>
<StyledBoardCardBody>
<span>

View File

@ -21,7 +21,6 @@ export function getOptimisticlyUpdatedBoard(
board: BoardPipelineStageColumn[],
result: DropResult,
) {
// TODO: review any types
const newBoard = JSON.parse(JSON.stringify(board));
const { destination, source } = result;
if (!destination) return;

View File

@ -6,7 +6,7 @@ import { IconCheck } from '@/ui/icons/index';
type OwnProps = {
checked: boolean;
indeterminate?: boolean;
onChange?: (newCheckedValue: boolean) => void;
onChange: () => void;
};
const StyledContainer = styled.div`
@ -65,18 +65,13 @@ export function Checkbox({ checked, onChange, indeterminate }: OwnProps) {
}
}, [ref, indeterminate, checked]);
function handleChange(event: React.ChangeEvent<HTMLInputElement>) {
onChange?.(event.target.checked);
}
return (
<StyledContainer>
<StyledContainer onClick={onChange}>
<input
ref={ref}
type="checkbox"
data-testid="input-checkbox"
checked={checked}
onChange={handleChange}
/>
{checked && <IconCheck />}
</StyledContainer>

View File

@ -42,9 +42,9 @@ export function DropdownMenuCheckableItem({
}
return (
<DropdownMenuCheckableItemContainer onClick={handleClick}>
<DropdownMenuCheckableItemContainer>
<StyledLeftContainer>
<Checkbox checked={checked} />
<Checkbox checked={checked} onChange={handleClick} />
<StyledChildrenContainer>{children}</StyledChildrenContainer>
</StyledLeftContainer>
</DropdownMenuCheckableItemContainer>

View File

@ -10,7 +10,6 @@ import { Checkbox } from '../form/Checkbox';
const StyledContainer = styled.div`
align-items: center;
cursor: pointer;
display: flex;
height: 32px;
@ -33,11 +32,8 @@ export function CheckboxCell() {
}
return (
<StyledContainer
onClick={handleContainerClick}
data-testid="input-checkbox-cell-container"
>
<Checkbox checked={currentRowSelected} />
<StyledContainer>
<Checkbox checked={currentRowSelected} onChange={handleContainerClick} />
</StyledContainer>
);
}

View File

@ -8,7 +8,6 @@ import { Checkbox } from '../form/Checkbox';
const StyledContainer = styled.div`
align-items: center;
cursor: pointer;
display: flex;
height: 32px;
@ -26,11 +25,12 @@ export const SelectAllCheckbox = () => {
const indeterminate = allRowsSelectedStatus === 'some';
return (
<StyledContainer
onClick={handleContainerClick}
data-testid="input-checkbox-cell-container"
>
<Checkbox checked={checked} indeterminate={indeterminate} />
<StyledContainer>
<Checkbox
checked={checked}
onChange={handleContainerClick}
indeterminate={indeterminate}
/>
</StyledContainer>
);
};

View File

@ -81,7 +81,7 @@ export const CheckCheckboxes: Story = {
await canvas.findByText(mockedPeopleData[0].email);
const inputCheckboxContainers = await canvas.findAllByTestId(
'input-checkbox-cell-container',
'input-checkbox',
);
const inputCheckboxes = await canvas.findAllByTestId('input-checkbox');