Working EN traduction + wait page + permission page

This commit is contained in:
Sebastien Riviere
2026-02-21 02:46:58 +01:00
parent 76ee9674de
commit 28e81894ce
19 changed files with 299 additions and 91 deletions

View File

@@ -1,7 +1,39 @@
import { Text } from 'react-native';
//React
import { StyleSheet, Text, View, Image } from 'react-native';
import { useTranslation } from 'react-i18next';
const LocationPermission = () => {
return <Text>{"Veuillez activer la géolocalisation en arrière plan dans les paramètres, puis relancez l'application."}</Text>;
const { t } = useTranslation();
return (<>
<View style={styles.container}>
<Image style={styles.image} source={require("@/assets/images/placement.png")} />
<Text style={styles.title}>{t("location-permission.title")}</Text>
<Text style={styles.subtitle}>{t("location-permission.subtitle")}</Text>
</View>
</>);
};
export default LocationPermission;
const styles = StyleSheet.create({
container: {
flex: 1,
alignItems: "center",
justifyContent: "center",
padding: 20,
gap: 20
},
image: {
width: 150,
height: 150,
marginTop: -100,
},
title: {
fontSize: 20,
fontWeight: "bold",
},
subtitle: {
fontSize: 15,
},
});

View File

@@ -1,6 +1,6 @@
// React
import { useState } from 'react';
import { ScrollView, View, Text, StyleSheet, Image, Alert, TouchableHighlight } from 'react-native';
import { Keyboard, ScrollView, View, Text, StyleSheet, Image, Alert, TouchableHighlight } from 'react-native';
import { useTranslation } from 'react-i18next';
// Components
import { TouchableImage } from '@/components/common/Image';
@@ -28,7 +28,9 @@ const Login = () => {
const regex = /^\d{6}$/;
if (!regex.test(teamId)) {
setTimeout(() => Alert.alert(t("error.title"), t("error.invalid_team_id")), 100);
Keyboard.dismiss();
Alert.alert(t("error.default.title"), t("error.default.invalid_team_id"));
setIsSubmitting(false);
return;
}
@@ -39,10 +41,12 @@ const Login = () => {
uploadTeamImage(teamId, image?.uri);
setTeamId("");
} else {
setTimeout(() => Alert.alert(t("error.title"), t("error.unknown_team_id")), 100);
Keyboard.dismiss();
Alert.alert(t("error.default.title"), t("error.default.unknown_team_id"));
}
} catch (error) {
setTimeout(() => Alert.alert(t("error.title"), t("error.server_connection")), 100);
Keyboard.dismiss();
Alert.alert(t("error.default.title"), t("error.default.server_connection"));
} finally {
setIsSubmitting(false);
}
@@ -53,20 +57,20 @@ const Login = () => {
<View style={styles.transitionContainer}>
<View style={styles.subContainer}>
<Image style={styles.logoImage} source={require('@/assets/images/logo/logo_traque.png')}/>
<Text style={styles.logoText}>{t("index.header.title")}</Text>
<Text style={styles.logoText}>{t("login.header.title")}</Text>
</View>
<View style={styles.subContainer}>
<CustomTextInput value={teamId} inputMode="numeric" placeholder={t("index.form.team_id_input")} style={styles.input} onChangeText={setTeamId}/>
<CustomTextInput value={teamId} inputMode="numeric" placeholder={t("login.form.team_id_input")} style={styles.input} onChangeText={setTeamId}/>
</View>
<View style={styles.subContainer}>
<Text style={{fontSize: 15}}>{t("index.form.image_label")}</Text>
<Text style={{fontSize: 13, marginBottom: 3}}>{t("index.form.image_sublabel")}</Text>
<Text style={{fontSize: 15}}>{t("login.form.image_label")}</Text>
<Text style={{fontSize: 13, marginBottom: 3}}>{t("login.form.image_sublabel")}</Text>
<TouchableImage source={image ? {uri: image.uri} : require('@/assets/images/missing_image.jpg')} onPress={pickImage}/>
</View>
<View style={styles.subContainer}>
<View style={styles.buttonContainer}>
<TouchableHighlight style={styles.button} onPress={handleSubmit}>
<Text style={styles.buttonLabel}>{isSubmitting ? "..." : t("index.form.validate_button")}</Text>
<Text style={styles.buttonLabel}>{isSubmitting ? "..." : t("login.form.validate_button")}</Text>
</TouchableHighlight>
</View>
</View>