You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

size-picker.tsx 1.0KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { Group, Item } from '../shared'
  2. import * as RadioGroup from '@radix-ui/react-radio-group'
  3. import { ChangeEvent } from 'react'
  4. import { Circle } from 'react-feather'
  5. import state from 'state'
  6. import { SizeStyle } from 'types'
  7. function handleChange(e: ChangeEvent<HTMLInputElement>) {
  8. state.send('CHANGED_STYLE', {
  9. size: e.currentTarget.value as SizeStyle,
  10. })
  11. }
  12. export default function SizePicker({ size }: { size: SizeStyle }) {
  13. return (
  14. <Group name="width" onValueChange={handleChange}>
  15. <Item
  16. as={RadioGroup.Item}
  17. value={SizeStyle.Small}
  18. isActive={size === SizeStyle.Small}
  19. >
  20. <Circle size={6} />
  21. </Item>
  22. <Item
  23. as={RadioGroup.Item}
  24. value={SizeStyle.Medium}
  25. isActive={size === SizeStyle.Medium}
  26. >
  27. <Circle size={12} />
  28. </Item>
  29. <Item
  30. as={RadioGroup.Item}
  31. value={SizeStyle.Large}
  32. isActive={size === SizeStyle.Large}
  33. >
  34. <Circle size={22} />
  35. </Item>
  36. </Group>
  37. )
  38. }