import { MenuContainer, MenuRow } from '@components/Menu' import { useNavigation } from '@react-navigation/native' import { useAppDispatch } from '@root/store' import { useAnnouncementQuery } from '@utils/queryHooks/announcement' import { useListsQuery } from '@utils/queryHooks/lists' import { getInstanceMePage, updateInstanceMePage } from '@utils/slices/instancesSlice' import { getInstancePush } from '@utils/slices/instancesSlice' import React, { useEffect } from 'react' import { useTranslation } from 'react-i18next' import { useSelector } from 'react-redux' const Collections: React.FC = () => { const { t } = useTranslation('screenTabs') const navigation = useNavigation() const dispatch = useAppDispatch() const mePage = useSelector(getInstanceMePage) const listsQuery = useListsQuery({ options: { notifyOnChangeProps: ['data'] } }) useEffect(() => { if (listsQuery.isSuccess) { dispatch( updateInstanceMePage({ lists: { shown: listsQuery.data?.length ? true : false } }) ) } }, [listsQuery.isSuccess, listsQuery.data?.length]) const announcementsQuery = useAnnouncementQuery({ showAll: true, options: { notifyOnChangeProps: ['data'] } }) useEffect(() => { if (announcementsQuery.isSuccess) { dispatch( updateInstanceMePage({ announcements: { shown: announcementsQuery.data?.length ? true : false, unread: announcementsQuery.data?.filter( announcement => !announcement.read ).length } }) ) } }, [announcementsQuery.isSuccess, announcementsQuery.data?.length]) const instancePush = useSelector( getInstancePush, (prev, next) => prev?.global.value === next?.global.value ) return ( navigation.navigate('Tab-Me-Conversations')} /> navigation.navigate('Tab-Me-Bookmarks')} /> navigation.navigate('Tab-Me-Favourites')} /> {mePage.lists.shown ? ( navigation.navigate('Tab-Me-Lists')} /> ) : null} {mePage.announcements.shown ? ( navigation.navigate('Screen-Announcements', { showAll: true }) } /> ) : null} navigation.navigate('Tab-Me-Push')} /> ) } export default Collections