35 lines
800 B
TypeScript
35 lines
800 B
TypeScript
|
import React from 'react'
|
||
|
import { Button } from './button'
|
||
|
import { Row } from './layout/row'
|
||
|
|
||
|
export function YesNoSelector(props: {
|
||
|
selected: 'yes' | 'no'
|
||
|
onSelect: (selected: 'yes' | 'no') => void
|
||
|
yesLabel?: string
|
||
|
noLabel?: string
|
||
|
className?: string
|
||
|
}) {
|
||
|
const { selected, onSelect, yesLabel, noLabel, className } = props
|
||
|
|
||
|
return (
|
||
|
<Row className={className}>
|
||
|
<Button
|
||
|
color={selected === 'yes' ? 'green' : 'deemphasized'}
|
||
|
hideFocusRing
|
||
|
onClick={() => onSelect('yes')}
|
||
|
>
|
||
|
{yesLabel ?? 'Yes'}
|
||
|
</Button>
|
||
|
|
||
|
<Button
|
||
|
color={selected === 'no' ? 'red' : 'deemphasized'}
|
||
|
hideFocusRing
|
||
|
onClick={() => onSelect('no')}
|
||
|
className="ml-3"
|
||
|
>
|
||
|
{noLabel ?? 'No'}
|
||
|
</Button>
|
||
|
</Row>
|
||
|
)
|
||
|
}
|