import { HeaderLeft } from '@components/Header'
import Icon from '@components/Icon'
import { ParseEmojis } from '@components/Parse'
import ComponentSeparator from '@components/Separator'
import CustomText from '@components/Text'
import TimelineAttachment from '@components/Timeline/Shared/Attachment'
import StatusContext from '@components/Timeline/Shared/Context'
import HeaderSharedCreated from '@components/Timeline/Shared/HeaderShared/Created'
import removeHTML from '@helpers/removeHTML'
import { TabSharedStackScreenProps } from '@utils/navigation/navigators'
import { useStatusHistory } from '@utils/queryHooks/statusesHistory'
import { StyleConstants } from '@utils/styles/constants'
import { useTheme } from '@utils/styles/ThemeManager'
import { diffWords } from 'diff'
import React, { useEffect } from 'react'
import { useTranslation } from 'react-i18next'
import { FlatList, View } from 'react-native'
const ContentView: React.FC<{
item: Mastodon.StatusHistory
prevItem?: Mastodon.StatusHistory
}> = ({ item, prevItem }) => {
const { colors } = useTheme()
const changesSpoiler = diffWords(
removeHTML(prevItem?.spoiler_text || item.spoiler_text || ''),
removeHTML(item.spoiler_text || '')
)
const changesContent = diffWords(
removeHTML(prevItem?.content || item.content),
removeHTML(item.content)
)
return (
// @ts-ignore
{changesSpoiler.length && changesSpoiler[0].count ? (
{changesSpoiler.map(({ value, added, removed }, index) => (
))}
) : null}
{changesContent.map(({ value, added, removed }, index) => (
))}
{item.poll?.options.map((option, index) => (
))}
)
}
const TabSharedHistory: React.FC> = ({
navigation,
route: {
params: { id }
}
}) => {
const { t } = useTranslation('screenTabs')
const { data } = useStatusHistory({ id })
useEffect(() => {
navigation.setOptions({
title: t('shared.history.name'),
headerLeft: () => navigation.goBack()} />
})
}, [])
const dataReversed = data ? [...data].reverse() : []
return (
(
)}
ItemSeparatorComponent={ComponentSeparator}
/>
)
}
export default TabSharedHistory