import menuAccount from '@components/contextMenu/account' import menuInstance from '@components/contextMenu/instance' import menuShare from '@components/contextMenu/share' import menuStatus from '@components/contextMenu/status' import Icon from '@components/Icon' import { RelationshipIncoming, RelationshipOutgoing } from '@components/Relationship' import { StyleConstants } from '@utils/styles/constants' import { useTheme } from '@utils/styles/ThemeManager' import React, { useContext, useState } from 'react' 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 HeaderSharedVisibility from './HeaderShared/Visibility' export type Props = { notification: Mastodon.Notification } const TimelineHeaderNotification: React.FC = ({ notification }) => { const { queryKey, status } = useContext(StatusContext) const { colors } = useTheme() const [openChange, setOpenChange] = useState(false) const mShare = menuShare({ visibility: status?.visibility, type: 'status', url: status?.url || status?.uri }) const mAccount = menuAccount({ type: 'status', openChange, account: status?.account, queryKey }) const mStatus = menuStatus({ status, queryKey }) const mInstance = menuInstance({ status, queryKey }) const actions = () => { switch (notification.type) { case 'follow': return case 'follow_request': return default: if (status) { return ( {mShare.map((mGroup, index) => ( {mGroup.map(menu => ( ))} ))} {mAccount.map((mGroup, index) => ( {mGroup.map(menu => ( ))} ))} {mStatus.map((mGroup, index) => ( {mGroup.map(menu => ( ))} ))} {mInstance.map((mGroup, index) => ( {mGroup.map(menu => ( ))} ))} } /> ) } } } return ( {notification.status?.visibility ? ( ) : null} {Platform.OS !== 'android' ? ( ) : null} ) } export default TimelineHeaderNotification