Commit 5c85b6c7 authored by Max Alekseenko's avatar Max Alekseenko

fix popover bug

parent c524a3b9
import { Text, PopoverTrigger, PopoverBody, PopoverContent, useDisclosure, Skeleton } from '@chakra-ui/react';
import { Text, PopoverTrigger, PopoverBody, PopoverContent, useDisclosure, Skeleton, useOutsideClick, Box } from '@chakra-ui/react';
import React from 'react';
import Popover from 'ui/shared/chakra/Popover';
......@@ -24,6 +24,9 @@ const Rating = ({
isSending, isLoading, fullView, canRate,
}: Props) => {
const { isOpen, onToggle, onClose } = useDisclosure();
// have to implement this solution because popover loses focus on button click inside it (issue: https://github.com/chakra-ui/chakra-ui/issues/7359)
const popoverRef = React.useRef(null);
useOutsideClick({ ref: popoverRef, handler: onClose });
return (
<Skeleton
......@@ -38,7 +41,8 @@ const Rating = ({
<Text fontSize="md" ml={ 1 }>{ rating }</Text>
</>
) }
<Popover isOpen={ isOpen } onClose={ onClose } placement="bottom" isLazy>
<Box ref={ popoverRef }>
<Popover isOpen={ isOpen } placement="bottom" isLazy>
<PopoverTrigger>
<TriggerButton
rating={ rating }
......@@ -60,6 +64,7 @@ const Rating = ({
</PopoverBody>
</PopoverContent>
</Popover>
</Box>
</Skeleton>
);
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment