feat: Add offline supervisor info retrieval and update related components

This commit is contained in:
Don Wilfried 2025-08-15 15:18:24 +01:00
parent 6f146eb712
commit 405c2ce49d
4 changed files with 54 additions and 9 deletions

View File

@ -4,6 +4,7 @@ import Button from 'apsl-react-native-button';
import axios from 'axios'; import axios from 'axios';
import _ from 'lodash'; import _ from 'lodash';
import isNil from 'lodash/isNil'; import isNil from 'lodash/isNil';
import React from 'react';
import {Component} from 'react'; import {Component} from 'react';
import { import {
Alert, Alert,

View File

@ -17,7 +17,7 @@ import {responsiveHeight, responsiveWidth, responsiveFontSize} from 'react-nativ
import {Fumi, Kaede} from 'react-native-textinput-effects' import {Fumi, Kaede} from 'react-native-textinput-effects'
import * as Animatable from 'react-native-animatable' import * as Animatable from 'react-native-animatable'
import Button from 'apsl-react-native-button' 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 theme = require('./../../utils/theme.json')
let route = require('./../../route.json') let route = require('./../../route.json')
@ -515,8 +515,19 @@ export default class CreateAccount extends Component {
} }
retreiveSupervisorInfosCode() { // retreiveSupervisorInfosCode() {
getSupervisorInfoCode().then((result) => { // 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)); console.warn("SUPERVISOR INFOS CODE", JSON.stringify(result));
storeData(supervisorCode, JSON.stringify(result)).then(() => { storeData(supervisorCode, JSON.stringify(result)).then(() => {
this.setState({displayLoader: false}); this.setState({displayLoader: false});
@ -614,7 +625,8 @@ export default class CreateAccount extends Component {
} else { } else {
let codeSupervisorsData = JSON.parse(codeSupervisor); let codeSupervisorsData = JSON.parse(codeSupervisor);
let codeSupervisors = Object.keys(codeSupervisorsData); let codeSupervisorsDataCodes = codeSupervisorsData.codes;
let codeSupervisors = Object.keys(codeSupervisorsData.codes);
this.setState({codeSupervisorsData}); this.setState({codeSupervisorsData});
if (!codeSupervisors.includes(user.member)) { if (!codeSupervisors.includes(user.member)) {
@ -627,9 +639,18 @@ export default class CreateAccount extends Component {
}], {cancelable: false}); }], {cancelable: false});
} else { } else {
this.setState({isLoging: false}); this.setState({isLoging: false});
let resultInfosCode = codeSupervisorsData[user.member]; let resultInfosCode = codeSupervisorsDataCodes[user.member];
this.setState({codeSupervisorData: resultInfosCode}); 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") { if (resultInfosCode.network.is_companies_network === "1" && resultInfosCode.child == "geolocated") {
this.props.navigation.push(route.createUserStep, { this.props.navigation.push(route.createUserStep, {
type: this.type, type: this.type,

View File

@ -14,7 +14,8 @@ import {
getPasObject, getPasObject,
getPubActiveObject, getPubActiveObject,
getSupervisorInfoCode, getSupervisorInfoCode,
getAppVersion getAppVersion,
getSupervisorInfoCodeOffline
} from '../../webservice/AuthApi'; } from '../../webservice/AuthApi';
import {Bubbles, DoubleBounce, Bars, Pulse} from 'react-native-loader'; import {Bubbles, DoubleBounce, Bars, Pulse} from 'react-native-loader';
import Configuration from "../../webservice/persistences/Configuration"; import Configuration from "../../webservice/persistences/Configuration";
@ -58,7 +59,7 @@ export default class SplashScreen extends Component {
// //
constructor(props) { constructor(props) {
super(props); super(props);
this.retreiveSupervisorInfosCode(); // this.retreiveSupervisorInfosCode();
this.state = {} 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() { componentDidMount() {
console.log("ComponentDidMount===>>") console.log("ComponentDidMount===>>")
this.retreiveSupervisorInfosCode(); this.initializeOfflineMode();
// this.retreiveSupervisorInfosCode();
try { try {
this.requestCameraPermission() this.requestCameraPermission()
} catch (e) { } catch (e) {

View File

@ -397,6 +397,9 @@ export const getTownInformationName = (town) => {
export const getSupervisorInfoCode = () => { export const getSupervisorInfoCode = () => {
return queryData({"type": "all_supervisors_info_code", "tag": "member"}, memberActionUrl); 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) => { export const generateAgentGeo = async (newPhone) => {
const user = await readUser(); const user = await readUser();
const items = await queryData({ const items = await queryData({