diff options
author | Ivan Chen <ivan@thetaggid.com> | 2021-02-11 12:23:03 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-11 12:23:03 -0500 |
commit | d768712304ccdb016f8bef2a122fd25c01710a67 (patch) | |
tree | bad1bc9b04b91d4ae983343dad9971ab73d3071a /src/routes/Routes.tsx | |
parent | 0e9456692e9d0d0d0e8da483549b386c9af8df55 (diff) | |
parent | 952eb1b9b58362cc4ead737554872197ae8a89b1 (diff) |
Merge pull request #232 from IvanIFChen/tma639-new-version-available
[TMA-639] New Version Available
Diffstat (limited to 'src/routes/Routes.tsx')
-rw-r--r-- | src/routes/Routes.tsx | 34 |
1 files changed, 25 insertions, 9 deletions
diff --git a/src/routes/Routes.tsx b/src/routes/Routes.tsx index a5383a47..1cbc9bc5 100644 --- a/src/routes/Routes.tsx +++ b/src/routes/Routes.tsx @@ -1,18 +1,23 @@ -import React, {useEffect} from 'react'; -import NavigationBar from './tabs'; -import Onboarding from './onboarding'; -import {useSelector, useDispatch} from 'react-redux'; +import messaging from '@react-native-firebase/messaging'; +import React, {useEffect, useState} from 'react'; +import DeviceInfo from 'react-native-device-info'; +import SplashScreen from 'react-native-splash-screen'; +import {useDispatch, useSelector} from 'react-redux'; +import {fcmService, getLiveVersion} from '../services'; +import { + updateNewNotificationReceived, + updateNewVersionAvailable, +} from '../store/actions'; import {RootState} from '../store/rootReducer'; import {userLogin} from '../utils'; -import SplashScreen from 'react-native-splash-screen'; -import messaging from '@react-native-firebase/messaging'; -import {updateNewNotificationReceived} from '../store/actions'; -import {fcmService} from '../services'; +import Onboarding from './onboarding'; +import NavigationBar from './tabs'; const Routes: React.FC = () => { const { user: {userId}, } = useSelector((state: RootState) => state.user); + const [newVersionAvailable, setNewVersionAvailable] = useState(false); const dispatch = useDispatch(); /** @@ -47,7 +52,18 @@ const Routes: React.FC = () => { } }); - return userId ? <NavigationBar /> : <Onboarding />; + useEffect(() => { + const checkVersion = async () => { + const liveVersion = await getLiveVersion(); + if (liveVersion && liveVersion !== DeviceInfo.getVersion()) { + setNewVersionAvailable(true); + dispatch(updateNewVersionAvailable(true)); + } + }; + checkVersion(); + }); + + return userId && !newVersionAvailable ? <NavigationBar /> : <Onboarding />; }; export default Routes; |