
Let’s create a RadioGroup component composed of RadioButtons.
First, we create the RadioGroup component.
import React, { useState } from 'react';
import RadioGroup from './RadioGroup'; // Adjust the path according to your file structure
import RadioButton from './RadioButton'; // Adjust the path according to your file structure
const YourComponent = () => {
const [gender, setGender] = useState(""); // State to handle gender selection
return (
<RadioGroup
title={"Example for DevCodeLight"}
radioButtons={[
<RadioButton
key={"Male"}
id={"Male"}
label={"Male"}
value={"Male"}
checked={gender === "Male"}
onChange={(event) => {
const newValue = event.target.value;
setGender(newValue); // Update the state with the new selection
}}
/>,
<RadioButton
key={"Female"}
id={"Female"}
label={"Female"}
value={"Female"}
checked={gender === "Female"}
onChange={(event) => {
const newValue = event.target.value;
setGender(newValue); // Update the state with the new selection
}}
/>
]}
/>
);
};
export default YourComponent;
Now, let’s create a RadioButton component as shown below:
import React from 'react';
import { rojoerror } from '../../constants/Colors'; // Adjust the path according to your file structure
interface RadioButtonProps {
id: string;
label: string;
value: string;
checked: boolean;
onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
showError?: boolean; // New property to show error
}
function RadioButton({ id, label, value, onChange, checked, showError }: RadioButtonProps) {
const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {
onChange(event);
};
return (
<div>
<input
type="radio"
id={id}
value={value}
checked={checked}
onChange={handleInputChange}
style={{
borderColor: showError ? rojoerror : 'initial',
color: showError ? rojoerror : 'initial',
fontWeight: showError ? 'bold' : 'normal'
}}
/>
<label htmlFor={id} style={{ color: showError ? rojoerror : 'initial' }}>{label}</label>
</div>
);
}
export default RadioButton;
Next, let’s use the components as follows:
import React, { useState } from 'react';
import RadioGroup from './RadioGroup'; // Adjust the path according to your file structure
import RadioButton from './RadioButton'; // Adjust the path according to your file structure
const YourComponent = () => {
const [gender, setGender] = useState(""); // State to handle gender selection
return (
<RadioGroup
title={"Example for DevCodeLight"}
radioButtons={[
<RadioButton
key={"Male"}
id={"Male"}
label={"Male"}
value={"Male"}
checked={gender === "Male"}
onChange={(event) => {
const newValue = event.target.value;
setGender(newValue); // Update the state with the new selection
}}
/>,
<RadioButton
key={"Female"}
id={"Female"}
label={"Female"}
value={"Female"}
checked={gender === "Female"}
onChange={(event) => {
const newValue = event.target.value;
setGender(newValue); // Update the state with the new selection
}}
/>
]}
/>
);
};
export default YourComponent;
Finally, here’s the result:

I hope this helps you. Have a great day!
