Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: Shuffled choices issue #2639

Merged
merged 4 commits into from
May 17, 2024
Merged

fix: Shuffled choices issue #2639

merged 4 commits into from
May 17, 2024

Conversation

Dhruwang
Copy link
Contributor

What does this PR do?

we used this piece of code to derive the question choices for multi select questions. If question contains some shuffleOption, it also shuffles and outputs the shuffled choices. Here question.choices is included in the dependency array, which changes when user changes the choice label in survey editor, which further triggers the recalculation of question choices, which agains shuffles the options

  const questionChoices = useMemo(() => {
    if (!question.choices) {
      return [];
    }
    const choicesWithoutOther = question.choices.filter((choice) => choice.id !== "other");
    if (question.shuffleOption) {
      return shuffleQuestions(choicesWithoutOther, question.shuffleOption);
    }
    return choicesWithoutOther;
  }, [question.choices, question.shuffleOption]);

So now we calculate the shuffled order only once in the beginning and when some choice is added or removed.

This PR also disables the DND for question choices when shuffleOption(randomize all or all except last) is selected.

Fixes #2622

How should this be tested?

Play with shuffle options

Checklist

Required

  • Filled out the "How to test" section in this PR
  • Read How we Code at Formbricks
  • Self-reviewed my own code
  • Commented on my code in hard-to-understand bits
  • Ran pnpm build
  • Checked for warnings, there are none
  • Removed all console.logs
  • Merged the latest changes from main onto my branch with git pull origin main
  • My changes don't cause any responsiveness issues
  • First PR at Formbricks? Please sign the CLA! Without it we wont be able to merge it 馃檹

Appreciated

  • If a UI change was made: Added a screen recording or screenshots to this PR
  • Updated the Formbricks Docs if changes were necessary

Copy link

vercel bot commented May 16, 2024

The latest updates on your projects. Learn more about Vercel for Git 鈫楋笌

2 Ignored Deployments
Name Status Preview Comments Updated (UTC)
formbricks-cloud 猬滐笍 Ignored (Inspect) Visit Preview May 17, 2024 9:08am
formbricks-docs 猬滐笍 Ignored (Inspect) Visit Preview May 17, 2024 9:08am

Copy link
Contributor

github-actions bot commented May 16, 2024

Thank you for following the naming conventions for pull request titles! 馃檹

@github-actions github-actions bot added the bug Something isn't working label May 16, 2024
Copy link
Member

@mattinannt mattinannt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Dhruwang thanks for the great explanation in the issue description :-)
I tested the functionality and encountered a few smaller issues. Can you please take a look? 馃槉

Copy link
Member

@mattinannt mattinannt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Dhruwang thanks for making the changes; works great!! :-)

@mattinannt mattinannt enabled auto-merge May 17, 2024 09:17
@mattinannt mattinannt added this pull request to the merge queue May 17, 2024
Merged via the queue into main with commit afdcac2 May 17, 2024
12 checks passed
@mattinannt mattinannt deleted the randomise-option-issue branch May 17, 2024 09:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[BUG] Options order changing & randomized options not working
2 participants