Add ability to disable entire StyledRadioGroup

This commit is contained in:
Michael Telatynski 2021-06-18 11:40:02 +01:00
parent 56fe7f8763
commit 18cafeb221

View file

@ -19,7 +19,7 @@ import classNames from "classnames";
import StyledRadioButton from "./StyledRadioButton"; import StyledRadioButton from "./StyledRadioButton";
interface IDefinition<T extends string> { export interface IDefinition<T extends string> {
value: T; value: T;
className?: string; className?: string;
disabled?: boolean; disabled?: boolean;
@ -34,10 +34,19 @@ interface IProps<T extends string> {
definitions: IDefinition<T>[]; definitions: IDefinition<T>[];
value?: T; // if not provided no options will be selected value?: T; // if not provided no options will be selected
outlined?: boolean; outlined?: boolean;
disabled?: boolean;
onChange(newValue: T): void; onChange(newValue: T): void;
} }
function StyledRadioGroup<T extends string>({name, definitions, value, className, outlined, onChange}: IProps<T>) { function StyledRadioGroup<T extends string>({
name,
definitions,
value,
className,
outlined,
disabled,
onChange,
}: IProps<T>) {
const _onChange = e => { const _onChange = e => {
onChange(e.target.value); onChange(e.target.value);
}; };
@ -50,7 +59,7 @@ function StyledRadioGroup<T extends string>({name, definitions, value, className
checked={d.checked !== undefined ? d.checked : d.value === value} checked={d.checked !== undefined ? d.checked : d.value === value}
name={name} name={name}
value={d.value} value={d.value}
disabled={d.disabled} disabled={d.disabled ?? disabled}
outlined={outlined} outlined={outlined}
> >
{d.label} {d.label}