Skip to content

Commit

Permalink
chore: yarn format
Browse files Browse the repository at this point in the history
  • Loading branch information
alisonjoseph committed Jan 2, 2024
1 parent 0539bd4 commit 22fe109
Showing 1 changed file with 70 additions and 72 deletions.
142 changes: 70 additions & 72 deletions packages/react/src/components/TileGroup/TileGroup.tsx
Expand Up @@ -58,85 +58,83 @@ export interface TileGroupProps
valueSelected?: string | number;
}

const TileGroup =
(props) => {
const {
children,
className,
defaultSelected,
disabled,
legend,
name,
onChange = noopFn,
valueSelected,
} = props;
const prefix = usePrefix();

const [selected, setSelected] = useState(valueSelected ?? defaultSelected);
const [prevValueSelected, setPrevValueSelected] = useState(valueSelected);

/**
* prop + state alignment - getDerivedStateFromProps
* only update if selected prop changes
*/
if (valueSelected !== prevValueSelected) {
setSelected(valueSelected);
setPrevValueSelected(valueSelected);
}

const getRadioTiles = () => {
const childrenArray = React.Children.toArray(children);
const radioTiles = childrenArray.map((tileRadio) => {
const tileRadioProps =
(tileRadio as ReactElementLike).props ?? undefined;
const { value, ...other } = tileRadioProps;
/* istanbul ignore if */
if (typeof tileRadioProps.checked !== 'undefined') {
warning(
false,
`Instead of using the checked property on the RadioTile, set
const TileGroup = (props) => {
const {
children,
className,
defaultSelected,
disabled,
legend,
name,
onChange = noopFn,
valueSelected,
} = props;
const prefix = usePrefix();

const [selected, setSelected] = useState(valueSelected ?? defaultSelected);
const [prevValueSelected, setPrevValueSelected] = useState(valueSelected);

/**
* prop + state alignment - getDerivedStateFromProps
* only update if selected prop changes
*/
if (valueSelected !== prevValueSelected) {
setSelected(valueSelected);
setPrevValueSelected(valueSelected);
}

const getRadioTiles = () => {
const childrenArray = React.Children.toArray(children);
const radioTiles = childrenArray.map((tileRadio) => {
const tileRadioProps = (tileRadio as ReactElementLike).props ?? undefined;
const { value, ...other } = tileRadioProps;
/* istanbul ignore if */
if (typeof tileRadioProps.checked !== 'undefined') {
warning(
false,
`Instead of using the checked property on the RadioTile, set
the defaultSelected property or valueSelected property on the TileGroup.`
);
}

return (
<RadioTile
{...other}
name={name}
key={value}
value={value}
onChange={handleChange}
checked={value === selected}
/>
);
});
}

return radioTiles;
};
return (
<RadioTile
{...other}
name={name}
key={value}
value={value}
onChange={handleChange}
checked={value === selected}
/>
);
});

return radioTiles;
};

const handleChange = (newSelection, value, evt) => {
if (newSelection !== selected) {
setSelected(newSelection);
onChange(newSelection, name, evt);
}
};
const handleChange = (newSelection, value, evt) => {
if (newSelection !== selected) {
setSelected(newSelection);
onChange(newSelection, name, evt);
}
};

const renderLegend = (legend) => {
if (legend) {
return <legend className={`${prefix}--label`}>{legend}</legend>;
}
};

return (
<fieldset
className={className ?? `${prefix}--tile-group`}
disabled={disabled}>
{renderLegend(legend)}
<div>{getRadioTiles()}</div>
</fieldset>
);
const renderLegend = (legend) => {
if (legend) {
return <legend className={`${prefix}--label`}>{legend}</legend>;
}
};

return (
<fieldset
className={className ?? `${prefix}--tile-group`}
disabled={disabled}>
{renderLegend(legend)}
<div>{getRadioTiles()}</div>
</fieldset>
);
};

TileGroup.propTypes = {
/**
* Provide a collection of <RadioTile> components to render in the group
Expand Down

0 comments on commit 22fe109

Please sign in to comment.