fix: user cannot select a skipped logic for a required question

This commit is contained in:
ShubhamPalriwala
2023-09-01 12:52:03 +05:30
parent cc9142e89b
commit 632bab40f3
2 changed files with 15 additions and 13 deletions

View File

@@ -239,18 +239,15 @@ export default function LogicEditor({
<SelectValue placeholder="Select condition" className="text-xs lg:text-sm" />
</SelectTrigger>
<SelectContent>
{conditions[question.type].map(
(condition) =>
!(question.required && condition === "skipped") && (
<SelectItem
key={condition}
value={condition}
title={logicConditions[condition].label}
className="text-xs lg:text-sm">
{logicConditions[condition].label}
</SelectItem>
)
)}
{conditions[question.type].map((condition) => (
<SelectItem
key={condition}
value={condition}
title={logicConditions[condition].label}
className="text-xs lg:text-sm">
{logicConditions[condition].label}
</SelectItem>
))}
</SelectContent>
</Select>

View File

@@ -46,7 +46,7 @@ export default function SurveyMenuBar({
let faultyQuestions: String[] = [];
const existingLogicConditions = new Set();
useEffect(() => {
if (audiencePrompt && activeId === "settings") {
setAudiencePrompt(false);
@@ -119,6 +119,11 @@ export default function SurveyMenuBar({
for (const question of survey.questions) {
for (const logic of question.logic || []) {
if (question.required && logic.condition === "skipped") {
toast.error("User cannot skip a required question, please change the logic jump!");
return false;
}
const validFields = ["condition", "destination", "value"].filter(
(field) => logic[field] !== undefined
).length;