tooot/src/screens/Compose/Root/Drafts.tsx

59 lines
1.7 KiB
TypeScript
Raw Normal View History

2021-02-07 00:39:11 +01:00
import Button from '@components/Button'
import { useNavigation } from '@react-navigation/native'
import { useAccountStorage } from '@utils/storage/actions'
2021-02-07 00:39:11 +01:00
import { StyleConstants } from '@utils/styles/constants'
import layoutAnimation from '@utils/styles/layoutAnimation'
2021-04-09 21:43:12 +02:00
import React, { RefObject, useContext, useEffect } from 'react'
2021-02-07 00:39:11 +01:00
import { useTranslation } from 'react-i18next'
import { StyleSheet, View } from 'react-native'
import ComposeContext from '../utils/createContext'
2021-04-09 21:43:12 +02:00
export interface Props {
accessibleRefDrafts: RefObject<View>
}
const ComposeDrafts: React.FC<Props> = ({ accessibleRefDrafts }) => {
2021-03-28 23:31:10 +02:00
const { t } = useTranslation('screenCompose')
2021-08-29 15:25:38 +02:00
const navigation = useNavigation<any>()
2021-02-07 00:39:11 +01:00
const { composeState } = useContext(ComposeContext)
const [drafts] = useAccountStorage.object('drafts')
2023-01-11 22:54:24 +01:00
const draftsCount = drafts?.filter(draft => draft.timestamp !== composeState.timestamp).length
2021-02-07 00:39:11 +01:00
useEffect(() => {
layoutAnimation()
}, [composeState.dirty])
if (!composeState.dirty && draftsCount) {
2021-02-07 00:39:11 +01:00
return (
<View
2021-04-11 11:25:40 +02:00
accessible
2021-04-09 21:43:12 +02:00
ref={accessibleRefDrafts}
2021-02-07 00:39:11 +01:00
style={styles.base}
children={
<Button
type='text'
content={t('content.root.drafts', { count: draftsCount })}
2021-02-07 00:39:11 +01:00
onPress={() =>
navigation.navigate('Screen-Compose-DraftsList', {
timestamp: composeState.timestamp
})
}
/>
}
/>
)
} else {
return null
}
}
const styles = StyleSheet.create({
base: {
position: 'absolute',
bottom: 45 + StyleConstants.Spacing.Global.PagePadding,
right: StyleConstants.Spacing.Global.PagePadding
}
})
export default ComposeDrafts