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"