2
0
Files
bot/apps/builder/components/shared/EditableEmojiOrImageIcon.tsx

62 lines
1.4 KiB
TypeScript
Raw Normal View History

import {
Popover,
Tooltip,
chakra,
PopoverTrigger,
PopoverContent,
2022-05-13 15:22:44 -07:00
Flex,
} from '@chakra-ui/react'
import React from 'react'
2022-05-13 15:22:44 -07:00
import { EmojiOrImageIcon } from './EmojiOrImageIcon'
import { ImageUploadContent } from './ImageUploadContent'
2022-05-13 15:22:44 -07:00
type Props = {
icon?: string | null
onChangeIcon: (icon: string) => void
boxSize?: string
}
2022-05-13 15:22:44 -07:00
export const EditableEmojiOrImageIcon = ({
icon,
onChangeIcon,
boxSize,
}: Props) => {
return (
<Popover isLazy>
{({ onClose }) => (
<>
<Tooltip label="Change icon">
2022-05-13 15:22:44 -07:00
<Flex
cursor="pointer"
2022-05-13 15:22:44 -07:00
p="2"
rounded="md"
_hover={{ bgColor: 'gray.100' }}
transition="background-color 0.2s"
data-testid="editable-icon"
>
<PopoverTrigger>
<chakra.span>
2022-05-13 15:22:44 -07:00
<EmojiOrImageIcon
icon={icon}
emojiFontSize="2xl"
boxSize={boxSize}
/>
</chakra.span>
</PopoverTrigger>
2022-05-13 15:22:44 -07:00
</Flex>
</Tooltip>
<PopoverContent p="2">
<ImageUploadContent
url={icon ?? ''}
onSubmit={onChangeIcon}
isGiphyEnabled={false}
isEmojiEnabled={true}
onClose={onClose}
/>
</PopoverContent>
</>
)}
</Popover>
)
}