Skip to content

Commit

Permalink
fix(sonar): fix code smells high
Browse files Browse the repository at this point in the history
  • Loading branch information
lailabjil committed Dec 13, 2023
1 parent 40f4255 commit b93e5b3
Show file tree
Hide file tree
Showing 3 changed files with 140 additions and 61 deletions.
21 changes: 13 additions & 8 deletions src/orchestrator/Orchestrator.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,17 @@ const renderLoading = () => {
);
};

const getDataOfLoop = (
const getDataOfLoop = (collected: any, editedSaved: any, iteration: number | undefined) => {
let maxLenght = Number(localStorage.getItem("loopSize") ?? 0);
for (let i = 0; i < maxLenght; i++) {
if (i != iteration || (collected[i] == null && i == iteration)) {
collected[i] = editedSaved[i];
}
}
return collected;
};

const getDataOfCurrentBinding = (
collected: any,
edited: any,
collectedSaved: any,
Expand All @@ -56,12 +66,7 @@ const getDataOfLoop = (
// and collected remains with the collected value on bdd
if (collected) {
if (collected && editedSaved && Array.isArray(collected)) {
let maxLenght = Number(localStorage.getItem("loopSize") ?? 0);
for (let i = 0; i < maxLenght; i++) {
if (i != iteration || (collected[i] == null && i == iteration)) {
collected[i] = editedSaved[i];
}
}
collected = getDataOfLoop(collected, editedSaved, iteration);
}
dataOfField.EDITED = collected;
dataOfField.COLLECTED = collectedSaved;
Expand Down Expand Up @@ -105,7 +110,7 @@ const getDataReviewer = (
const collectedSaved = data?.COLLECTED?.[prop]?.COLLECTED;
//prop activity + prop currently being edited
if (isPropOfActivityCurrent(prop, bindings)) {
dataOfField = getDataOfLoop(
dataOfField = getDataOfCurrentBinding(
collected,
edited,
collectedSaved,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,59 @@ const getIterationOrZero = (activity: ActivityRouteOrGap) => {
return activity.iteration ?? 0;
};

const displaySnackbar = (
idSurvey: string,
source: LunaticModel,
setSnackbarText: (value: React.SetStateAction<string | undefined>) => void,
setOpenSnackbar: (value: React.SetStateAction<boolean>) => void,
setSkip: (value: React.SetStateAction<boolean>) => void,
skip: boolean,
overlaps: {
prev: string | undefined;
current: string | undefined;
}[],
location: Location,
t: TFunction<"translation", undefined>,
) => {
const isActivityPlanner = isActivity(location);
if (isActivityPlanner) {
const act = getActivitiesOrRoutes(t, idSurvey, source);
setAlertSnackbar(setSnackbarText, setOpenSnackbar, skip, act.overlaps.length > 0, overlaps, t);
} else {
setSkip(false);
}
};

const openAddActivityOrRoute = (
startTime: string | undefined,
endTime: string | undefined,
setIsAddActivityOrRouteOpen: React.Dispatch<React.SetStateAction<boolean>>,
setAddActivityOrRouteFromGap: React.Dispatch<React.SetStateAction<boolean>>,
setGapStartTime: React.Dispatch<React.SetStateAction<string | undefined>>,
setGapEndTime: React.Dispatch<React.SetStateAction<string | undefined>>,
) => {
setIsAddActivityOrRouteOpen(true);
if (startTime && endTime) {
setAddActivityOrRouteFromGap(true);
setGapStartTime(startTime);
setGapEndTime(endTime);
}
};

const init = (
idSurvey: string,
setError: React.Dispatch<React.SetStateAction<ErrorCodeEnum | undefined>>,
setInitialized: (value: React.SetStateAction<boolean>) => void,
) => {
if (navigator.onLine && !isDemoMode()) {
refreshSurvey(idSurvey, setError).finally(() => {
setInitialized(true);
});
} else {
setInitialized(true);
}
};

const ActivityOrRoutePlannerPage = () => {
const navigate = useNavigate();
const context: OrchestratorContext = useOutletContext();
Expand Down Expand Up @@ -301,6 +354,9 @@ const ActivityOrRoutePlannerPage = () => {
const [isAlertLockDisplayed, setIsAlertLockDisplayed] = useState<boolean>(false);
const [isLocked, setIsLocked] = useState<boolean>(surveyLocked(idSurvey));
const [error, setError] = useState<ErrorCodeEnum | undefined>(undefined);
const [menuActivityPlannerDisplayed, setMenuActivityPlannerDisplayed] = React.useState(
isItDesktop && isSubchildDisplayed,
);

const alertLabels = {
boldContent: t("page.alert-when-quit.activity-planner.alert-content-close-bold"),
Expand All @@ -312,20 +368,17 @@ const ActivityOrRoutePlannerPage = () => {
const variableEdited = existVariableEdited(idSurvey);

useEffect(() => {
const isActivityPlanner = isActivity(location);
if (isActivityPlanner) {
const act = getActivitiesOrRoutes(t, idSurvey, source);
setAlertSnackbar(
setSnackbarText,
setOpenSnackbar,
skip,
act.overlaps.length > 0,
overlaps,
t,
);
} else {
setSkip(false);
}
displaySnackbar(
idSurvey,
source,
setSnackbarText,
setOpenSnackbar,
setSkip,
skip,
overlaps,
location,
t,
);
idSurvey = getSurveyIdFromUrl(context, location);
context.idSurvey = idSurvey;
});
Expand All @@ -347,6 +400,10 @@ const ActivityOrRoutePlannerPage = () => {
}
}, [location]);

useEffect(() => {
setMenuActivityPlannerDisplayed(isItDesktop && isSubchildDisplayed);
}, [isSubchildDisplayed]);

const onAddActivityOrRoute = (isRouteBool: boolean, idSurvey: string) => {
const loopSize = setLoopSize(
source,
Expand Down Expand Up @@ -392,12 +449,14 @@ const ActivityOrRoutePlannerPage = () => {

const onOpenAddActivityOrRoute = useCallback(
(startTime?: string, endTime?: string) => {
setIsAddActivityOrRouteOpen(true);
if (startTime && endTime) {
setAddActivityOrRouteFromGap(true);
setGapStartTime(startTime);
setGapEndTime(endTime);
}
openAddActivityOrRoute(
startTime,
endTime,
setIsAddActivityOrRouteOpen,
setAddActivityOrRouteFromGap,
setGapStartTime,
setGapEndTime,
);
},
[addActivityOrRouteFromGap, gapStartTime, gapEndTime],
);
Expand Down Expand Up @@ -499,13 +558,7 @@ const ActivityOrRoutePlannerPage = () => {
}, [activitiesRoutesOrGaps]);

useEffect(() => {
if (navigator.onLine && !isDemoMode()) {
refreshSurvey(idSurvey, setError).finally(() => {
setInitialized(true);
});
} else {
setInitialized(true);
}
init(idSurvey, setError, setInitialized);
}, []);

const navToActivityRouteHome = useCallback(() => {
Expand Down Expand Up @@ -613,15 +666,15 @@ const ActivityOrRoutePlannerPage = () => {
<Box
className={getClassCondition(
classes,
isItDesktop && isSubchildDisplayed,
menuActivityPlannerDisplayed,
classes.outerContentBox,
heightClass(classes),
)}
>
<Box
className={getClassCondition(
classes,
isItDesktop && isSubchildDisplayed,
menuActivityPlannerDisplayed,
classes.innerContentBox,
heightClass(classes),
)}
Expand Down Expand Up @@ -842,7 +895,7 @@ const ActivityOrRoutePlannerPage = () => {
),
)}
>
{isItDesktop && isSubchildDisplayed && <Divider orientation="vertical" light />}
{menuActivityPlannerDisplayed && <Divider orientation="vertical" light />}
<Outlet
context={{
source: source,
Expand Down
67 changes: 44 additions & 23 deletions src/pages/surveys-overview/SurveysOverview.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import ReviewerPage from "components/commons/ReviewerPage/ReviewerPage";
import HouseholdCard from "components/edt/HouseholdCard/HouseholdCard";
import { EdtRoutesNameEnum } from "enumerations/EdtRoutesNameEnum";
import { ErrorCodeEnum } from "enumerations/ErrorCodeEnum";
import { Household } from "interface/entity/Household";
import ErrorPage from "pages/error/Error";
import React, { useCallback, useEffect } from "react";
import { TFunction, useTranslation } from "react-i18next";
Expand Down Expand Up @@ -82,6 +83,41 @@ const renderPageOrLoadingOrError = (
}
};

const filterSearchInput = (
input: string,
dataHouseholds: Household[],
isFilterValidatedSurvey: boolean,
campaingFilter: string,
setSearchResult: (value: React.SetStateAction<Household[]>) => void,
setFilterValidatedResult: React.Dispatch<React.SetStateAction<any[]>>,
sortSearchResult: (houseHoldData: any) => void,
) => {
let newSearchResult = dataHouseholds.filter(
houseHoldData =>
houseHoldData?.userName?.toLowerCase().includes(input.toLowerCase()) ||
houseHoldData?.idHousehold?.toLowerCase().includes(input.toLowerCase()),
);

if (isFilterValidatedSurvey) {
newSearchResult = newSearchResult?.filter(houseHoldData => !isToFilter(houseHoldData));
}
sortSearchResult(newSearchResult);
setSearchResult(newSearchResult);
let newFilterValidatedResult = dataHouseholds.filter(
houseHoldData =>
(houseHoldData?.userName?.toLowerCase().includes(input.toLowerCase()) ||
houseHoldData?.idHousehold?.includes(input)) &&
isToFilter(houseHoldData),
);

if (campaingFilter) {
newFilterValidatedResult = dataHouseholds.filter(
houseHoldData => houseHoldData?.campaingId == campaingFilter,
);
}
setFilterValidatedResult(newFilterValidatedResult);
};

const SurveysOverviewPage = () => {
const { classes, cx } = useStyles();
const { t } = useTranslation();
Expand Down Expand Up @@ -137,30 +173,15 @@ const SurveysOverviewPage = () => {

const onFilterSearchBox = useCallback(
(event: any) => {
let newSearchResult = dataHouseholds.filter(
houseHoldData =>
houseHoldData?.userName?.toLowerCase().includes(event.target.value.toLowerCase()) ||
houseHoldData?.idHousehold?.toLowerCase().includes(event.target.value.toLowerCase()),
filterSearchInput(
event.target.value,
dataHouseholds,
isFilterValidatedSurvey,
campaingFilter,
setSearchResult,
setFilterValidatedResult,
sortSearchResult,
);

if (isFilterValidatedSurvey) {
newSearchResult = newSearchResult?.filter(houseHoldData => !isToFilter(houseHoldData));
}
sortSearchResult(newSearchResult);
setSearchResult(newSearchResult);
let newFilterValidatedResult = dataHouseholds.filter(
houseHoldData =>
(houseHoldData?.userName?.toLowerCase().includes(event.target.value.toLowerCase()) ||
houseHoldData?.idHousehold?.includes(event.target.value)) &&
isToFilter(houseHoldData),
);

if (campaingFilter) {
newFilterValidatedResult = dataHouseholds.filter(
houseHoldData => houseHoldData?.campaingId == campaingFilter,
);
}
setFilterValidatedResult(newFilterValidatedResult);
},
[searchResult, filterValidatedResult],
);
Expand Down

0 comments on commit b93e5b3

Please sign in to comment.