1
0
mirror of https://github.com/tooot-app/app synced 2025-06-05 22:19:13 +02:00
This commit is contained in:
Zhiyuan Zheng
2021-05-15 23:08:13 +02:00
parent d4c93750c7
commit 4499bb8bae
6 changed files with 57 additions and 83 deletions

View File

@ -2,65 +2,25 @@ import { MenuContainer, MenuRow } from '@components/Menu'
import { useNavigation } from '@react-navigation/native'
import { useAnnouncementQuery } from '@utils/queryHooks/announcement'
import { useListsQuery } from '@utils/queryHooks/lists'
import React, { useMemo } from 'react'
import React from 'react'
import { useTranslation } from 'react-i18next'
const Collections: React.FC = () => {
const { t, i18n } = useTranslation('screenTabs')
const { t } = useTranslation('screenTabs')
const navigation = useNavigation()
const listsQuery = useListsQuery({
options: {
notifyOnChangeProps: []
notifyOnChangeProps: ['data']
}
})
const rowLists = useMemo(() => {
if (listsQuery.isSuccess && listsQuery.data?.length) {
return (
<MenuRow
iconFront='List'
iconBack='ChevronRight'
title={t('me.stacks.lists.name')}
onPress={() => navigation.navigate('Tab-Me-Lists')}
/>
)
} else {
return null
}
}, [listsQuery.isSuccess, listsQuery.data, i18n.language])
const announcementsQuery = useAnnouncementQuery({
showAll: true,
options: {
notifyOnChangeProps: []
notifyOnChangeProps: ['data']
}
})
const rowAnnouncements = useMemo(() => {
if (announcementsQuery.isSuccess && announcementsQuery.data?.length) {
const amount = announcementsQuery.data.filter(
announcement => !announcement.read
).length
return (
<MenuRow
iconFront='Clipboard'
iconBack='ChevronRight'
title={t('screenAnnouncements:heading')}
content={
amount
? t('me.root.announcements.content.unread', {
amount
})
: t('me.root.announcements.content.read')
}
onPress={() =>
navigation.navigate('Screen-Announcements', { showAll: true })
}
/>
)
} else {
return null
}
}, [announcementsQuery.isSuccess, announcementsQuery.data, i18n.language])
return (
<MenuContainer>
@ -82,8 +42,34 @@ const Collections: React.FC = () => {
title={t('me.stacks.favourites.name')}
onPress={() => navigation.navigate('Tab-Me-Favourites')}
/>
{rowLists}
{rowAnnouncements}
{listsQuery.data?.length ? (
<MenuRow
iconFront='List'
iconBack='ChevronRight'
title={t('me.stacks.lists.name')}
onPress={() => navigation.navigate('Tab-Me-Lists')}
/>
) : null}
{announcementsQuery.data?.length ? (
<MenuRow
iconFront='Clipboard'
iconBack='ChevronRight'
title={t('screenAnnouncements:heading')}
content={
announcementsQuery.data.filter(announcement => !announcement.read)
.length
? t('me.root.announcements.content.unread', {
amount: announcementsQuery.data.filter(
announcement => !announcement.read
).length
})
: t('me.root.announcements.content.read')
}
onPress={() =>
navigation.navigate('Screen-Announcements', { showAll: true })
}
/>
) : null}
</MenuContainer>
)
}