diff --git a/package.json b/package.json
index aed2ca6..2022459 100644
--- a/package.json
+++ b/package.json
@@ -17,6 +17,7 @@
"dependencies": {
"@apollo/client": "^3.4.14",
"@react-native-async-storage/async-storage": "^1.15.8",
+ "@react-navigation/bottom-tabs": "^6.0.7",
"@react-navigation/native": "^6.0.4",
"@react-navigation/native-stack": "^6.2.2",
"@sentry/react-native": "^3.1.1",
diff --git a/src/Dusken.js b/src/Dusken.js
index 1bf1505..2822c51 100644
--- a/src/Dusken.js
+++ b/src/Dusken.js
@@ -2,7 +2,7 @@ import React, { useEffect } from 'react';
import { connect } from 'react-redux';
import { NativeBaseProvider } from 'native-base';
-import DuskenNavigation from './Navigation';
+import Navigation from './Navigation';
import { logout as logoutAction, registerUserSuccess as registerUserSuccessAction } from './actions';
import { migrateReduxPersistFourToFive } from './utils';
@@ -21,7 +21,7 @@ const DuskenContainer = ({ registerUserSuccess, userToken, user, logout }) => {
return (
-
+
);
};
diff --git a/src/Navigation.js b/src/Navigation.js
index cc808dc..eab13ba 100644
--- a/src/Navigation.js
+++ b/src/Navigation.js
@@ -1,102 +1,81 @@
import React from 'react';
-// import { Platform, StyleSheet } from 'react-native';
-// import { createBottomTabNavigator, getActiveChildNavigationOptions } from 'react-navigation';
-
+import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
+import Icon from 'react-native-vector-icons/SimpleLineIcons';
import EventListScreen from './screens/EventListScreen';
-import AboutScreen from './screens/AboutScreen';
import EventDetailScreen from './screens/EventDetailScreen';
-import LoginScreen from './screens/LoginScreen';
-import MembershipScreen from './screens/MembershipScreen';
-// import UserRegisterScreen from './screens/UserRegisterScreen';
+import UserRegisterScreen from './screens/UserRegisterScreen';
-// const tabBarRoutes = {
-// EventList: EventListScreen,
-// Membership: MembershipScreen,
-// About: AboutScreen,
-// };
+import Membership from './modules/membership/Membership';
+import Login from './modules/login/Login';
+import AboutContainer from './modules/about/AboutContainer';
-// const tabBarOptions = {
-// tabBarPosition: 'bottom',
-// tabBarOptions: {
-// style: {
-// ...Platform.select({
-// android: {
-// backgroundColor: '#fff',
-// borderTopWidth: StyleSheet.hairlineWidth,
-// borderTopColor: 'rgba(0, 0, 0, 0.2)',
-// },
-// }),
-// },
-// indicatorStyle: {
-// backgroundColor: '#f58220',
-// },
-// activeTintColor: '#f58220',
-// inactiveTintColor: '#333333',
-// labelStyle: {
-// fontSize: 12,
-// ...Platform.select({
-// android: {
-// marginBottom: 4,
-// },
-// ios: {
-// marginBottom: 0,
-// },
-// }),
-// },
-// },
-// navigationOptions: ({ navigation, screenProps }) => ({
-// // get header title from active child screen
-// ...getActiveChildNavigationOptions(navigation, screenProps),
-// headerStyle: {
-// backgroundColor: '#f58220',
-// },
-// headerTitleStyle: {
-// color: 'white',
-// },
-// headerTintColor: 'white',
-// }),
-// };
+const EventStack = createNativeStackNavigator();
+const EventStackScreen = () => (
+
+
+ ({ title: route.params.item.title.decoded })}
+ />
+
+);
-// const tabNav = createBottomTabNavigator(tabBarRoutes, tabBarOptions);
-// const DuskenNavigation = createStackNavigator(
-// {
-// Root: tabNav,
-// Login: LoginScreen,
-// UserRegister: UserRegisterScreen,
-// EventDetail: EventDetailScreen,
-// },
-// {
-// defaultNavigationOptions: {
-// headerStyle: {
-// backgroundColor: '#f58220',
-// },
-// headerTitleStyle: {
-// color: 'white',
-// },
-// headerTintColor: 'white',
-// },
-// }
-// );
-const Stack = createNativeStackNavigator();
+const UserStack = createNativeStackNavigator();
+const UserStackScreen = () => (
+
+
+
+
+
+);
-const DuskenNavigation = () => (
+const HomeTabs = createBottomTabNavigator();
+const Navigation = () => (
-
-
-
-
- ({
- title: route.params.item.title.decoded,
- })}
+
+ ,
+ }}
/>
-
-
+ ,
+ }}
+ />
+ ,
+ }}
+ />
+
);
-export default DuskenNavigation;
+export default Navigation;
diff --git a/src/screens/AboutScreen.js b/src/screens/AboutScreen.js
deleted file mode 100644
index 30e7cd1..0000000
--- a/src/screens/AboutScreen.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import React from 'react';
-import Icon from 'react-native-vector-icons/SimpleLineIcons';
-
-import AboutContainer from '../modules/about/AboutContainer';
-
-const AboutScreen = () => ;
-
-const TabBarIcon = ({ tintColor }) => ;
-
-AboutScreen.navigationOptions = {
- title: 'Om oss',
- tabBarIcon: TabBarIcon,
-};
-
-export default AboutScreen;
diff --git a/src/screens/EventListScreen.js b/src/screens/EventListScreen.js
index f1eb599..31024c7 100644
--- a/src/screens/EventListScreen.js
+++ b/src/screens/EventListScreen.js
@@ -1,13 +1,9 @@
import React from 'react';
-import Icon from 'react-native-vector-icons/SimpleLineIcons';
import { useNavigation } from '@react-navigation/native';
import EventListContainer from '../modules/events/EventListContainer';
-// FIXME: theme
-// https://docs.nativebase.io/setup-provider#add-custom-theme-optional
-// import getTheme from '../../native-base-theme/components';
-const EventsScreen = () => {
+const EventListScreen = () => {
const { navigate } = useNavigation();
return (
{
);
};
-const tabBarIcon = ({ tintColor }) => ;
-
-EventsScreen.navigationOptions = {
- title: 'Program',
- tabBarIcon,
-};
-export default EventsScreen;
+export default EventListScreen;
diff --git a/src/screens/LoginScreen.js b/src/screens/LoginScreen.js
deleted file mode 100644
index 1b97c12..0000000
--- a/src/screens/LoginScreen.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import React from 'react';
-
-import Login from '../modules/login/Login';
-
-const LoginScreen = () => {
- return ;
-};
-LoginScreen.navigationOptions = {
- title: 'Logg inn',
-};
-export default LoginScreen;
diff --git a/src/screens/MembershipScreen.js b/src/screens/MembershipScreen.js
deleted file mode 100644
index 5d659cd..0000000
--- a/src/screens/MembershipScreen.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import React, { Component } from 'react';
-import Icon from 'react-native-vector-icons/SimpleLineIcons';
-import Membership from '../modules/membership/Membership';
-
-export default class MembershipScreen extends Component {
- static navigationOptions = {
- title: 'Medlemskap',
- tabBarIcon: ({ tintColor }) => ,
- };
-
- render() {
- return ;
- }
-}
diff --git a/src/screens/UserRegisterScreen.js b/src/screens/UserRegisterScreen.js
index d63c0fa..3e39f5a 100644
--- a/src/screens/UserRegisterScreen.js
+++ b/src/screens/UserRegisterScreen.js
@@ -1,23 +1,13 @@
import React, { Component } from 'react';
-import { StyleProvider } from 'native-base';
import UserRegisterContainer from '../modules/register/UserRegisterContainer';
-import getTheme from '../../native-base-theme/components';
export default class UserRegisterScreen extends Component {
- static navigationOptions = {
- title: 'Bli medlem',
- };
-
onRegister = () => {
// This works since UserRegisterScreen is allways navigated to from MembershipScreen
this.props.navigation.goBack();
};
render() {
- return (
-
-
-
- );
+ return ;
}
}
diff --git a/yarn.lock b/yarn.lock
index 1466f8f..180bd73 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1944,6 +1944,15 @@
resolved "https://registry.yarnpkg.com/@react-native/polyfills/-/polyfills-2.0.0.tgz#4c40b74655c83982c8cf47530ee7dc13d957b6aa"
integrity sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ==
+"@react-navigation/bottom-tabs@^6.0.7":
+ version "6.0.7"
+ resolved "https://registry.yarnpkg.com/@react-navigation/bottom-tabs/-/bottom-tabs-6.0.7.tgz#3a0772f57b588d10853d05407fc3c0c48c6bb8ba"
+ integrity sha512-NfSb4Y5wSEPg3T7gHN25O133enSscJ808xEWqhGkR96BtSjcHh/oNMO+dqk6Avgh56uZEyL92Qm/CKFvaGkWow==
+ dependencies:
+ "@react-navigation/elements" "^1.1.2"
+ color "^3.1.3"
+ warn-once "^0.1.0"
+
"@react-navigation/core@^6.0.2":
version "6.0.2"
resolved "https://registry.yarnpkg.com/@react-navigation/core/-/core-6.0.2.tgz#301be6c28211ae2571f3e9e3f74c8f077619ccdd"
@@ -3542,7 +3551,7 @@ collection-visit@^1.0.0:
map-visit "^1.0.0"
object-visit "^1.0.0"
-color-convert@^1.9.0:
+color-convert@^1.9.0, color-convert@^1.9.3:
version "1.9.3"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
@@ -3561,11 +3570,27 @@ color-name@1.1.3:
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
-color-name@~1.1.4:
+color-name@^1.0.0, color-name@~1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+color-string@^1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.6.0.tgz#c3915f61fe267672cb7e1e064c9d692219f6c312"
+ integrity sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==
+ dependencies:
+ color-name "^1.0.0"
+ simple-swizzle "^0.2.2"
+
+color@^3.1.3:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164"
+ integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==
+ dependencies:
+ color-convert "^1.9.3"
+ color-string "^1.6.0"
+
colorette@^1.0.7:
version "1.4.0"
resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40"
@@ -5114,6 +5139,11 @@ is-arrayish@^0.2.1:
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
+is-arrayish@^0.3.1:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
+ integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
+
is-bigint@^1.0.1:
version "1.0.4"
resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3"
@@ -8089,6 +8119,13 @@ simple-plist@^1.0.0:
bplist-parser "0.2.0"
plist "^3.0.1"
+simple-swizzle@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
+ integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
+ dependencies:
+ is-arrayish "^0.3.1"
+
sisteransi@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"