forked from vergnet/application-amicale
		
	Updated intro slide and added settings and about buttons
This commit is contained in:
		
							parent
							
								
									f5c3f27f14
								
							
						
					
					
						commit
						1cb68a0d15
					
				
					 8 changed files with 72 additions and 33 deletions
				
			
		
							
								
								
									
										37
									
								
								App.js
									
									
									
									
									
								
							
							
						
						
									
										37
									
								
								App.js
									
									
									
									
									
								
							|  | @ -48,30 +48,44 @@ const styles = StyleSheet.create({ | |||
| const slides = [ | ||||
|     { | ||||
|         key: '1', | ||||
|         title: 'L\'application de l\'Amicale', | ||||
|         text: 'Toutes les informations du campus de Toulouse', | ||||
|         title: 'Bienvenue sur COFFEE', | ||||
|         text: ' La nouvelle app à consulter pendant la pause café pour être au courant de la vie du campus !', | ||||
|         image: require('./assets/amicale.png'), | ||||
|         colors: ['#ff8a6d', '#aa1c0d'], | ||||
|     }, | ||||
|     { | ||||
|         key: '2', | ||||
|         title: 'N\'oubliez plus votre linge', | ||||
|         text: 'Visualisez les disponibilités des machines et rajoutez des alarmes', | ||||
|         icon: 'washing-machine', | ||||
|         title: 'Restez informés', | ||||
|         text: 'COFFEE vous permettra bientôt d\'être au courant de tous les événements qui ont lieu sur le campus, de la vente de crêpes jusqu\'aux concerts enfoiros !', | ||||
|         icon: 'calendar-range', | ||||
|         colors: ['#9cd6d3', '#3186be'], | ||||
|     }, | ||||
|     { | ||||
|         key: '3', | ||||
|         title: 'Le proximo', | ||||
|         text: 'Regardez le stock de la supérette de l\'INSA depuis n\'importe où', | ||||
|         icon: 'shopping', | ||||
|         title: 'N\'oubliez plus votre linge !', | ||||
|         text: 'COFFEE vous informe de la disponibilité des machines et vous permet d\'être notifiés lorsque la vôtre se termine bientôt !', | ||||
|         icon: 'washing-machine', | ||||
|         colors: ['#f9a967', '#da5204'], | ||||
|     }, | ||||
|     { | ||||
|         key: '4', | ||||
|         title: 'Proximo', | ||||
|         text: 'Il vous manque des pâtes ? Ou un petit creux au gouter, regardez les stocks de votre supérette insaienne en temps réel', | ||||
|         icon: 'shopping', | ||||
|         colors: ['#f9a967', '#da5204'], | ||||
|     }, | ||||
|     { | ||||
|         key: '5', | ||||
|         title: 'Planex', | ||||
|         text: 'Consultez votre emploi du temps sur COFFEE', | ||||
|         icon: 'timetable', | ||||
|         colors: ['#f9a967', '#da5204'], | ||||
|     }, | ||||
|     { | ||||
|         key: '6', | ||||
|         title: 'Toujours en développement', | ||||
|         text: 'D\'autres fonctionnalités seront disponibles prochainement', | ||||
|         icon: 'settings-outline', | ||||
|         text: 'D\'autres fonctionnalités arrivent bientôt, n\'hésitez pas à nous donner votre avis pour améliorer l\'appli', | ||||
|         icon: 'cogs', | ||||
|         colors: ['#9be238', '#1e6a22'], | ||||
|     }, | ||||
| ]; | ||||
|  | @ -114,7 +128,8 @@ export default class App extends React.Component<Props, State> { | |||
|         this.setState({ | ||||
|             isLoading: false, | ||||
|             currentTheme: ThemeManager.getCurrentTheme(), | ||||
|             showIntro: AsyncStorageManager.getInstance().preferences.showIntro.current === '1' | ||||
|             // showIntro: AsyncStorageManager.getInstance().preferences.showIntro.current === '1'
 | ||||
|             showIntro: true | ||||
|         }); | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
|  | @ -13,7 +13,7 @@ import Touchable from "react-native-platform-touchable"; | |||
| type Props = { | ||||
|     navigation: Object, | ||||
|     headerTitle: string, | ||||
|     headerRightMenu: React.Node, | ||||
|     headerRightButton: React.Node, | ||||
|     children: React.Node | ||||
| } | ||||
| 
 | ||||
|  | @ -61,7 +61,7 @@ export default class BaseContainer extends React.Component<Props, State> { | |||
|                                               icon="menu"/> | ||||
|                                       </Touchable> | ||||
|                                   } | ||||
|                     rightMenu={this.props.headerRightMenu}/> | ||||
|                     rightButton={this.props.headerRightButton}/> | ||||
|                     {this.props.children} | ||||
|                 </Container> | ||||
|             </CustomSideMenu> | ||||
|  |  | |||
|  | @ -11,7 +11,7 @@ import CustomMaterialIcon from "./CustomMaterialIcon"; | |||
| type Props = { | ||||
|     hasBackButton: boolean, | ||||
|     leftButton: React.Node, | ||||
|     rightMenu: React.Node, | ||||
|     rightButton: React.Node, | ||||
|     title: string, | ||||
|     navigation: Object, | ||||
|     hasTabs: boolean, | ||||
|  | @ -30,7 +30,7 @@ export default class CustomHeader extends React.Component<Props> { | |||
|     static defaultProps = { | ||||
|         hasBackButton: false, | ||||
|         leftButton: <View/>, | ||||
|         rightMenu: <Right/>, | ||||
|         rightButton: <View/>, | ||||
|         hasTabs: false, | ||||
|     }; | ||||
| 
 | ||||
|  | @ -57,7 +57,17 @@ export default class CustomHeader extends React.Component<Props> { | |||
|                 <Body> | ||||
|                     <Title>{this.props.title}</Title> | ||||
|                 </Body> | ||||
|                 {this.props.rightMenu} | ||||
|                 <Right> | ||||
|                     {this.props.rightButton} | ||||
|                     {this.props.hasBackButton ? <View/> : | ||||
|                     <Touchable | ||||
|                         style={{padding: 6}} | ||||
|                         onPress={() => this.props.navigation.navigate('SettingsScreen')}> | ||||
|                         <CustomMaterialIcon | ||||
|                             color={Platform.OS === 'ios' ? ThemeManager.getCurrentThemeVariables().brandPrimary : "#fff"} | ||||
|                             icon="settings"/> | ||||
|                     </Touchable>} | ||||
|                 </Right> | ||||
|             </Header>); | ||||
|     } | ||||
| }; | ||||
|  |  | |||
|  | @ -1,9 +1,9 @@ | |||
| // @flow
 | ||||
| 
 | ||||
| import {createAppContainer, createStackNavigator} from 'react-navigation'; | ||||
| 
 | ||||
| import MainDrawerNavigator from './MainDrawerNavigator'; | ||||
| import MainTabNavigator from './MainTabNavigator'; | ||||
| import SettingsScreen from '../screens/SettingsScreen'; | ||||
| import AboutScreen from '../screens/About/AboutScreen'; | ||||
| import ProximoListScreen from '../screens/Proximo/ProximoListScreen'; | ||||
| import AboutDependenciesScreen from '../screens/About/AboutDependenciesScreen'; | ||||
| 
 | ||||
|  | @ -15,6 +15,8 @@ export default createAppContainer( | |||
|             Tabs: MainTabNavigator, | ||||
|             // Drawer: MainDrawerNavigator,
 | ||||
|             ProximoListScreen: {screen: ProximoListScreen}, | ||||
|             SettingsScreen: {screen: SettingsScreen}, | ||||
|             AboutScreen: {screen: AboutScreen}, | ||||
|             AboutDependenciesScreen: {screen: AboutDependenciesScreen}, | ||||
|         }, | ||||
|         { | ||||
|  |  | |||
|  | @ -9,7 +9,7 @@ import PlanexScreen from '../screens/PlanexScreen'; | |||
| import CustomMaterialIcon from "../components/CustomMaterialIcon"; | ||||
| 
 | ||||
| const TAB_ICONS = { | ||||
|     Home: 'home', | ||||
|     Home: 'coffee', | ||||
|     Planning: 'calendar-range', | ||||
|     Proxiwash: 'washing-machine', | ||||
|     Proximo: 'shopping', | ||||
|  |  | |||
|  | @ -163,7 +163,7 @@ export default class AboutScreen extends React.Component<Props> { | |||
|         const nav = this.props.navigation; | ||||
|         return ( | ||||
|             <Container> | ||||
|                 <CustomHeader navigation={nav} title={i18n.t('screens.about')}/> | ||||
|                 <CustomHeader navigation={nav} title={i18n.t('screens.about')} hasBackButton={true}/> | ||||
|                 <Content padder> | ||||
|                     <Card> | ||||
|                         <CardItem> | ||||
|  |  | |||
|  | @ -2,8 +2,7 @@ | |||
| 
 | ||||
| import * as React from 'react'; | ||||
| import {Platform, View} from 'react-native'; | ||||
| import {Container, Right, Spinner} from 'native-base'; | ||||
| import CustomHeader from "../components/CustomHeader"; | ||||
| import {Spinner} from 'native-base'; | ||||
| import WebView from "react-native-webview"; | ||||
| import Touchable from "react-native-platform-touchable"; | ||||
| import CustomMaterialIcon from "../components/CustomMaterialIcon"; | ||||
|  | @ -36,15 +35,13 @@ export default class PlanningScreen extends React.Component<Props, State> { | |||
| 
 | ||||
|     getRefreshButton() { | ||||
|         return ( | ||||
|             <Right> | ||||
|                 <Touchable | ||||
|                     style={{padding: 6}} | ||||
|                     onPress={() => this.refreshWebview()}> | ||||
|                     <CustomMaterialIcon | ||||
|                         color={Platform.OS === 'ios' ? ThemeManager.getCurrentThemeVariables().brandPrimary : "#fff"} | ||||
|                         icon="refresh"/> | ||||
|                 </Touchable> | ||||
|             </Right> | ||||
|             <Touchable | ||||
|                 style={{padding: 6}} | ||||
|                 onPress={() => this.refreshWebview()}> | ||||
|                 <CustomMaterialIcon | ||||
|                     color={Platform.OS === 'ios' ? ThemeManager.getCurrentThemeVariables().brandPrimary : "#fff"} | ||||
|                     icon="refresh"/> | ||||
|             </Touchable> | ||||
|         ); | ||||
|     }; | ||||
| 
 | ||||
|  | @ -56,7 +53,7 @@ export default class PlanningScreen extends React.Component<Props, State> { | |||
|     render() { | ||||
|         const nav = this.props.navigation; | ||||
|         return ( | ||||
|             <BaseContainer navigation={nav} headerTitle={'Planex'} headerRightMenu={this.getRefreshButton()}> | ||||
|             <BaseContainer navigation={nav} headerTitle={'Planex'} headerRightButton={this.getRefreshButton()}> | ||||
|                 <WebView | ||||
|                     ref={ref => (this.webview = ref)} | ||||
|                     source={{uri: PLANEX_URL}} | ||||
|  |  | |||
|  | @ -21,6 +21,8 @@ import i18n from "i18n-js"; | |||
| import {NavigationActions, StackActions} from "react-navigation"; | ||||
| import CustomMaterialIcon from "../components/CustomMaterialIcon"; | ||||
| import AsyncStorageManager from "../utils/AsyncStorageManager"; | ||||
| import Touchable from "react-native-platform-touchable"; | ||||
| import {Platform} from "react-native"; | ||||
| 
 | ||||
| type Props = { | ||||
|     navigation: Object, | ||||
|  | @ -170,11 +172,24 @@ export default class SettingsScreen extends React.Component<Props, State> { | |||
|         ); | ||||
|     } | ||||
| 
 | ||||
|     getRightButton() { | ||||
|         return ( | ||||
|             <Touchable | ||||
|                 style={{padding: 6}} | ||||
|                 onPress={() => this.props.navigation.navigate('AboutScreen')}> | ||||
|                 <CustomMaterialIcon | ||||
|                     color={Platform.OS === 'ios' ? ThemeManager.getCurrentThemeVariables().brandPrimary : "#fff"} | ||||
|                     icon="information"/> | ||||
|             </Touchable> | ||||
|         ); | ||||
|     } | ||||
| 
 | ||||
|     render() { | ||||
|         const nav = this.props.navigation; | ||||
|         return ( | ||||
|             <Container> | ||||
|                 <CustomHeader navigation={nav} title={i18n.t('screens.settings')}/> | ||||
|                 <CustomHeader navigation={nav} title={i18n.t('screens.settings')} hasBackButton={true} | ||||
|                 rightButton={this.getRightButton()}/> | ||||
|                 <Content padder> | ||||
|                     <Card> | ||||
|                         <CardItem header> | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue