diff options
| author | Ashm Walia <ashmwalia@outlook.com> | 2021-01-19 11:36:56 -0800 |
|---|---|---|
| committer | Ashm Walia <ashmwalia@outlook.com> | 2021-01-19 11:36:56 -0800 |
| commit | c510ba308738fc88edb11772fe9db6ec4537427f (patch) | |
| tree | 86ca27286d50c35ec9a4b6362c8b42408ac85160 /src/routes/tabs | |
| parent | bb885ff561e44e23f9fb27ba8aa18f4dce8c690e (diff) | |
Done
Diffstat (limited to 'src/routes/tabs')
| -rw-r--r-- | src/routes/tabs/NavigationBar.tsx | 43 |
1 files changed, 36 insertions, 7 deletions
diff --git a/src/routes/tabs/NavigationBar.tsx b/src/routes/tabs/NavigationBar.tsx index 3757c56b..7d29ab67 100644 --- a/src/routes/tabs/NavigationBar.tsx +++ b/src/routes/tabs/NavigationBar.tsx @@ -1,15 +1,36 @@ import {createBottomTabNavigator} from '@react-navigation/bottom-tabs'; -import React, {Fragment} from 'react'; +import React, {Fragment, useEffect, useState} from 'react'; import {useSelector} from 'react-redux'; import {NavigationIcon} from '../../components'; +import {NO_NOTIFICATIONS} from '../../store/initialStates'; import {RootState} from '../../store/rootReducer'; import {ScreenType} from '../../types'; +import {haveUnreadNotifications} from '../../utils'; import MainStackScreen from '../main/MainStackScreen'; const Tabs = createBottomTabNavigator(); const NavigationBar: React.FC = () => { - const {isOnboardedUser} = useSelector((state: RootState) => state.user); + const {isOnboardedUser, newNotificationReceived} = useSelector( + (state: RootState) => state.user, + ); + + const {notifications: {notifications} = NO_NOTIFICATIONS} = useSelector( + (state: RootState) => state, + ); + + const [unreadNotificationsPresent, setUnreadNotificationsPresent] = useState< + boolean + >(false); + + useEffect(() => { + const determine = async () => { + setUnreadNotificationsPresent( + await haveUnreadNotifications(notifications), + ); + }; + determine(); + }, [notifications]); return ( <Tabs.Navigator @@ -23,7 +44,15 @@ const NavigationBar: React.FC = () => { case 'Upload': return <NavigationIcon tab="Upload" disabled={!focused} />; case 'Notifications': - return <NavigationIcon tab="Notifications" disabled={!focused} />; + return ( + <NavigationIcon + newIcon={ + newNotificationReceived || unreadNotificationsPresent + } + tab="Notifications" + disabled={!focused} + /> + ); case 'Profile': return <NavigationIcon tab="Profile" disabled={!focused} />; default: @@ -44,14 +73,14 @@ const NavigationBar: React.FC = () => { }, }}> <Tabs.Screen - name="Notifications" + name="Search" component={MainStackScreen} - initialParams={{screenType: ScreenType.Notifications}} + initialParams={{screenType: ScreenType.Search}} /> <Tabs.Screen - name="Search" + name="Notifications" component={MainStackScreen} - initialParams={{screenType: ScreenType.Search}} + initialParams={{screenType: ScreenType.Notifications}} /> <Tabs.Screen name="Profile" |
