diff --git a/package.json b/package.json
index 1a15199..b8657aa 100644
--- a/package.json
+++ b/package.json
@@ -28,6 +28,8 @@
"@react-navigation/native": "^5.0.9",
"@react-navigation/stack": "^5.1.1",
"expo": "^37.0.0",
+ "expo-barcode-scanner": "~8.1.0",
+ "expo-camera": "latest",
"expo-linear-gradient": "~8.1.0",
"expo-localization": "~8.1.0",
"expo-permissions": "~8.1.0",
@@ -50,8 +52,7 @@
"react-native-safe-area-context": "0.7.3",
"react-native-screens": "~2.2.0",
"react-native-webview": "8.1.1",
- "expo-barcode-scanner": "~8.1.0",
- "expo-camera": "latest"
+ "react-navigation-header-buttons": "^3.0.5"
},
"devDependencies": {
"@babel/cli": "^7.8.4",
diff --git a/src/components/Custom/HeaderButton.js b/src/components/Custom/HeaderButton.js
index 6c9edcf..4031c20 100644
--- a/src/components/Custom/HeaderButton.js
+++ b/src/components/Custom/HeaderButton.js
@@ -1,22 +1,37 @@
-import * as React from 'react';
-import {IconButton, withTheme} from 'react-native-paper';
+// @flow
-/**
- * Component used to display a header button
- *
- * @param props Props to pass to the component
- * @return {*}
- */
-function HeaderButton(props) {
- const {colors} = props.theme;
+import * as React from 'react';
+import {MaterialCommunityIcons} from "@expo/vector-icons";
+import {HeaderButton, HeaderButtons} from 'react-navigation-header-buttons';
+import {withTheme} from "react-native-paper";
+import * as Touchable from "react-native/Libraries/Components/Touchable/TouchableNativeFeedback.android";
+
+const MaterialHeaderButton = (props: Object) => (
+
+);
+
+const MaterialHeaderButtons = (props: Object) => {
return (
-
+ }
/>
);
-}
+};
-export default withTheme(HeaderButton);
+export default withTheme(MaterialHeaderButtons);
+
+export {Item} from 'react-navigation-header-buttons';
diff --git a/src/components/Screens/WebViewScreen.js b/src/components/Screens/WebViewScreen.js
index 6b440f5..2bc6b5f 100644
--- a/src/components/Screens/WebViewScreen.js
+++ b/src/components/Screens/WebViewScreen.js
@@ -2,10 +2,10 @@
import * as React from 'react';
import WebView from "react-native-webview";
-import HeaderButton from "../Custom/HeaderButton";
import BasicLoadingScreen from "../Custom/BasicLoadingScreen";
import ErrorView from "../Custom/ErrorView";
-import {ERROR_TYPE} from "../../managers/ConnectionManager";
+import {ERROR_TYPE} from "../../utils/WebData";
+import MaterialHeaderButtons, {Item} from '../Custom/HeaderButton';
type Props = {
navigation: Object,
@@ -55,7 +55,11 @@ class WebViewScreen extends React.PureComponent {
* @return {*}
*/
getRefreshButton() {
- return
+ return (
+
+ -
+
+ );
};
/**
diff --git a/src/managers/ThemeManager.js b/src/managers/ThemeManager.js
index 33f227a..af891c9 100644
--- a/src/managers/ThemeManager.js
+++ b/src/managers/ThemeManager.js
@@ -34,6 +34,7 @@ export default class ThemeManager {
tabIcon: "#929292",
card: "rgb(255, 255, 255)",
dividerBackground: '#e2e2e2',
+ ripple: "rgba(0,0,0,0.2)",
textDisabled: '#c1c1c1',
icon: '#5d5d5d',
subtitle: '#707070',
@@ -91,6 +92,7 @@ export default class ThemeManager {
tabIcon: "#6d6d6d",
card: "rgb(18, 18, 18)",
dividerBackground: '#222222',
+ ripple: "rgba(255,255,255,0.2)",
textDisabled: '#5b5b5b',
icon: '#b3b3b3',
subtitle: '#aaaaaa',
diff --git a/src/navigation/DrawerNavigator.js b/src/navigation/DrawerNavigator.js
index db887e1..3644e3c 100644
--- a/src/navigation/DrawerNavigator.js
+++ b/src/navigation/DrawerNavigator.js
@@ -13,7 +13,6 @@ import TetrisScreen from "../screens/Tetris/TetrisScreen";
import DebugScreen from '../screens/About/DebugScreen';
import Sidebar from "../components/Sidebar/Sidebar";
import {createStackNavigator, TransitionPresets} from "@react-navigation/stack";
-import HeaderButton from "../components/Custom/HeaderButton";
import i18n from "i18n-js";
import LoginScreen from "../screens/Amicale/LoginScreen";
import ProfileScreen from "../screens/Amicale/ProfileScreen";
@@ -22,6 +21,7 @@ import ClubDisplayScreen from "../screens/Amicale/Clubs/ClubDisplayScreen";
import ClubAboutScreen from "../screens/Amicale/Clubs/ClubAboutScreen";
import VoteScreen from "../screens/Amicale/VoteScreen";
import AmicaleContactScreen from "../screens/Amicale/AmicaleContactScreen";
+import MaterialHeaderButtons, {Item} from "../components/Custom/HeaderButton";
const defaultScreenOptions = {
gestureEnabled: true,
@@ -31,7 +31,9 @@ const defaultScreenOptions = {
function getDrawerButton(navigation: Object) {
return (
-
+
+ -
+
);
}
@@ -365,7 +367,8 @@ export default class DrawerNavigator extends React.Component {
constructor(props: Object) {
super(props);
- this.createTabNavigator = () =>
+ this.createTabNavigator = () =>
}
render() {
diff --git a/src/navigation/MainTabNavigator.js b/src/navigation/MainTabNavigator.js
index f52a513..358e890 100644
--- a/src/navigation/MainTabNavigator.js
+++ b/src/navigation/MainTabNavigator.js
@@ -13,11 +13,11 @@ import ProximoAboutScreen from "../screens/Proximo/ProximoAboutScreen";
import PlanexScreen from '../screens/Websites/PlanexScreen';
import {MaterialCommunityIcons} from "@expo/vector-icons";
import AsyncStorageManager from "../managers/AsyncStorageManager";
-import HeaderButton from "../components/Custom/HeaderButton";
import {withTheme} from 'react-native-paper';
import i18n from "i18n-js";
import ClubDisplayScreen from "../screens/Amicale/Clubs/ClubDisplayScreen";
import ScannerScreen from "../screens/ScannerScreen";
+import MaterialHeaderButtons, {Item} from "../components/Custom/HeaderButton";
const TAB_ICONS = {
@@ -36,7 +36,9 @@ const defaultScreenOptions = {
function getDrawerButton(navigation: Object) {
return (
-
+
+ -
+
);
}
@@ -231,7 +233,7 @@ type Props = {
defaultData: Object
}
-class TabNavigator extends React.Component{
+class TabNavigator extends React.Component {
createHomeStackComponent: Object;
diff --git a/src/screens/Amicale/Clubs/ClubListScreen.js b/src/screens/Amicale/Clubs/ClubListScreen.js
index b3be179..d2cf1d2 100644
--- a/src/screens/Amicale/Clubs/ClubListScreen.js
+++ b/src/screens/Amicale/Clubs/ClubListScreen.js
@@ -8,7 +8,7 @@ import i18n from "i18n-js";
import ClubListItem from "../../../components/Lists/ClubListItem";
import {isItemInCategoryFilter, stringMatchQuery} from "../../../utils/Search";
import ClubListHeader from "../../../components/Lists/ClubListHeader";
-import HeaderButton from "../../../components/Custom/HeaderButton";
+import MaterialHeaderButtons, {Item} from "../../../components/Custom/HeaderButton";
type Props = {
navigation: Object,
@@ -72,7 +72,9 @@ class ClubListScreen extends React.Component {
*/
getHeaderButtons = () => {
const onPress = () => this.props.navigation.navigate("club-about");
- return ;
+ return
+ -
+
;
};
/**
diff --git a/src/screens/Amicale/ProfileScreen.js b/src/screens/Amicale/ProfileScreen.js
index 6224f17..15f562f 100644
--- a/src/screens/Amicale/ProfileScreen.js
+++ b/src/screens/Amicale/ProfileScreen.js
@@ -5,9 +5,9 @@ import {FlatList, StyleSheet, View} from "react-native";
import {Avatar, Button, Card, Divider, List, withTheme} from 'react-native-paper';
import AuthenticatedScreen from "../../components/Amicale/AuthenticatedScreen";
import {openBrowser} from "../../utils/WebBrowser";
-import HeaderButton from "../../components/Custom/HeaderButton";
import i18n from 'i18n-js';
import LogoutDialog from "../../components/Amicale/LogoutDialog";
+import MaterialHeaderButtons, {Item} from "../../components/Custom/HeaderButton";
type Props = {
navigation: Object,
@@ -47,7 +47,9 @@ class ProfileScreen extends React.Component {
hideDisconnectDialog = () => this.setState({dialogVisible: false});
- getHeaderButton = () => ;
+ getHeaderButton = () =>
+ -
+
;
getScreen = (data: Object) => {
this.data = data[0];
diff --git a/src/screens/HomeScreen.js b/src/screens/HomeScreen.js
index 27df7c1..15b9df3 100644
--- a/src/screens/HomeScreen.js
+++ b/src/screens/HomeScreen.js
@@ -12,9 +12,9 @@ import PreviewEventDashboardItem from "../components/Home/PreviewEventDashboardI
import {stringToDate} from "../utils/Planning";
import {openBrowser} from "../utils/WebBrowser";
import ActionsDashBoardItem from "../components/Home/ActionsDashboardItem";
-import HeaderButton from "../components/Custom/HeaderButton";
import ConnectionManager from "../managers/ConnectionManager";
import {CommonActions} from '@react-navigation/native';
+import MaterialHeaderButtons, {Item} from "../components/Custom/HeaderButton";
// import DATA from "../dashboard_data.json";
@@ -96,11 +96,9 @@ class HomeScreen extends React.Component {
? "account"
: "login";
const onPress = () => this.props.navigation.navigate(screen);
- return ;
+ return
+ -
+
;
};
onProxiwashClick = () => this.props.navigation.navigate('proxiwash');
diff --git a/src/screens/Proximo/ProximoListScreen.js b/src/screens/Proximo/ProximoListScreen.js
index ff0179b..a51e6ce 100644
--- a/src/screens/Proximo/ProximoListScreen.js
+++ b/src/screens/Proximo/ProximoListScreen.js
@@ -7,7 +7,7 @@ import CustomModal from "../../components/Custom/CustomModal";
import {RadioButton, Searchbar, Subheading, Text, Title, withTheme} from "react-native-paper";
import {stringMatchQuery} from "../../utils/Search";
import ProximoListItem from "../../components/Lists/ProximoListItem";
-import HeaderButton from "../../components/Custom/HeaderButton";
+import MaterialHeaderButtons, {Item} from "../../components/Custom/HeaderButton";
function sortPrice(a, b) {
return a.price - b.price;
@@ -102,7 +102,9 @@ class ProximoListScreen extends React.Component {
* @return {*}
*/
getSortMenuButton = () => {
- return ;
+ return
+ -
+
;
};
/**
diff --git a/src/screens/Proximo/ProximoMainScreen.js b/src/screens/Proximo/ProximoMainScreen.js
index 3246591..611aaa3 100644
--- a/src/screens/Proximo/ProximoMainScreen.js
+++ b/src/screens/Proximo/ProximoMainScreen.js
@@ -5,7 +5,7 @@ import {View} from 'react-native'
import i18n from "i18n-js";
import WebSectionList from "../../components/Lists/WebSectionList";
import {List, withTheme} from 'react-native-paper';
-import HeaderButton from "../../components/Custom/HeaderButton";
+import MaterialHeaderButtons, {Item} from "../../components/Custom/HeaderButton";
const DATA_URL = "https://etud.insa-toulouse.fr/~proximo/data/stock-v2.json";
const LIST_ITEM_HEIGHT = 84;
@@ -111,15 +111,10 @@ class ProximoMainScreen extends React.Component {
* @return {*}
*/
getHeaderButtons() {
- return (
-
-
-
-
- );
+ return
+ -
+
-
+
;
}
/**
diff --git a/src/screens/Proxiwash/ProxiwashScreen.js b/src/screens/Proxiwash/ProxiwashScreen.js
index 7521adf..535fab1 100644
--- a/src/screens/Proxiwash/ProxiwashScreen.js
+++ b/src/screens/Proxiwash/ProxiwashScreen.js
@@ -8,11 +8,11 @@ import * as Notifications from "../../utils/Notifications";
import AsyncStorageManager from "../../managers/AsyncStorageManager";
import * as Expo from "expo";
import {Avatar, Banner, Button, Card, Text, withTheme} from 'react-native-paper';
-import HeaderButton from "../../components/Custom/HeaderButton";
import ProxiwashListItem from "../../components/Lists/ProxiwashListItem";
import ProxiwashConstants from "../../constants/ProxiwashConstants";
import CustomModal from "../../components/Custom/CustomModal";
import AprilFoolsManager from "../../managers/AprilFoolsManager";
+import MaterialHeaderButtons, {Item} from "../../components/Custom/HeaderButton";
const DATA_URL = "https://etud.insa-toulouse.fr/~amicale_app/washinsa/washinsa.json";
@@ -152,7 +152,9 @@ class ProxiwashScreen extends React.Component {
* @return {*}
*/
getAboutButton() {
- return ;
+ return
+ -
+
;
}
/**
diff --git a/src/screens/Tetris/TetrisScreen.js b/src/screens/Tetris/TetrisScreen.js
index f1b7b81..b7beb29 100644
--- a/src/screens/Tetris/TetrisScreen.js
+++ b/src/screens/Tetris/TetrisScreen.js
@@ -6,9 +6,9 @@ import {IconButton, Text, withTheme} from 'react-native-paper';
import {MaterialCommunityIcons} from "@expo/vector-icons";
import GameLogic from "./GameLogic";
import Grid from "./components/Grid";
-import HeaderButton from "../../components/Custom/HeaderButton";
import Preview from "./components/Preview";
import i18n from "i18n-js";
+import MaterialHeaderButtons, {Item} from "../../components/Custom/HeaderButton";
type Props = {
navigation: Object,
@@ -62,14 +62,9 @@ class TetrisScreen extends React.Component {
}
getRightButton() {
- return (
-
- this.togglePause()}/>
-
- );
+ return
+ - this.togglePause()}/>
+
;
}
/**