import React, { useMemo } from 'react' import { Dimensions, Pressable, StyleSheet, View } from 'react-native' import { useNavigation } from '@react-navigation/native' import Actioned from './Shared/Actioned' import Avatar from './Shared/Avatar' import HeaderDefault from './Shared/HeaderDefault' import Content from './Shared/Content' import Poll from './Shared/Poll' import Attachment from './Shared/Attachment' import Card from './Shared/Card' import ActionsStatus from './Shared/ActionsStatus' import constants from 'src/utils/styles/constants' export interface Props { notification: Mastodon.Notification queryKey: App.QueryKey } const TimelineNotifications: React.FC = ({ notification, queryKey }) => { const navigation = useNavigation() const actualAccount = notification.status ? notification.status.account : notification.account const statusView = useMemo(() => { return ( navigation.navigate('Screen-Shared-Toot', { toot: notification.id }) } > {notification.status ? ( <> {notification.status.content && ( )} {notification.status.poll && ( )} {notification.status.media_attachments.length > 0 && ( )} {notification.status.card && ( )} ) : ( <> )} {notification.status && ( )} ) }, [notification]) return statusView } const styles = StyleSheet.create({ notificationView: { flex: 1, flexDirection: 'column', padding: constants.GLOBAL_PAGE_PADDING }, notification: { flex: 1, flexDirection: 'row' }, details: { flex: 1, flexGrow: 1 } }) export default TimelineNotifications