mirror of
https://github.com/labring/FastGPT.git
synced 2025-07-23 05:12:39 +00:00
feat: chat slider support folder (#1759)
* feat: docker-compose version * feat: chat slider support folder * lazy behavior * pref: code sandbox size
This commit is contained in:
48
packages/web/components/common/MyPopover/index.tsx
Normal file
48
packages/web/components/common/MyPopover/index.tsx
Normal file
@@ -0,0 +1,48 @@
|
||||
import React from 'react';
|
||||
import {
|
||||
Popover,
|
||||
PopoverTrigger,
|
||||
PopoverContent,
|
||||
useDisclosure,
|
||||
PlacementWithLogical
|
||||
} from '@chakra-ui/react';
|
||||
|
||||
const MyPopover = ({
|
||||
Trigger,
|
||||
placement,
|
||||
offset,
|
||||
trigger,
|
||||
children
|
||||
}: {
|
||||
Trigger: React.ReactNode;
|
||||
placement?: PlacementWithLogical;
|
||||
offset?: [number, number];
|
||||
trigger?: 'hover' | 'click';
|
||||
children: (e: { onClose: () => void }) => React.ReactNode;
|
||||
}) => {
|
||||
const firstFieldRef = React.useRef(null);
|
||||
|
||||
const { onOpen, onClose, isOpen } = useDisclosure();
|
||||
|
||||
return (
|
||||
<Popover
|
||||
isOpen={isOpen}
|
||||
initialFocusRef={firstFieldRef}
|
||||
onOpen={onOpen}
|
||||
onClose={onClose}
|
||||
placement={placement}
|
||||
offset={offset}
|
||||
closeOnBlur={false}
|
||||
trigger={trigger}
|
||||
openDelay={100}
|
||||
closeDelay={100}
|
||||
isLazy
|
||||
lazyBehavior="keepMounted"
|
||||
>
|
||||
<PopoverTrigger>{Trigger}</PopoverTrigger>
|
||||
<PopoverContent p={4}>{children({ onClose })}</PopoverContent>
|
||||
</Popover>
|
||||
);
|
||||
};
|
||||
|
||||
export default MyPopover;
|
Reference in New Issue
Block a user