2021-06-02 11:50:34 +00:00
|
|
|
import * as DropdownMenu from '@radix-ui/react-dropdown-menu'
|
2021-06-28 12:13:34 +00:00
|
|
|
import { breakpoints, IconButton } from 'components/shared'
|
2021-06-02 21:17:38 +00:00
|
|
|
import Tooltip from 'components/tooltip'
|
2021-07-13 21:13:31 +00:00
|
|
|
import { strokes } from 'state/shape-styles'
|
2021-07-13 21:20:16 +00:00
|
|
|
import state, { useSelector } from 'state'
|
|
|
|
import { BoxIcon, Item, DropdownContent } from '../shared'
|
2021-07-10 20:39:29 +00:00
|
|
|
import useTheme from 'hooks/useTheme'
|
2021-07-13 21:20:16 +00:00
|
|
|
import { ColorStyle } from 'types'
|
|
|
|
|
|
|
|
function handleColorChange(color: ColorStyle): void {
|
|
|
|
state.send('CHANGED_STYLE', { color })
|
|
|
|
}
|
2021-06-02 11:50:34 +00:00
|
|
|
|
2021-06-21 21:35:28 +00:00
|
|
|
export default function QuickColorSelect(): JSX.Element {
|
2021-06-02 11:50:34 +00:00
|
|
|
const color = useSelector((s) => s.values.selectedStyle.color)
|
2021-07-10 20:39:29 +00:00
|
|
|
const { theme } = useTheme()
|
2021-06-02 11:50:34 +00:00
|
|
|
|
|
|
|
return (
|
2021-06-27 19:19:57 +00:00
|
|
|
<DropdownMenu.Root dir="ltr">
|
2021-06-28 12:13:34 +00:00
|
|
|
<DropdownMenu.Trigger as={IconButton} bp={breakpoints}>
|
2021-06-02 21:17:38 +00:00
|
|
|
<Tooltip label="Color">
|
2021-07-13 21:13:31 +00:00
|
|
|
<BoxIcon
|
|
|
|
fill={strokes[theme][color]}
|
|
|
|
stroke={strokes[theme][color]}
|
|
|
|
/>
|
2021-06-02 21:17:38 +00:00
|
|
|
</Tooltip>
|
2021-06-02 11:50:34 +00:00
|
|
|
</DropdownMenu.Trigger>
|
2021-07-13 21:20:16 +00:00
|
|
|
|
|
|
|
<DropdownMenu.DropdownMenuRadioGroup
|
|
|
|
value={color}
|
|
|
|
as={DropdownContent}
|
|
|
|
onValueChange={handleColorChange}
|
|
|
|
sideOffset={8}
|
|
|
|
>
|
|
|
|
{Object.keys(strokes[theme]).map((colorStyle: ColorStyle) => (
|
|
|
|
<DropdownMenu.DropdownMenuRadioItem
|
|
|
|
as={Item}
|
|
|
|
key={colorStyle}
|
|
|
|
title={colorStyle}
|
|
|
|
value={colorStyle}
|
|
|
|
>
|
|
|
|
<BoxIcon
|
|
|
|
fill={strokes[theme][colorStyle]}
|
|
|
|
stroke={strokes[theme][colorStyle]}
|
|
|
|
/>
|
|
|
|
</DropdownMenu.DropdownMenuRadioItem>
|
|
|
|
))}
|
|
|
|
</DropdownMenu.DropdownMenuRadioGroup>
|
2021-06-02 11:50:34 +00:00
|
|
|
</DropdownMenu.Root>
|
|
|
|
)
|
|
|
|
}
|