From 59724a0947c25bfa3aa16bd4a97bd5449e87bbcd Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Sat, 5 Oct 2024 23:27:42 +0530 Subject: Refactor app view screens --- App.tsx | 12 +++--------- src/AppView.tsx | 20 ++++++++++++++++++-- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/App.tsx b/App.tsx index 08886a0..9bdcdcc 100644 --- a/App.tsx +++ b/App.tsx @@ -1,22 +1,16 @@ -import React, {Suspense, useEffect} from 'react'; -import {BackHandler, SafeAreaView, View} from 'react-native'; +import React, {Suspense} from 'react'; +import {SafeAreaView, View} from 'react-native'; import {GestureHandlerRootView} from 'react-native-gesture-handler'; import {AppView} from './src/AppView'; import {Provider as JotaiProvider} from 'jotai'; const App: React.FC = () => { - // Disable back button - useEffect(() => { - const sub = BackHandler.addEventListener('hardwareBackPress', () => true); - return () => sub.remove(); - }, []); - return ( }> - + diff --git a/src/AppView.tsx b/src/AppView.tsx index cca64f6..2f8e0b2 100644 --- a/src/AppView.tsx +++ b/src/AppView.tsx @@ -3,15 +3,30 @@ import Swiper from 'react-native-swiper'; import {AppList} from './screens/AppList'; import {Home} from './screens/Home'; import {useInstalledApps} from './hooks/useInstalledApps'; +import {BackHandler} from 'react-native'; + +const screens = [ + {id: 'home', component: Home}, + {id: 'appList', component: AppList}, +]; export const AppView: React.FC = React.memo(() => { const {refreshApps} = useInstalledApps(); const [screenIndex, setScreenIndex] = useState(0); + // Refresh app list when switching between screens useEffect(() => { refreshApps(); }, [screenIndex, refreshApps]); + // Disable back button + useEffect(() => { + const sub = BackHandler.addEventListener('hardwareBackPress', () => { + return true; + }); + return () => sub.remove(); + }, []); + return ( { dot={<>} activeDot={<>} onIndexChanged={setScreenIndex}> - - + {screens.map(({id, component: Screen}, i) => ( + + ))} ); }); -- cgit v1.3.1