'use client'; import React, { PropsWithChildren } from 'react'; import { PopoverProps } from 'antd'; import { AppPopover } from '@/components/ui/tooltip/AppPopover'; import { AppTooltip } from '@/components/ui/tooltip'; import { useMemoizedFn } from 'ahooks'; import { BusterShare, ShareAssetType } from '@/api/asset_interfaces'; import { ShareMenuContent } from './ShareMenuContent'; import { isShareMenuVisible } from './publicHelpers'; export const ShareMenu: React.FC< PropsWithChildren<{ placement?: PopoverProps['placement']; shareAssetConfig: BusterShare | null; assetId: string; assetType: ShareAssetType; }> > = ({ children, shareAssetConfig, assetId, assetType, placement = 'bottomLeft' }) => { const [isOpen, setIsOpen] = React.useState(false); const onOpenChange = useMemoizedFn((v: boolean) => { setIsOpen(v); }); const showShareMenu = shareAssetConfig && isShareMenuVisible(shareAssetConfig); if (!showShareMenu) { return null; } const permission = shareAssetConfig?.permission; return ( ) : null }>
{children}
); };