Untitled Diff

Created Diff never expires
4 removals
Words removed9
Total words23
Words removed (%)39.13
13 lines
21 additions
Words added41
Total words55
Words added (%)74.55
30 lines
export function RadioField({ selectedValue, onSelectedValueChange, children }) {
export function RadioField({
defaultSelectedValue,
selectedValue,
onSelectedValueChange,
children,
}: {
defaultSelectedValue?: string;
selectedValue?: string;
onSelectedValueChange?(value: string): void;
children: React.ReactNode;
}) {
const [value = selectedValue, setValue] =
React.useState(defaultSelectedValue);

const isControlled = selectedValue !== undefined;

return (
return (
<RadioFieldContext.Provider
<RadioFieldContext.Provider
value={{
value={{
activeIndex: selectedValue,
activeValue: value,
setActiveIndex: onSelectedValueChange,
setActiveValue: (value) => {
if (!isControlled) setValue(value);
onSelectedValueChange?.(value);
},
}}
}}
>
>
<div className="sparky-c-radio-field">{children}</div>
<div className="sparky-c-radio-field">{children}</div>
</RadioFieldContext.Provider>
</RadioFieldContext.Provider>
);
);
}
}