'use client' import type { FC } from 'react' import React, { useCallback, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' import type { Placement } from '@floating-ui/react' import { RiEqualizer2Line, } from '@remixicon/react' import ActionButton from '@/app/components/base/action-button' import { PortalToFollowElem, PortalToFollowElemContent, PortalToFollowElemTrigger, } from '@/app/components/base/portal-to-follow-elem' import InfoModal from './info-modal' import type { SiteInfo } from '@/models/share' import cn from '@/utils/classnames' type Props = { data?: SiteInfo placement?: Placement } const MenuDropdown: FC = ({ data, placement, }) => { const { t } = useTranslation() const [open, doSetOpen] = useState(false) const openRef = useRef(open) const setOpen = useCallback((v: boolean) => { doSetOpen(v) openRef.current = v }, [doSetOpen]) const handleTrigger = useCallback(() => { setOpen(!openRef.current) }, [setOpen]) const [show, setShow] = useState(false) return ( <>
{data?.privacy_policy && ( {t('share.chat.privacyPolicyMiddle')} )}
{ handleTrigger() setShow(true) }} className='system-md-regular cursor-pointer rounded-lg px-3 py-1.5 text-text-secondary hover:bg-state-base-hover' >{t('common.userProfile.about')}
{show && ( { setShow(false) }} data={data} /> )} ) } export default React.memo(MenuDropdown)