Skip to content

Commit

Permalink
fix: formatting + bootstrap ui package bump
Browse files Browse the repository at this point in the history
  • Loading branch information
prwozny committed Feb 3, 2025
1 parent a386f0d commit 1acad6e
Show file tree
Hide file tree
Showing 3 changed files with 315 additions and 291 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"oidc-spa": "4.5.1",
"prop-types": "^15.7.2",
"react": "19.0.0",
"react-bootstrap": "^1.0.1",
"react-bootstrap": "^2.10.9",
"react-bootstrap-typeahead": "^5.1.1",
"react-dom": "19.0.0",
"react-router": "^5.2.0",
Expand Down
121 changes: 59 additions & 62 deletions src/components/ModalSelection/ModalSelection.jsx
Original file line number Diff line number Diff line change
@@ -1,105 +1,102 @@
import React, { useState, useEffect, useCallback } from 'react';
import { useState, useEffect, useCallback } from 'react';
import Modal from 'react-bootstrap/Modal';
import { Redirect } from 'react-router-dom';

import SurveySelector from '../SurveySelector/SurveySelector';
import InterviewerSelector from '../InterviewerSelector/InterviewerSelector';

function ModalSelection({
linkTo, title, show, setShow, dataRetreiver, interviewerMode, campaigns = [], preferences
linkTo,
title,
show,
setShow,
dataRetreiver,
interviewerMode,
campaigns = [],
preferences,
}) {
const [redirect, setRedirect] = useState(null);
const [surveys, setSurveys] = useState(null);
const [interviewers, setInterviewers] = useState(null);
const [campaignsWithUpdatedPreferences, setCampaignsWithUpdatedPreferences] = useState(campaigns);


const updateSurveys = useCallback(() => {
dataRetreiver.getFormattedCampaignsForMainScreen(null, (data) => {
setSurveys({
allSurveys: data.filter(
(survey) => survey.preference,
),
});
}, campaignsWithUpdatedPreferences);
dataRetreiver.getFormattedCampaignsForMainScreen(
null,
data => {
setSurveys({
allSurveys: data.filter(survey => survey.preference),
});
},
campaignsWithUpdatedPreferences
);
}, [dataRetreiver, campaignsWithUpdatedPreferences]);

useEffect(() => {

const updateCampaignsWithPreferences = () => {
return campaigns.map((campaign) => {
const associatedPreference = Object.entries(preferences).find((preference) => preference[0] === campaign.id)

if(associatedPreference){
campaign.preference = associatedPreference[1].preference
}

return campaign;
})
}

setCampaignsWithUpdatedPreferences(updateCampaignsWithPreferences())
useEffect(() => {
const updateCampaignsWithPreferences = () => {
return campaigns.map(campaign => {
const associatedPreference = Object.entries(preferences).find(
preference => preference[0] === campaign.id
);
if (associatedPreference) {
campaign.preference = associatedPreference[1].preference;
}
return campaign;
});
};
setCampaignsWithUpdatedPreferences(updateCampaignsWithPreferences());
}, [preferences, campaigns]);

const updateInterviewers = useCallback(() => {
dataRetreiver.getInterviewers((data) => {
dataRetreiver.getInterviewers(data => {
setInterviewers({ allInterviewers: data });
});
}, [dataRetreiver]);

useEffect(() => {
if (interviewerMode) {
updateInterviewers();
} else {
updateSurveys();
}
}, [dataRetreiver, updateSurveys, updateInterviewers, interviewerMode]);


useEffect(() => {
setRedirect(null);
if (!interviewerMode) {
updateSurveys();
}
}, [show, interviewerMode, updateSurveys]);

return redirect
? <Redirect to={redirect} />
: (!show || (interviewerMode && !interviewers) || (
return redirect ? (
<Redirect to={redirect} />
) : (
!show || (interviewerMode && !interviewers) || (
<>
<Modal
show={show}
onHide={() => setShow(false)}
>
<Modal show={show} onHide={() => setShow(false)}>
<Modal.Header closeButton>
<Modal.Title>{title}</Modal.Title>
</Modal.Header>
<Modal.Body>
{
interviewerMode
? (
<InterviewerSelector
interviewer={interviewers}
updateFunc={(newInterviewer) => {
setRedirect({ pathname: `/${linkTo}/${newInterviewer.id}`, interviewer: newInterviewer });
setShow(false);
}}
/>
)
: (
<SurveySelector
survey={surveys}
updateFunc={(newSurvey) => {
setRedirect({ pathname: `/${linkTo}/${newSurvey.id}`, survey: newSurvey });
setShow(false);
}}
/>
)
}
{interviewerMode ? (
<InterviewerSelector
interviewer={interviewers}
updateFunc={newInterviewer => {
setRedirect({
pathname: `/${linkTo}/${newInterviewer.id}`,
interviewer: newInterviewer,
});
setShow(false);
}}
/>
) : (
<SurveySelector
survey={surveys}
updateFunc={newSurvey => {
setRedirect({ pathname: `/${linkTo}/${newSurvey.id}`, survey: newSurvey });
setShow(false);
}}
/>
)}
</Modal.Body>
</Modal>
</>
));
)
);
}

export default ModalSelection;
Loading

0 comments on commit 1acad6e

Please sign in to comment.