Skip to content

Commit

Permalink
fix: infinite loop & improve state data retrieval
Browse files Browse the repository at this point in the history
  • Loading branch information
MailineN committed Aug 6, 2024
1 parent 394db4c commit 7afc7d0
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -713,7 +713,7 @@ const ActivityOrRoutePlannerPage = () => {
{activitiesRoutesOrGaps.length !== 0 &&
(isReviewerMode() ? (
<Box className={classes.headerActivityLockBox}>
{/* <Alert
<Alert
isAlertDisplayed={isAlertLockDisplayed}
onCompleteCallBack={lock}
onCancelCallBack={displayAlert(
Expand All @@ -732,7 +732,7 @@ const ActivityOrRoutePlannerPage = () => {
)}
/>
}
></Alert> */}
></Alert>
<Box className={classes.headerActivityBox}>
<Typography className={classes.label}>
{t(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ const ActivityDurationPage = () => {
isRoute={isRoute}
>
<FlexCenter>
{/* <Alert
<Alert
isAlertDisplayed={isAlertDisplayed}
onCompleteCallBack={useCallback(
() => setIsAlertDisplayed(false),
Expand All @@ -229,7 +229,7 @@ const ActivityDurationPage = () => {
onCancelCallBack={useCallback(cancel => onClose(cancel), [])}
labels={getLabelsWhenQuit(isRoute)}
icon={<ErrorIcon aria-label={t("page.alert-when-quit.alt-alert-icon")} />}
></Alert> */}
></Alert>
<Snackbar
className={isDesktop() ? classes.snackbarDesktop : classes.snackbar}
open={openSnackbar}
Expand Down
4 changes: 2 additions & 2 deletions src/pages/activity/activity-summary/ActivitySummary.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -637,15 +637,15 @@ const ActivitySummaryPage = () => {
<FlexCenter className={classes.download}>
{isReviewerMode ? (
<>
{/* <Alert
<Alert
isAlertDisplayed={isAlertValidateDisplayed}
onCompleteCallBack={validate}
onCancelCallBack={displayAlert(setIsAlertValidateDisplayed, false)}
labels={alertValidateLabels}
icon={
<ErrorIcon aria-label={t("page.alert-when-quit.alt-alert-icon")} />
}
></Alert> */}
></Alert>
<Button variant="outlined" onClick={back} className={classes.buttonNav}>
{t("common.navigation.back")}
</Button>
Expand Down
21 changes: 12 additions & 9 deletions src/service/survey-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -524,7 +524,7 @@ const getRemoteSavedSurveyData = (
const surveyData = initializeData(remoteSurveyData, surveyId);
return lunaticDatabase.get(surveyId).then(localSurveyData => {
if (shouldInitData(remoteSurveyData, localSurveyData)) {
const stateData = getSurveyStateData(surveyData, surveyId);
const stateData = getSurveyStateData(surveyData);
setLocalDatabase(stateData, surveyData, surveyId);
return lunaticDatabase.save(surveyId, surveyData);
} else {
Expand All @@ -534,7 +534,7 @@ const getRemoteSavedSurveyData = (
if (weeklyPlanner) {
remoteSurveyData.COLLECTED.WEEKLYPLANNER = weeklyPlanner;
}
const stateData = getSurveyStateData(surveyData, surveyId);
const stateData = getSurveyStateData(surveyData);
setLocalDatabase(stateData, remoteSurveyData, surveyId);
return lunaticDatabase.save(surveyId, surveyData);
}
Expand Down Expand Up @@ -989,7 +989,7 @@ const saveData = (
if (isChange) {
console.log("isChange");
data = saveQualityScore(idSurvey, data);
stateData = getSurveyStateData(data, idSurvey);
stateData = getSurveyStateData(data);

if (!navigator.onLine) {
stateData.date = 0;
Expand Down Expand Up @@ -1704,13 +1704,16 @@ const existVariableEdited = (idSurvey?: string, data?: LunaticData) => {

for (let prop in FieldNameEnum as any) {
if (prop == FieldNameEnum.FIRSTNAME) continue;
const data = dataOfSurvey && dataOfSurvey[prop];
const surveyData = dataOfSurvey && dataOfSurvey[prop];
const ifArrayInputed =
data?.EDITED &&
Array.isArray(data.EDITED) &&
data.EDITED.length > 0 &&
data.EDITED[0] != null;
if ((data?.EDITED && ifArrayInputed) || (data?.EDITED && !Array.isArray(data.EDITED))) {
surveyData?.EDITED &&
Array.isArray(surveyData.EDITED) &&
surveyData.EDITED.length > 0 &&
surveyData.EDITED[0] != null;
if (
(surveyData?.EDITED && ifArrayInputed) ||
(surveyData?.EDITED && !Array.isArray(surveyData.EDITED))
) {
return true;
}
}
Expand Down
29 changes: 8 additions & 21 deletions src/service/survey-state-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,36 +43,24 @@ const isSurveyLocked = (idSurvey: string) => {
// };

const isSurveyValidated = (idSurvey: string) => {
const stateData = getSurveyStateData(getData(idSurvey), idSurvey);
const stateData = getSurveyStateData(getData(idSurvey));
return stateData.state == StateDataStateEnum.VALIDATED;
};

const isSurveyClosed = (idSurvey: string) => {
const stateData = getSurveyStateData(getData(idSurvey), idSurvey);
const stateData = getSurveyStateData(getData(idSurvey));
return stateData.state == StateDataStateEnum.COMPLETED;
};
const isSurveyStarted = (idSurvey: string) => {
const stateData = getSurveyStateData(getData(idSurvey), idSurvey);
const stateData = getSurveyStateData(getData(idSurvey));
return stateData.state == StateDataStateEnum.INIT;
};

const isSurveyCompleted = (idSurvey: string) => {
const stateData = getSurveyStateData(getData(idSurvey), idSurvey);
const stateData = getSurveyStateData(getData(idSurvey));
return stateData.state == StateDataStateEnum.COMPLETED;
};

const getStateOfSurvey = (idSurvey: string): StateDataStateEnum => {
const isSent = getValue(idSurvey, FieldNameEnum.ISENVOYED) as boolean;
const isValidated = isSurveyValidated(idSurvey);
let state: StateDataStateEnum = StateDataStateEnum.INIT;

if (isSent) {
state = StateDataStateEnum.COMPLETED;
} else if (isValidated) {
state = StateDataStateEnum.VALIDATED;
}
return state;
};
const getStatutSurvey = (idSurvey: string) => {
const isLocked = getValue(idSurvey, FieldNameEnum.ISLOCKED) as boolean;
const isValidated = isSurveyValidated(idSurvey);
Expand All @@ -84,10 +72,10 @@ const getStatutSurvey = (idSurvey: string) => {
} else return StateSurveyEnum.INIT;
};

const getSurveyStateData = (data: LunaticData, idSurvey: string): StateData => {
const getSurveyStateData = (data: LunaticData): StateData => {
const lastRemoteDate = Date.now();
const stateData: StateData = {
state: getStateOfSurvey(idSurvey),
state: data.stateData?.state ?? StateDataStateEnum.INIT,
date: lastRemoteDate,
currentPage: getCurrentPage(data),
};
Expand Down Expand Up @@ -146,7 +134,7 @@ const lockAllSurveys = (idHousehold: string) => {

const validateSurvey = (idSurvey: string) => {
const data = getData(idSurvey);
const stateData = getSurveyStateData(getData(idSurvey), idSurvey);
const stateData = getSurveyStateData(getData(idSurvey));
if (stateData.state != StateDataStateEnum.VALIDATED) {
const validatedStateData: StateData = {
idStateData: stateData.idStateData,
Expand All @@ -166,7 +154,7 @@ const validateAllEmptySurveys = (idHousehold: string) => {

idSurveys.forEach((idSurvey: string) => {
const data = getData(idSurvey || "");
const stateData = getSurveyStateData(data, idSurvey);
const stateData = getSurveyStateData(data);

if (stateData.state != StateDataStateEnum.VALIDATED) {
const validatedStateData: StateData = {
Expand Down Expand Up @@ -201,7 +189,6 @@ export {
isSurveyClosed,
isSurveyStarted,
isSurveyCompleted,
getStateOfSurvey,
getStatutSurvey,
getSurveyStateData,
lockAllSurveys,
Expand Down

0 comments on commit 7afc7d0

Please sign in to comment.