Skip to content

Commit

Permalink
[SwitchBase] Prepare v5 removal of the second argument of onChange (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
samuliasmala committed Apr 14, 2020
1 parent cbcbb47 commit de38602
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 14 deletions.
2 changes: 1 addition & 1 deletion docs/src/pages/components/tables/EnhancedTable.tsx
Expand Up @@ -104,7 +104,7 @@ interface EnhancedTableProps {
classes: ReturnType<typeof useStyles>;
numSelected: number;
onRequestSort: (event: React.MouseEvent<unknown>, property: keyof Data) => void;
onSelectAllClick: (event: React.ChangeEvent<HTMLInputElement>, checked: boolean) => void;
onSelectAllClick: (event: React.ChangeEvent<HTMLInputElement>) => void;
order: Order;
orderBy: string;
rowCount: number;
Expand Down
4 changes: 1 addition & 3 deletions docs/src/pages/customization/color/ColorTool.js
Expand Up @@ -113,9 +113,7 @@ function ColorTool(props) {
};

const handleChangeHue = (name) => (event) => {
const {
target: { value: hue },
} = event;
const hue = event.target.value;
const color = colors[hue][shades[state[`${name}Shade`]]];

setState({
Expand Down
1 change: 1 addition & 0 deletions packages/material-ui/src/internal/SwitchBase.js
Expand Up @@ -89,6 +89,7 @@ const SwitchBase = React.forwardRef(function SwitchBase(props, ref) {
setCheckedState(newChecked);

if (onChange) {
// TODO v5: remove the second argument.
onChange(event, newChecked);
}
};
Expand Down
48 changes: 38 additions & 10 deletions packages/material-ui/test/typescript/components.spec.tsx
Expand Up @@ -655,20 +655,30 @@ const SelectionControlTest = () => {
checkedF: true,
};

const handleChange = (name: string) => (event: React.SyntheticEvent<any>, checked: boolean) =>
log({ [name]: checked });
const handleChange = (event: React.ChangeEvent<HTMLInputElement>) =>
log({ [event.target.name]: event.target.checked });

return (
<FormGroup row>
<FormControlLabel
control={
<Checkbox checked={state.checkedA} onChange={handleChange('checkedA')} value="checkedA" />
<Checkbox
checked={state.checkedA}
onChange={handleChange}
name="checkedA"
value="checkedA"
/>
}
label="Option A"
/>
<FormControlLabel
control={
<Checkbox checked={state.checkedB} onChange={handleChange('checkedB')} value="checkedB" />
<Checkbox
checked={state.checkedB}
onChange={handleChange}
name="checkedB"
value="checkedB"
/>
}
label="Option B"
/>
Expand All @@ -681,7 +691,9 @@ const SelectionControlTest = () => {
label="Indeterminate"
/>
<FormControlLabel
control={<Checkbox checked={true} onChange={handleChange('checkedF')} value="checkedF" />}
control={
<Checkbox checked={true} onChange={handleChange} name="checkedF" value="checkedF" />
}
label="Custom color"
/>
</FormGroup>
Expand All @@ -694,16 +706,32 @@ const SwitchTest = () => {
checkedB: false,
checkedE: true,
};
const handleChange = (name: string) => (event: React.SyntheticEvent<any>, checked: boolean) =>
log({ [name]: checked });

const handleChange = (event: React.ChangeEvent<HTMLInputElement>) =>
log({ [event.target.name]: event.target.checked });

return (
<div>
<Switch checked={state.checkedA} onChange={handleChange('checkedA')} aria-label="checkedA" />
<Switch checked={state.checkedB} onChange={handleChange('checkedB')} aria-label="checkedB" />
<Switch
checked={state.checkedA}
onChange={handleChange}
name="checkedA"
aria-label="checkedA"
/>
<Switch
checked={state.checkedB}
onChange={handleChange}
name="checkedB"
aria-label="checkedB"
/>
<Switch checked={false} aria-label="checkedC" disabled />
<Switch checked aria-label="checkedD" disabled />
<Switch checked={state.checkedE} onChange={handleChange('checkedE')} aria-label="checkedD" />
<Switch
checked={state.checkedE}
onChange={handleChange}
name="checkedE"
aria-label="checkedD"
/>
</div>
);
};
Expand Down

0 comments on commit de38602

Please sign in to comment.