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

57 lines
1.6 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'
2021-02-20 19:12:44 +01:00
import { getInstanceDrafts } from '@utils/slices/instancesSlice'
2021-02-07 00:39:11 +01:00
import { StyleConstants } from '@utils/styles/constants'
import layoutAnimation from '@utils/styles/layoutAnimation'
import React, { useContext, useEffect } from 'react'
import { useTranslation } from 'react-i18next'
import { StyleSheet, View } from 'react-native'
import { useSelector } from 'react-redux'
import ComposeContext from '../utils/createContext'
const ComposeDrafts: React.FC = () => {
const { t } = useTranslation('sharedCompose')
const navigation = useNavigation()
const { composeState } = useContext(ComposeContext)
2021-02-20 19:12:44 +01:00
const instanceDrafts = useSelector(getInstanceDrafts)?.filter(
2021-02-07 00:39:11 +01:00
draft => draft.timestamp !== composeState.timestamp
)
useEffect(() => {
layoutAnimation()
}, [composeState.dirty])
2021-02-20 19:12:44 +01:00
if (!composeState.dirty && instanceDrafts?.length) {
2021-02-07 00:39:11 +01:00
return (
<View
style={styles.base}
children={
<Button
type='text'
content={t('content.root.drafts', {
2021-02-20 19:12:44 +01:00
count: instanceDrafts.length
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