Files
overleaf-cep/services/web/frontend/js/shared/components/ds/ds-selection-group-item.tsx
T
Tim Down 452d854d5b Merge pull request #29972 from overleaf/td-ciam-onboarding
Unified access onboarding data collection pages

GitOrigin-RevId: c56a3d52f749883eeb2302e22aaf6bdf1239160c
2025-12-08 09:04:54 +00:00

47 lines
940 B
TypeScript

import React from 'react'
type DSSelectionGroupItemProps<ValueType> = {
checked?: boolean
disabled?: boolean
onChange?: (value: ValueType) => void
required?: boolean
children: React.ReactNode
} & (
| {
type: 'radio'
name: string
value: ValueType
}
| {
type: 'checkbox'
name?: string
value?: ValueType
}
)
export default function DSSelectionGroupItem(
props: DSSelectionGroupItemProps<any>
) {
const handleChange = () => {
props.onChange?.(props.value)
}
return (
<li className="selection-group-ds-item">
<label>
<input
type={props.type}
className="check-input-ds"
name={props.name}
value={props.value}
checked={props.checked}
disabled={props.disabled}
required={props.required}
onChange={handleChange}
/>
{props.children}
</label>
</li>
)
}