From 405c2ce49d5808f964128c57f5b838f314005a10 Mon Sep 17 00:00:00 2001 From: Don Wilfried Date: Fri, 15 Aug 2025 15:18:24 +0100 Subject: [PATCH] feat: Add offline supervisor info retrieval and update related components --- app/screens/login/CreateUserStep.js | 1 + app/screens/login/createAccount.js | 33 +++++++++++++++++++----- app/screens/splashscreen/SplashScreen.js | 26 ++++++++++++++++--- app/webservice/AuthApi.js | 3 +++ 4 files changed, 54 insertions(+), 9 deletions(-) diff --git a/app/screens/login/CreateUserStep.js b/app/screens/login/CreateUserStep.js index 59454e6..f1573e3 100644 --- a/app/screens/login/CreateUserStep.js +++ b/app/screens/login/CreateUserStep.js @@ -4,6 +4,7 @@ import Button from 'apsl-react-native-button'; import axios from 'axios'; import _ from 'lodash'; import isNil from 'lodash/isNil'; +import React from 'react'; import {Component} from 'react'; import { Alert, diff --git a/app/screens/login/createAccount.js b/app/screens/login/createAccount.js index 37ce805..49b28a3 100644 --- a/app/screens/login/createAccount.js +++ b/app/screens/login/createAccount.js @@ -17,7 +17,7 @@ import {responsiveHeight, responsiveWidth, responsiveFontSize} from 'react-nativ import {Fumi, Kaede} from 'react-native-textinput-effects' import * as Animatable from 'react-native-animatable' import Button from 'apsl-react-native-button' -import {categoryChild, getCodeInformation, getSupervisorInfoCode} from './../../webservice/AuthApi' +import {categoryChild, getCodeInformation, getSupervisorInfoCode, getSupervisorInfoCodeOffline} from './../../webservice/AuthApi' let theme = require('./../../utils/theme.json') let route = require('./../../route.json') @@ -515,8 +515,19 @@ export default class CreateAccount extends Component { } - retreiveSupervisorInfosCode() { - getSupervisorInfoCode().then((result) => { + // retreiveSupervisorInfosCode() { + // getSupervisorInfoCode().then((result) => { + // console.warn("SUPERVISOR INFOS CODE", JSON.stringify(result)); + // storeData(supervisorCode, JSON.stringify(result)).then(() => { + // this.setState({displayLoader: false}); + // }); + // }).catch(error => { + // //console.log(error); + // }) + // } + + retreiveSupervisorInfosCode() { + getSupervisorInfoCodeOffline().then((result) => { console.warn("SUPERVISOR INFOS CODE", JSON.stringify(result)); storeData(supervisorCode, JSON.stringify(result)).then(() => { this.setState({displayLoader: false}); @@ -614,7 +625,8 @@ export default class CreateAccount extends Component { } else { let codeSupervisorsData = JSON.parse(codeSupervisor); - let codeSupervisors = Object.keys(codeSupervisorsData); + let codeSupervisorsDataCodes = codeSupervisorsData.codes; + let codeSupervisors = Object.keys(codeSupervisorsData.codes); this.setState({codeSupervisorsData}); if (!codeSupervisors.includes(user.member)) { @@ -627,9 +639,18 @@ export default class CreateAccount extends Component { }], {cancelable: false}); } else { this.setState({isLoging: false}); - let resultInfosCode = codeSupervisorsData[user.member]; - this.setState({codeSupervisorData: resultInfosCode}); + let resultInfosCode = codeSupervisorsDataCodes[user.member]; + const completedResultInfosCode = { + ...resultInfosCode, + companies_types:codeSupervisorsData.globals.companies_types , + districts: codeSupervisorsData.globals.districts, + neighborhoods: codeSupervisorsData.globals.neighborhoods, + activities: codeSupervisorsData.globals.activities, + municipalities: codeSupervisorsData.globals.municipalities + }; + this.setState({codeSupervisorData: completedResultInfosCode}); + if (resultInfosCode.network.is_companies_network === "1" && resultInfosCode.child == "geolocated") { this.props.navigation.push(route.createUserStep, { type: this.type, diff --git a/app/screens/splashscreen/SplashScreen.js b/app/screens/splashscreen/SplashScreen.js index 18c554a..57d98fd 100644 --- a/app/screens/splashscreen/SplashScreen.js +++ b/app/screens/splashscreen/SplashScreen.js @@ -14,7 +14,8 @@ import { getPasObject, getPubActiveObject, getSupervisorInfoCode, - getAppVersion + getAppVersion, + getSupervisorInfoCodeOffline } from '../../webservice/AuthApi'; import {Bubbles, DoubleBounce, Bars, Pulse} from 'react-native-loader'; import Configuration from "../../webservice/persistences/Configuration"; @@ -58,7 +59,7 @@ export default class SplashScreen extends Component { // constructor(props) { super(props); - this.retreiveSupervisorInfosCode(); + // this.retreiveSupervisorInfosCode(); this.state = {} }; @@ -130,10 +131,29 @@ export default class SplashScreen extends Component { });*/ } + initializeOfflineMode = () => { + console.log("Initialisation du mode Hors Ligne..."); + getSupervisorInfoCodeOffline() + .then((result) => { + console.warn("SUPERVISOR INFOS CODE_", JSON.stringify(result)); + storeData(supervisorCode, JSON.stringify(result)) + .then(() => { + this.setState({ offlineInitialized: true, isLoading: false }); + }) + .catch(error => { + console.error("Erreur lors du stockage :", error); + this.setState({ isLoading: false }); + }); + }) + .catch(error => { + console.error("Erreur lors de la récupération des infos :", error); + }); + } componentDidMount() { console.log("ComponentDidMount===>>") - this.retreiveSupervisorInfosCode(); + this.initializeOfflineMode(); + // this.retreiveSupervisorInfosCode(); try { this.requestCameraPermission() } catch (e) { diff --git a/app/webservice/AuthApi.js b/app/webservice/AuthApi.js index 69d0d48..a2fcdd5 100644 --- a/app/webservice/AuthApi.js +++ b/app/webservice/AuthApi.js @@ -397,6 +397,9 @@ export const getTownInformationName = (town) => { export const getSupervisorInfoCode = () => { return queryData({"type": "all_supervisors_info_code", "tag": "member"}, memberActionUrl); } +export const getSupervisorInfoCodeOffline = () => { + return queryData({"type": "supervisors_infos_off_line", "tag": "member"}, memberActionUrl); +} export const generateAgentGeo = async (newPhone) => { const user = await readUser(); const items = await queryData({