Compare commits
7 commits
7162978503
...
a779a3049e
| Author | SHA1 | Date | |
|---|---|---|---|
| a779a3049e | |||
| cca091beef | |||
| 8c9e068faa | |||
| 9e251ad150 | |||
| eb71316995 | |||
| 03d57e91d9 | |||
| 24106e9791 |
20 changed files with 251 additions and 168 deletions
14
Changelog.md
14
Changelog.md
|
|
@ -2,6 +2,20 @@
|
|||
|
||||
Pensez à garder l'appli à jour pour profiter des dernières fonctionnalités !
|
||||
|
||||
- **v2.0.0** - _12/03/2020_
|
||||
- Nouvelle interface !
|
||||
- Amélioration des performances
|
||||
- Amélioration de la vitesse de démarrage
|
||||
- _Notes de développement :_
|
||||
- Utilisation de react-native-paper à la place de native base
|
||||
|
||||
- **v1.5.2** - _25/02/2020_
|
||||
- Correction d'un problème d'affichage des détail du Proximo
|
||||
|
||||
- **v1.5.1** - _24/02/2020_
|
||||
- Amélioration des performances
|
||||
- Utilisation d'un tri des catégories du Proximo plus cohérent
|
||||
|
||||
- **v1.5.0** - _05/02/2020_
|
||||
- Amélioration des performances de l'application
|
||||
- Amélioration du menu gauche
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
import * as React from 'react';
|
||||
import {Avatar, Card, List, withTheme} from 'react-native-paper';
|
||||
import {StyleSheet} from "react-native";
|
||||
import {StyleSheet, View} from "react-native";
|
||||
import {DrawerNavigationProp} from "@react-navigation/drawer";
|
||||
import type {CustomTheme} from "../../managers/ThemeManager";
|
||||
import i18n from 'i18n-js';
|
||||
|
|
@ -25,31 +25,42 @@ class ActionsDashBoardItem extends React.Component<Props> {
|
|||
render() {
|
||||
const isLoggedIn = this.props.isLoggedIn;
|
||||
return (
|
||||
<Card style={{
|
||||
...styles.card,
|
||||
borderColor: this.props.theme.colors.primary,
|
||||
}}>
|
||||
<View>
|
||||
<Card style={{
|
||||
...styles.card,
|
||||
borderColor: this.props.theme.colors.primary,
|
||||
}}>
|
||||
<List.Item
|
||||
title={i18n.t("homeScreen.dashboard.amicaleTitle")}
|
||||
description={isLoggedIn
|
||||
? i18n.t("homeScreen.dashboard.amicaleConnected")
|
||||
: i18n.t("homeScreen.dashboard.amicaleConnect")}
|
||||
left={props => <Avatar.Image
|
||||
{...props}
|
||||
size={40}
|
||||
source={ICON_AMICALE}
|
||||
style={styles.avatar}/>}
|
||||
right={props => <List.Icon {...props} icon={isLoggedIn
|
||||
? "chevron-right"
|
||||
: "login"}/>}
|
||||
onPress={isLoggedIn
|
||||
? () => this.props.navigation.navigate("services", {
|
||||
screen: 'index'
|
||||
})
|
||||
: () => this.props.navigation.navigate("login")}
|
||||
style={styles.list}
|
||||
/>
|
||||
</Card>
|
||||
<List.Item
|
||||
title={i18n.t("homeScreen.dashboard.amicaleTitle")}
|
||||
description={isLoggedIn
|
||||
? i18n.t("homeScreen.dashboard.amicaleConnected")
|
||||
: i18n.t("homeScreen.dashboard.amicaleConnect")}
|
||||
left={props => <Avatar.Image
|
||||
{...props}
|
||||
size={40}
|
||||
source={ICON_AMICALE}
|
||||
style={styles.avatar}/>}
|
||||
right={props => <List.Icon {...props} icon={isLoggedIn
|
||||
? "chevron-right"
|
||||
: "login"}/>}
|
||||
onPress={isLoggedIn
|
||||
? () => this.props.navigation.navigate("services", {
|
||||
screen: 'index'
|
||||
})
|
||||
: () => this.props.navigation.navigate("login")}
|
||||
style={styles.list}
|
||||
title={i18n.t("feedbackScreen.homeButtonTitle")}
|
||||
description={i18n.t("feedbackScreen.homeButtonSubtitle")}
|
||||
left={props => <List.Icon {...props} icon={"bug"}/>}
|
||||
right={props => <List.Icon {...props} icon={"chevron-right"}/>}
|
||||
onPress={() => this.props.navigation.navigate("feedback")}
|
||||
style={{...styles.list, marginLeft: 10, marginRight: 10}}
|
||||
/>
|
||||
</Card>
|
||||
</View>
|
||||
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -57,9 +68,7 @@ class ActionsDashBoardItem extends React.Component<Props> {
|
|||
const styles = StyleSheet.create({
|
||||
card: {
|
||||
width: 'auto',
|
||||
marginLeft: 10,
|
||||
marginRight: 10,
|
||||
marginTop: 10,
|
||||
margin: 10,
|
||||
borderWidth: 1,
|
||||
},
|
||||
avatar: {
|
||||
|
|
|
|||
|
|
@ -137,6 +137,7 @@ class CustomTabBar extends React.Component<Props, State> {
|
|||
onLongPress={onLongPress}
|
||||
focused={isFocused}
|
||||
key={route.key}
|
||||
tabBarHeight={CustomTabBar.TAB_BAR_HEIGHT}
|
||||
/>
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -4,13 +4,13 @@ import * as React from 'react';
|
|||
import {Image, Platform, View} from "react-native";
|
||||
import {FAB, TouchableRipple, withTheme} from 'react-native-paper';
|
||||
import * as Animatable from "react-native-animatable";
|
||||
import CustomTabBar from "./CustomTabBar";
|
||||
|
||||
type Props = {
|
||||
focused: boolean,
|
||||
onPress: Function,
|
||||
onLongPress: Function,
|
||||
theme: Object,
|
||||
tabBarHeight: number,
|
||||
}
|
||||
|
||||
const AnimatedFAB = Animatable.createAnimatableComponent(FAB);
|
||||
|
|
@ -81,7 +81,7 @@ class TabHomeIcon extends React.Component<Props> {
|
|||
bottom: 0,
|
||||
left: 0,
|
||||
width: '100%',
|
||||
height: CustomTabBar.TAB_BAR_HEIGHT + 30,
|
||||
height: this.props.tabBarHeight + 30,
|
||||
marginBottom: -15,
|
||||
}}
|
||||
>
|
||||
|
|
|
|||
|
|
@ -12,23 +12,24 @@ import TetrisScreen from "../screens/Tetris/TetrisScreen";
|
|||
import VoteScreen from "../screens/Amicale/VoteScreen";
|
||||
import LoginScreen from "../screens/Amicale/LoginScreen";
|
||||
import {Platform} from "react-native";
|
||||
import AvailableRoomScreen from "../screens/Websites/AvailableRoomScreen";
|
||||
import BibScreen from "../screens/Websites/BibScreen";
|
||||
import AvailableRoomScreen from "../screens/Services/Websites/AvailableRoomScreen";
|
||||
import BibScreen from "../screens/Services/Websites/BibScreen";
|
||||
import SelfMenuScreen from "../screens/Services/SelfMenuScreen";
|
||||
import ProximoMainScreen from "../screens/Proximo/ProximoMainScreen";
|
||||
import ProximoListScreen from "../screens/Proximo/ProximoListScreen";
|
||||
import ProximoAboutScreen from "../screens/Proximo/ProximoAboutScreen";
|
||||
import {AmicaleWebsiteScreen} from "../screens/Websites/AmicaleWebsiteScreen";
|
||||
import {ElusEtudiantsWebsiteScreen} from "../screens/Websites/ElusEtudiantsWebsiteScreen";
|
||||
import {WiketudWebsiteScreen} from "../screens/Websites/WiketudWebsiteScreen";
|
||||
import {TutorInsaWebsiteScreen} from "../screens/Websites/TutorInsaWebsiteScreen";
|
||||
import {ENTWebsiteScreen} from "../screens/Websites/ENTWebsiteScreen";
|
||||
import {BlueMindWebsiteScreen} from "../screens/Websites/BlueMindWebsiteScreen";
|
||||
import ProximoMainScreen from "../screens/Services/Proximo/ProximoMainScreen";
|
||||
import ProximoListScreen from "../screens/Services/Proximo/ProximoListScreen";
|
||||
import ProximoAboutScreen from "../screens/Services/Proximo/ProximoAboutScreen";
|
||||
import {AmicaleWebsiteScreen} from "../screens/Services/Websites/AmicaleWebsiteScreen";
|
||||
import {ElusEtudiantsWebsiteScreen} from "../screens/Services/Websites/ElusEtudiantsWebsiteScreen";
|
||||
import {WiketudWebsiteScreen} from "../screens/Services/Websites/WiketudWebsiteScreen";
|
||||
import {TutorInsaWebsiteScreen} from "../screens/Services/Websites/TutorInsaWebsiteScreen";
|
||||
import {ENTWebsiteScreen} from "../screens/Services/Websites/ENTWebsiteScreen";
|
||||
import {BlueMindWebsiteScreen} from "../screens/Services/Websites/BlueMindWebsiteScreen";
|
||||
import ProfileScreen from "../screens/Amicale/ProfileScreen";
|
||||
import ClubListScreen from "../screens/Amicale/Clubs/ClubListScreen";
|
||||
import ClubAboutScreen from "../screens/Amicale/Clubs/ClubAboutScreen";
|
||||
import ClubDisplayScreen from "../screens/Amicale/Clubs/ClubDisplayScreen";
|
||||
import {createScreenCollapsibleStack, getWebsiteStack} from "../utils/CollapsibleUtils";
|
||||
import BugReportScreen from "../screens/Other/FeedbackScreen";
|
||||
|
||||
const modalTransition = Platform.OS === 'ios' ? TransitionPresets.ModalPresentationIOS : TransitionPresets.ModalSlideFromBottomIOS;
|
||||
|
||||
|
|
@ -158,6 +159,14 @@ function MainStackComponent(props: { createTabNavigator: () => React.Node }) {
|
|||
title: i18n.t('screens.vote'),
|
||||
}}
|
||||
/>
|
||||
|
||||
<MainStack.Screen
|
||||
name="feedback"
|
||||
component={BugReportScreen}
|
||||
options={{
|
||||
title: i18n.t('screens.feedback'),
|
||||
}}
|
||||
/>
|
||||
</MainStack.Navigator>
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,23 +5,12 @@ import {FlatList, Linking, Platform, View} from 'react-native';
|
|||
import i18n from "i18n-js";
|
||||
import appJson from '../../../app';
|
||||
import AsyncStorageManager from "../../managers/AsyncStorageManager";
|
||||
import CustomModal from "../../components/Overrides/CustomModal";
|
||||
import {Avatar, Button, Card, List, Text, Title, withTheme} from 'react-native-paper';
|
||||
import {Avatar, Card, List, Title, withTheme} from 'react-native-paper';
|
||||
|
||||
const links = {
|
||||
appstore: 'https://apps.apple.com/us/app/campus-amicale-insat/id1477722148',
|
||||
playstore: 'https://play.google.com/store/apps/details?id=fr.amicaleinsat.application',
|
||||
git: 'https://git.etud.insa-toulouse.fr/vergnet/application-amicale/src/branch/master/README.md',
|
||||
bugsMail: 'mailto:vergnet@etud.insa-toulouse.fr?' +
|
||||
'subject=' +
|
||||
'[BUG] Application Amicale INSA Toulouse' +
|
||||
'&body=' +
|
||||
'Coucou Arnaud ça bug c\'est nul,\n\n' +
|
||||
'Informations sur ton système si tu sais (iOS ou Android, modèle du tel, version):\n\n\n' +
|
||||
'Nature du problème :\n\n\n' +
|
||||
'Étapes pour reproduire ce pb :\n\n\n\n' +
|
||||
'Stp corrige le pb, bien cordialement.',
|
||||
bugsGit: 'https://git.etud.insa-toulouse.fr/vergnet/application-amicale/issues',
|
||||
changelog: 'https://git.etud.insa-toulouse.fr/vergnet/application-amicale/src/branch/master/Changelog.md',
|
||||
license: 'https://git.etud.insa-toulouse.fr/vergnet/application-amicale/src/branch/master/LICENSE',
|
||||
authorMail: "mailto:vergnet@etud.insa-toulouse.fr?" +
|
||||
|
|
@ -37,6 +26,7 @@ const links = {
|
|||
"Coucou !\n\n",
|
||||
yohanLinkedin: 'https://www.linkedin.com/in/yohan-simard',
|
||||
react: 'https://facebook.github.io/react-native/',
|
||||
expo: 'https://expo.io/',
|
||||
};
|
||||
|
||||
type Props = {
|
||||
|
|
@ -77,9 +67,9 @@ class AboutScreen extends React.Component<Props, State> {
|
|||
showChevron: true
|
||||
},
|
||||
{
|
||||
onPressCallback: () => this.openBugReportModal(),
|
||||
onPressCallback: () => this.props.navigation.navigate("feedback"),
|
||||
icon: 'bug',
|
||||
text: i18n.t('aboutScreen.bugs'),
|
||||
text: i18n.t("feedbackScreen.homeButtonTitle"),
|
||||
showChevron: true
|
||||
},
|
||||
{
|
||||
|
|
@ -164,6 +154,12 @@ class AboutScreen extends React.Component<Props, State> {
|
|||
text: i18n.t('aboutScreen.reactNative'),
|
||||
showChevron: true
|
||||
},
|
||||
{
|
||||
onPressCallback: () => openWebLink(links.react),
|
||||
icon: 'language-javascript',
|
||||
text: i18n.t('aboutScreen.expo'),
|
||||
showChevron: true
|
||||
},
|
||||
{
|
||||
onPressCallback: () => this.props.navigation.navigate('dependencies'),
|
||||
icon: 'developer-board',
|
||||
|
|
@ -186,21 +182,11 @@ class AboutScreen extends React.Component<Props, State> {
|
|||
},
|
||||
];
|
||||
|
||||
getCardItem: Function;
|
||||
getMainCard: Function;
|
||||
onModalRef: Function;
|
||||
onPressMail: Function;
|
||||
onPressGit: Function;
|
||||
|
||||
colors: Object;
|
||||
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.getCardItem = this.getCardItem.bind(this);
|
||||
this.getMainCard = this.getMainCard.bind(this);
|
||||
this.onModalRef = this.onModalRef.bind(this);
|
||||
this.onPressMail = openWebLink.bind(this, links.bugsMail);
|
||||
this.onPressGit = openWebLink.bind(this, links.bugsGit);
|
||||
this.colors = props.theme.colors;
|
||||
}
|
||||
|
||||
|
|
@ -333,7 +319,7 @@ class AboutScreen extends React.Component<Props, State> {
|
|||
*
|
||||
* @returns {*}
|
||||
*/
|
||||
getCardItem({item}: Object) {
|
||||
getCardItem = ({item}: Object) => {
|
||||
let shouldShow = item === undefined
|
||||
|| !item.showOnlyInDebug
|
||||
|| (item.showOnlyInDebug && this.state.isDebugUnlocked);
|
||||
|
|
@ -359,7 +345,7 @@ class AboutScreen extends React.Component<Props, State> {
|
|||
}
|
||||
} else
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Tries to unlock debug mode
|
||||
|
|
@ -380,63 +366,13 @@ class AboutScreen extends React.Component<Props, State> {
|
|||
AsyncStorageManager.getInstance().savePref(key, '1');
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the bug report modal's content
|
||||
*
|
||||
* @return {*}
|
||||
*/
|
||||
getBugReportModal() {
|
||||
return (
|
||||
<View style={{
|
||||
flex: 1,
|
||||
padding: 20
|
||||
}}>
|
||||
<Title>{i18n.t('aboutScreen.bugs')}</Title>
|
||||
<Text>
|
||||
{i18n.t('aboutScreen.bugsDescription')}
|
||||
</Text>
|
||||
<Button
|
||||
icon="email"
|
||||
mode="contained"
|
||||
style={{
|
||||
marginTop: 20,
|
||||
marginLeft: 'auto',
|
||||
marginRight: 'auto',
|
||||
}}
|
||||
onPress={this.onPressMail}>
|
||||
{i18n.t('aboutScreen.bugsMail')}
|
||||
</Button>
|
||||
<Button
|
||||
icon="git"
|
||||
mode="contained"
|
||||
style={{
|
||||
marginTop: 20,
|
||||
marginLeft: 'auto',
|
||||
marginRight: 'auto',
|
||||
}}
|
||||
onPress={this.onPressGit}>
|
||||
{i18n.t('aboutScreen.bugsGit')}
|
||||
</Button>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* opens the bug report modal
|
||||
*/
|
||||
openBugReportModal() {
|
||||
if (this.modalRef) {
|
||||
this.modalRef.open();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a card, depending on the given item's id
|
||||
*
|
||||
* @param item The item to show
|
||||
* @return {*}
|
||||
*/
|
||||
getMainCard({item}: Object) {
|
||||
getMainCard = ({item}: Object) => {
|
||||
switch (item.id) {
|
||||
case 'app':
|
||||
return this.getAppCard();
|
||||
|
|
@ -446,29 +382,15 @@ class AboutScreen extends React.Component<Props, State> {
|
|||
return this.getTechnoCard();
|
||||
}
|
||||
return <View/>;
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback used when receiving the modal ref
|
||||
*
|
||||
* @param ref
|
||||
*/
|
||||
onModalRef(ref: Object) {
|
||||
this.modalRef = ref;
|
||||
}
|
||||
};
|
||||
|
||||
render() {
|
||||
return (
|
||||
<View style={{padding: 5}}>
|
||||
<CustomModal onRef={this.onModalRef}>
|
||||
{this.getBugReportModal()}
|
||||
</CustomModal>
|
||||
<FlatList
|
||||
style={{padding: 5}}
|
||||
data={this.dataOrder}
|
||||
renderItem={this.getMainCard}
|
||||
/>
|
||||
</View>
|
||||
<FlatList
|
||||
style={{padding: 5}}
|
||||
data={this.dataOrder}
|
||||
renderItem={this.getMainCard}
|
||||
/>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
110
src/screens/Other/FeedbackScreen.js
Normal file
110
src/screens/Other/FeedbackScreen.js
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
// @flow
|
||||
|
||||
import * as React from 'react';
|
||||
import {Avatar, Button, Card, Paragraph, withTheme} from "react-native-paper";
|
||||
import i18n from "i18n-js";
|
||||
import {ScrollView} from "react-native";
|
||||
import {Linking} from "expo";
|
||||
import type {CustomTheme} from "../../managers/ThemeManager";
|
||||
|
||||
type Props = {
|
||||
theme: CustomTheme
|
||||
};
|
||||
|
||||
const links = {
|
||||
bugsMail: `mailto:app@amicale-insat.fr
|
||||
?subject=[BUG] Application CAMPUS
|
||||
&body=Coucou Arnaud ça bug c'est nul,\n\n
|
||||
Informations sur ton système si tu sais (iOS ou Android, modèle du tel, version):\n\n\n
|
||||
Nature du problème :\n\n\n
|
||||
Étapes pour reproduire ce pb :\n\n\n\n
|
||||
Stp corrige le pb, bien cordialement.`,
|
||||
bugsGit: 'https://git.etud.insa-toulouse.fr/vergnet/application-amicale/issues/new',
|
||||
facebook: "https://www.facebook.com/campus.insat",
|
||||
feedbackMail: `mailto:app@amicale-insat.fr
|
||||
?subject=[FEEDBACK] Application CAMPUS
|
||||
&body=Coucou Arnaud j'ai du feedback\n\n\n\nBien cordialement.`,
|
||||
feedbackGit: "https://git.etud.insa-toulouse.fr/vergnet/application-amicale/issues/new",
|
||||
}
|
||||
|
||||
class FeedbackScreen extends React.Component<Props> {
|
||||
|
||||
getButtons(isBug: boolean) {
|
||||
return (
|
||||
<Card.Actions style={{
|
||||
flex: 1,
|
||||
flexWrap: 'wrap',
|
||||
}}>
|
||||
<Button
|
||||
icon="email"
|
||||
mode="contained"
|
||||
style={{
|
||||
marginLeft: 'auto',
|
||||
marginTop: 5,
|
||||
}}
|
||||
onPress={() => Linking.openURL(isBug ? links.bugsMail : links.feedbackMail)}>
|
||||
MAIL
|
||||
</Button>
|
||||
<Button
|
||||
icon="git"
|
||||
mode="contained"
|
||||
style={{
|
||||
marginLeft: 'auto',
|
||||
marginTop: 5,
|
||||
}}
|
||||
onPress={() => Linking.openURL(isBug ? links.bugsGit : links.feedbackGit)}>
|
||||
GITEA
|
||||
</Button>
|
||||
<Button
|
||||
icon="facebook"
|
||||
mode="contained"
|
||||
style={{
|
||||
marginLeft: 'auto',
|
||||
marginTop: 5,
|
||||
}}
|
||||
onPress={() => Linking.openURL(links.facebook)}>
|
||||
Facebook
|
||||
</Button>
|
||||
</Card.Actions>
|
||||
);
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<ScrollView style={{padding: 5}}>
|
||||
<Card>
|
||||
<Card.Title
|
||||
title={i18n.t('feedbackScreen.bugs')}
|
||||
subtitle={i18n.t('feedbackScreen.bugsSubtitle')}
|
||||
left={(props) => <Avatar.Icon {...props} icon="bug"/>}
|
||||
/>
|
||||
<Card.Content>
|
||||
<Paragraph>
|
||||
{i18n.t('feedbackScreen.bugsDescription')}
|
||||
</Paragraph>
|
||||
<Paragraph style={{color: this.props.theme.colors.primary}}>
|
||||
{i18n.t('feedbackScreen.contactMeans')}
|
||||
</Paragraph>
|
||||
</Card.Content>
|
||||
{this.getButtons(true)}
|
||||
</Card>
|
||||
|
||||
<Card style={{marginTop: 20, marginBottom: 10}}>
|
||||
<Card.Title
|
||||
title={i18n.t('feedbackScreen.feedback')}
|
||||
subtitle={i18n.t('feedbackScreen.feedbackSubtitle')}
|
||||
left={(props) => <Avatar.Icon {...props} icon="comment"/>}
|
||||
/>
|
||||
<Card.Content>
|
||||
<Paragraph>
|
||||
{i18n.t('feedbackScreen.feedbackDescription')}
|
||||
</Paragraph>
|
||||
</Card.Content>
|
||||
{this.getButtons(false)}
|
||||
</Card>
|
||||
</ScrollView>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default withTheme(FeedbackScreen);
|
||||
|
|
@ -4,7 +4,7 @@ import * as React from 'react';
|
|||
import {Image, ScrollView, View} from 'react-native';
|
||||
import i18n from "i18n-js";
|
||||
import {Card, List, Paragraph, Text} from 'react-native-paper';
|
||||
import CustomTabBar from "../../components/Tabbar/CustomTabBar";
|
||||
import CustomTabBar from "../../../components/Tabbar/CustomTabBar";
|
||||
|
||||
type Props = {
|
||||
navigation: Object,
|
||||
|
|
@ -3,13 +3,13 @@
|
|||
import * as React from 'react';
|
||||
import {Animated, Image, Platform, ScrollView, View} from "react-native";
|
||||
import i18n from "i18n-js";
|
||||
import CustomModal from "../../components/Overrides/CustomModal";
|
||||
import CustomModal from "../../../components/Overrides/CustomModal";
|
||||
import {RadioButton, Searchbar, Subheading, Text, Title, withTheme} from "react-native-paper";
|
||||
import {stringMatchQuery} from "../../utils/Search";
|
||||
import ProximoListItem from "../../components/Lists/Proximo/ProximoListItem";
|
||||
import MaterialHeaderButtons, {Item} from "../../components/Overrides/CustomHeaderButton";
|
||||
import {withCollapsible} from "../../utils/withCollapsible";
|
||||
import CustomTabBar from "../../components/Tabbar/CustomTabBar";
|
||||
import {stringMatchQuery} from "../../../utils/Search";
|
||||
import ProximoListItem from "../../../components/Lists/Proximo/ProximoListItem";
|
||||
import MaterialHeaderButtons, {Item} from "../../../components/Overrides/CustomHeaderButton";
|
||||
import {withCollapsible} from "../../../utils/withCollapsible";
|
||||
import CustomTabBar from "../../../components/Tabbar/CustomTabBar";
|
||||
|
||||
function sortPrice(a, b) {
|
||||
return a.price - b.price;
|
||||
|
|
@ -3,9 +3,9 @@
|
|||
import * as React from 'react';
|
||||
import {View} from 'react-native'
|
||||
import i18n from "i18n-js";
|
||||
import WebSectionList from "../../components/Screens/WebSectionList";
|
||||
import WebSectionList from "../../../components/Screens/WebSectionList";
|
||||
import {List, withTheme} from 'react-native-paper';
|
||||
import MaterialHeaderButtons, {Item} from "../../components/Overrides/CustomHeaderButton";
|
||||
import MaterialHeaderButtons, {Item} from "../../../components/Overrides/CustomHeaderButton";
|
||||
|
||||
const DATA_URL = "https://etud.insa-toulouse.fr/~proximo/data/stock-v2.json";
|
||||
const LIST_ITEM_HEIGHT = 84;
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
// @flow
|
||||
|
||||
import * as React from 'react';
|
||||
import WebViewScreen from "../../components/Screens/WebViewScreen";
|
||||
import WebViewScreen from "../../../components/Screens/WebViewScreen";
|
||||
import {CommonActions} from "@react-navigation/native";
|
||||
|
||||
const URL = 'https://www.amicale-insat.fr/';
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
// @flow
|
||||
|
||||
import * as React from 'react';
|
||||
import WebViewScreen from "../../components/Screens/WebViewScreen";
|
||||
import WebViewScreen from "../../../components/Screens/WebViewScreen";
|
||||
|
||||
type Props = {
|
||||
navigation: Object,
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
// @flow
|
||||
|
||||
import * as React from 'react';
|
||||
import WebViewScreen from "../../components/Screens/WebViewScreen";
|
||||
import WebViewScreen from "../../../components/Screens/WebViewScreen";
|
||||
|
||||
type Props = {
|
||||
navigation: Object,
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
// @flow
|
||||
|
||||
import * as React from 'react';
|
||||
import WebViewScreen from "../../components/Screens/WebViewScreen";
|
||||
import WebViewScreen from "../../../components/Screens/WebViewScreen";
|
||||
|
||||
const URL = 'https://etud-mel.insa-toulouse.fr/webmail/';
|
||||
/**
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
// @flow
|
||||
|
||||
import * as React from 'react';
|
||||
import WebViewScreen from "../../components/Screens/WebViewScreen";
|
||||
import WebViewScreen from "../../../components/Screens/WebViewScreen";
|
||||
|
||||
const URL = 'https://ent.insa-toulouse.fr/';
|
||||
/**
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
// @flow
|
||||
|
||||
import * as React from 'react';
|
||||
import WebViewScreen from "../../components/Screens/WebViewScreen";
|
||||
import WebViewScreen from "../../../components/Screens/WebViewScreen";
|
||||
|
||||
const URL = 'https://etud.insa-toulouse.fr/~eeinsat/';
|
||||
/**
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
// @flow
|
||||
|
||||
import * as React from 'react';
|
||||
import WebViewScreen from "../../components/Screens/WebViewScreen";
|
||||
import WebViewScreen from "../../../components/Screens/WebViewScreen";
|
||||
|
||||
const URL = 'https://www.etud.insa-toulouse.fr/~tutorinsa/';
|
||||
/**
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
// @flow
|
||||
|
||||
import * as React from 'react';
|
||||
import WebViewScreen from "../../components/Screens/WebViewScreen";
|
||||
import WebViewScreen from "../../../components/Screens/WebViewScreen";
|
||||
|
||||
const URL = 'https://wiki.etud.insa-toulouse.fr/';
|
||||
/**
|
||||
|
|
@ -24,7 +24,8 @@
|
|||
"logout": "Logout",
|
||||
"profile": "Profile",
|
||||
"vote": "Elections",
|
||||
"scanner": "Scanotron 3000"
|
||||
"scanner": "Scanotron 3000",
|
||||
"feedback": "Feedback"
|
||||
},
|
||||
"intro": {
|
||||
"slide1": {
|
||||
|
|
@ -99,19 +100,16 @@
|
|||
"aboutScreen": {
|
||||
"appstore": "See on the Appstore",
|
||||
"playstore": "See on the Playstore",
|
||||
"bugs": "Report Bugs",
|
||||
"bugsDescription": "Reporting bugs helps us make the app better. Please be as precise as possible when describing your problem!",
|
||||
"bugsMail": "Send a Mail",
|
||||
"bugsGit": "Open an issue on Git",
|
||||
"changelog": "Changelog",
|
||||
"license": "License",
|
||||
"debug": "Debug",
|
||||
"team": "Team",
|
||||
"author": "Author",
|
||||
"author": "Author and maintainer",
|
||||
"authorMail": "Send an email",
|
||||
"additionalDev": "Additional developer",
|
||||
"additionalDev": "Development help",
|
||||
"technologies": "Technologies",
|
||||
"reactNative": "Made with React Native",
|
||||
"expo": "Built with Expo",
|
||||
"libs": "Libraries used"
|
||||
},
|
||||
"proximoScreen": {
|
||||
|
|
@ -388,5 +386,16 @@
|
|||
},
|
||||
"planningScreen": {
|
||||
"invalidEvent": "Could not find the event. Please make sure the event you are trying to access is valid."
|
||||
},
|
||||
"feedbackScreen": {
|
||||
"bugs": "Report Bugs",
|
||||
"bugsSubtitle": "Did you find a bug? Let us know!",
|
||||
"bugsDescription": "Reporting bugs helps us make the app better. To do so, use one of the buttons below and be as precise as possible when describing your problem!",
|
||||
"feedback": "Feedback",
|
||||
"feedbackSubtitle": "Let us know what you think!",
|
||||
"feedbackDescription": "Do you have a feature you want to be added/changed/removed, want to give your opinion on the app or simply chat with the dev? Use one of the links below!",
|
||||
"contactMeans": "Using Gitea is recommended, to use it simply login with your INSA account.",
|
||||
"homeButtonTitle": "Feedback/Bug report",
|
||||
"homeButtonSubtitle": "Contact the devs"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,7 +24,8 @@
|
|||
"logout": "Se Déconnecter",
|
||||
"profile": "Profil",
|
||||
"vote": "Élections",
|
||||
"scanner": "Scanotron 3000"
|
||||
"scanner": "Scanotron 3000",
|
||||
"feedback": "Votre avis"
|
||||
},
|
||||
"intro": {
|
||||
"slide1": {
|
||||
|
|
@ -99,19 +100,16 @@
|
|||
"aboutScreen": {
|
||||
"appstore": "Voir sur l'Appstore",
|
||||
"playstore": "Voir sur le Playstore",
|
||||
"bugs": "Rapporter des Bugs",
|
||||
"bugsDescription": "Rapporter les bugs nous aide à améliorer l'appli. Merci de décrire votre problème le plus précisément possible !",
|
||||
"bugsMail": "Envoyer un Mail",
|
||||
"bugsGit": "Ouvrir un ticket sur Git",
|
||||
"changelog": "Historique des modifications",
|
||||
"license": "Licence",
|
||||
"debug": "Debug",
|
||||
"team": "Équipe",
|
||||
"author": "Auteur",
|
||||
"author": "Auteur et mainteneur",
|
||||
"authorMail": "Envoyer un mail",
|
||||
"additionalDev": "Développeur additionnel",
|
||||
"additionalDev": "Aide au développement",
|
||||
"technologies": "Technologies",
|
||||
"reactNative": "Créé avec React Native",
|
||||
"expo": "Compilé avec Expo",
|
||||
"libs": "Librairies utilisées"
|
||||
},
|
||||
"proximoScreen": {
|
||||
|
|
@ -388,5 +386,16 @@
|
|||
},
|
||||
"planningScreen": {
|
||||
"invalidEvent": "Impossible de trouver l'événement. Merci de vérifier que l'événement que vous voulez voir est valide."
|
||||
},
|
||||
"feedbackScreen": {
|
||||
"bugs": "Rapporter des Bugs",
|
||||
"bugsSubtitle": "Vous avez trouvé un bug ?",
|
||||
"bugsDescription": "Rapporter les bugs nous aide à améliorer l'appli. Pour cela, merci d'utiliser un des boutons ci-dessous et de décrire votre problème le plus précisément possible !",
|
||||
"feedback": "Feedback",
|
||||
"feedbackSubtitle": "Did nous ce que vous pensez!",
|
||||
"feedbackDescription": "Vous voulez voir une fonctionnalité ajoutée/modifiée/supprimée ?, vous voulez donner votre opinion sur l'appli ou simplement discuter avec les devs ? Utilisez un des liens ci-dessous !",
|
||||
"contactMeans": "L'utilisation de Gitea est recommandée, pour l'utiliser, connectez vous avec vos identifiants INSA.",
|
||||
"homeButtonTitle": "Feedback/Bugs",
|
||||
"homeButtonSubtitle": "Contacter les devs"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue