Skip to content
Snippets Groups Projects
Commit 570055d5 authored by Bjarke Madsen's avatar Bjarke Madsen
Browse files

refactor surveycomponent a bit

parent 4d44f696
No related branches found
No related tags found
1 merge request!56Feature/comp 233 survey navigation
...@@ -5,35 +5,7 @@ import { VerificationStatus } from './Schema'; ...@@ -5,35 +5,7 @@ import { VerificationStatus } from './Schema';
function SurveyComponent({ surveyModel, verificationStatus }) { function SurveyComponent({ surveyModel, verificationStatus }) {
function setVerifyButton(question: Question, state: VerificationStatus) {
verificationStatus.current.set(question.name, state);
const btn = document.createElement("button");
btn.type = "button";
btn.className = "sv-action-bar-item verification";
btn.innerHTML = state;
if (state == VerificationStatus.Unverified) {
btn.innerHTML = "Verify last years data";
btn.className += " verification-required";
btn.onclick = function () {
question.validate();
setVerifyButton(question, VerificationStatus.Verified)
}
} else {
btn.className += " verification-ok";
}
const selector = '[data-name="' + question.name + '"]';
const header = document.querySelector(selector)?.querySelector('h5');
const old = header?.querySelector(".verification");
if (old) {
old.replaceWith(btn);
} else {
header?.appendChild(btn);
}
}
function validateWebsiteUrl(params) { function validateWebsiteUrl(params) {
const value = params[0]; const value = params[0];
...@@ -50,6 +22,42 @@ function SurveyComponent({ surveyModel, verificationStatus }) { ...@@ -50,6 +22,42 @@ function SurveyComponent({ surveyModel, verificationStatus }) {
useEffect(() => { useEffect(() => {
function setVerifyButton(question: Question, state: VerificationStatus) {
verificationStatus.current.set(question.name, state);
const btn = document.createElement("button");
btn.type = "button";
btn.className = "sv-action-bar-item verification";
btn.innerHTML = state;
if (state == VerificationStatus.Unverified) {
btn.innerHTML = "No change from previous year";
btn.className += " verification-required";
btn.onclick = function () {
question.validate();
setVerifyButton(question, VerificationStatus.Verified)
}
} else {
btn.className += " verification-ok";
}
const selector = '[data-name="' + question.name + '"]';
const header = document.querySelector(selector)?.querySelector('h5');
// check if the header has class 'sv-header-flex' and if not, add it
if (header && !header.classList.contains('sv-header-flex')) {
header.classList.add('sv-header-flex');
}
const old = header?.querySelector(".verification");
if (old) {
old.replaceWith(btn);
} else {
header?.appendChild(btn);
}
}
FunctionFactory.Instance.register("validateWebsiteUrl", validateWebsiteUrl); FunctionFactory.Instance.register("validateWebsiteUrl", validateWebsiteUrl);
surveyModel.onAfterRenderQuestion.add(function (survey, options) { surveyModel.onAfterRenderQuestion.add(function (survey, options) {
...@@ -89,13 +97,9 @@ function SurveyComponent({ surveyModel, verificationStatus }) { ...@@ -89,13 +97,9 @@ function SurveyComponent({ surveyModel, verificationStatus }) {
} }
}); });
}, [surveyModel]); }, [surveyModel, verificationStatus]);
return ( return <Survey model={surveyModel} />
<div className="survey-container">
<Survey model={surveyModel} />
</div>
);
} }
export default SurveyComponent; export default SurveyComponent;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment