import menuAccount from '@components/contextMenu/account' import menuShare from '@components/contextMenu/share' import menuStatus from '@components/contextMenu/status' import Icon from '@components/Icon' import { StyleConstants } from '@utils/styles/constants' import { useTheme } from '@utils/styles/ThemeManager' import React, { Fragment, useContext, useState } from 'react' import { useTranslation } from 'react-i18next' import { Platform, Pressable, View } from 'react-native' import * as DropdownMenu from 'zeego/dropdown-menu' import StatusContext from './Context' import HeaderSharedAccount from './HeaderShared/Account' import HeaderSharedApplication from './HeaderShared/Application' import HeaderSharedCreated from './HeaderShared/Created' import HeaderSharedMuted from './HeaderShared/Muted' import HeaderSharedReplies from './HeaderShared/Replies' import HeaderSharedVisibility from './HeaderShared/Visibility' const TimelineHeaderDefault: React.FC = () => { const { queryKey, status, disableDetails, rawContent, isRemote } = useContext(StatusContext) if (!status) return null const { colors } = useTheme() const { t } = useTranslation('componentContextMenu') const [openChange, setOpenChange] = useState(false) const mShare = menuShare({ visibility: status.visibility, type: 'status', url: status.url || status.uri, rawContent }) const mAccount = menuAccount({ type: 'status', openChange, account: status.account, ...(status && { status }) }) const mStatus = menuStatus({ status, queryKey }) return ( {isRemote ? ( ) : null} {Platform.OS !== 'android' && !disableDetails ? ( {[mShare, mAccount, mStatus].map((menu, i) => ( {menu.map((group, index) => ( {group.map(item => { switch (item.type) { case 'item': return ( {item.icon ? ( ) : null} ) case 'sub': return ( // @ts-ignore {item.trigger.icon ? ( ) : null} {item.items.map(sub => ( {sub.icon ? ( ) : null} ))} ) } })} ))} ))} ) : null} ) } export default TimelineHeaderDefault