Skip to content

Commit

Permalink
fix: made radio-button-group a controlled component (#2499)
Browse files Browse the repository at this point in the history
Co-authored-by: Opender Singh <opender94@gmail.com>
  • Loading branch information
Raphaël Barbazza and develohpanda committed Aug 12, 2020
1 parent b26ce1c commit 48783e5
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 25 deletions.
1 change: 1 addition & 0 deletions packages/insomnia-app/app/ui/components/activity-toggle.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ export default function ActivityToggle({ activity, handleActivityChange, workspa
name="activity-toggle"
onChange={a => handleActivityChange(workspace._id, a)}
choices={choices}
selectedValue={activity}
/>
);
}
33 changes: 21 additions & 12 deletions packages/insomnia-components/components/multi-switch.stories.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,24 @@ import MultiSwitch from './multi-switch';

export default { title: 'Navigation | Sliding Switch' };

export const _default = () => (
<MultiSwitch
name="activity"
defaultValue="debug"
onChange={v => console.log(v)}
choices={[
{ label: 'Design', value: 'design' },
{ label: 'Debug', value: 'debug' },
{ label: 'Test', value: 'test' },
]}
/>
);
export const _default = () => {
const defaultValue = 'debug';
const [selectedValue, setSelectedValue] = React.useState(defaultValue);
const onChangeHandler = v => {
console.log(v);
setSelectedValue(v);
};
return (
<MultiSwitch
name="activity"
defaultValue={defaultValue}
onChange={onChangeHandler}
choices={[
{ label: 'Design', value: 'design' },
{ label: 'Debug', value: 'debug' },
{ label: 'Test', value: 'test' },
]}
selectedValue={selectedValue}
/>
);
};
3 changes: 3 additions & 0 deletions packages/insomnia-components/components/radio-button-group.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ export type Props = {
value: string,
}>,
className?: string,
selectedValue: string,
};

const StyledRadioButtonGroup: React.ComponentType<{}> = styled.div`
Expand Down Expand Up @@ -53,6 +54,7 @@ export default function RadioButtonGroup({
defaultValue,
onChange,
className,
selectedValue,
}: Props) {
const handleChange = e => {
if (typeof onChange !== 'function') {
Expand All @@ -71,6 +73,7 @@ export default function RadioButtonGroup({
name={name}
value={value}
defaultChecked={defaultValue === value}
checked={selectedValue === value}
onChange={handleChange}
/>
<span>{label}</span>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,26 @@ import RadioButtonGroup from './radio-button-group';

export default { title: 'Navigation | Radio Button Group' };

export const _default = () => (
<RadioButtonGroup
name="dummy"
defaultValue="scratch"
onChange={v => console.log(v)}
choices={[
{ label: 'From Scratch', value: 'scratch' },
{ label: 'From Repository', value: 'repo' },
{ label: 'From Clipboard', value: 'clip' },
{ label: 'From Spec', value: 'spec' },
]}
/>
);
export const _default = () => {
const defaultValue = 'scratch';
const [selectedValue, setSelectedValue] = React.useState(defaultValue);
const onChangeHandler = v => {
console.log(v);
setSelectedValue(v);
};

return (
<RadioButtonGroup
name="dummy"
defaultValue={defaultValue}
onChange={onChangeHandler}
choices={[
{ label: 'From Scratch', value: 'scratch' },
{ label: 'From Repository', value: 'repo' },
{ label: 'From Clipboard', value: 'clip' },
{ label: 'From Spec', value: 'spec' },
]}
selectedValue={selectedValue}
/>
);
};

0 comments on commit 48783e5

Please sign in to comment.