skolplattformen-backup/packages/app/components/navigation.component.tsx

63 lines
1.7 KiB
TypeScript
Raw Normal View History

import { useApi } from '@skolplattformen/api-hooks'
2021-03-26 08:38:15 +00:00
import { NavigationContainer } from '@react-navigation/native'
import { createStackNavigator } from '@react-navigation/stack'
import React from 'react'
import { StatusBar } from 'react-native'
import { schema } from '../app.json'
import Absence from './absence.component'
import { Child } from './child.component'
import { Children } from './children.component'
import { Auth } from './auth.component'
2021-04-14 14:13:43 +00:00
import { SetLanguage } from './setLanguage.component'
2021-03-26 08:38:15 +00:00
import { NewsItem } from './newsItem.component'
import {
Child as ChildType,
NewsItem as NewsItemType,
} from '@skolplattformen/embedded-api'
export type RootStackParamList = {
Login: undefined
Children: undefined
Child: {
child: ChildType
color: string
initialRouteName?: string
}
NewsItem: { newsItem: NewsItemType; child: ChildType }
Absence: { child: ChildType }
}
const { Navigator, Screen } = createStackNavigator()
const linking = {
prefixes: [schema],
config: {
screens: {
Login: 'login',
},
},
}
export const AppNavigator = () => {
const { isLoggedIn } = useApi()
2021-03-26 08:38:15 +00:00
return (
<NavigationContainer linking={linking}>
<StatusBar />
<Navigator headerMode="none">
{isLoggedIn ? (
<>
<Screen name="Children" component={Children} />
<Screen name="Child" component={Child} />
<Screen name="NewsItem" component={NewsItem} />
<Screen name="Absence" component={Absence} />
</>
) : (
2021-04-14 14:13:43 +00:00
<>
<Screen name="Login" component={Auth} />
<Screen name="SetLanguage" component={SetLanguage} />
</>
)}
</Navigator>
2021-03-26 08:38:15 +00:00
</NavigationContainer>
)
}