-
Notifications
You must be signed in to change notification settings - Fork 1k
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’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: editor crashing #1582
fix: editor crashing #1582
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎ |
Thank you for following the naming conventions for pull request titles! 🙏 |
packages/surveys/src/components/ProgressBar.tsxThe calculateProgress function is quite complex and could be refactored for better readability and performance. Instead of using the findIndex method twice, you can use it once and store the result in a variable. Also, the getLastQuestionIndex function can be simplified by using the findLastIndex method. function calculateProgress(questionId: string, survey: TSurveyWithTriggers, progress: number) {
if (survey.questions.length === 0) return 0;
if (questionId === "end") return 1;
let currentQuestionIdx = survey.questions.findIndex((e) => e.id === questionId);
if (progress > 0 && currentQuestionIdx === prevQuestionIdx) return progress;
if (currentQuestionIdx === -1) currentQuestionIdx = 0;
const currentQuestion = survey.questions[currentQuestionIdx];
const surveyLength = survey.questions.length;
const middleIdx = Math.floor(surveyLength / 2);
const possibleNextQuestions = currentQuestion.logic?.map((l) => l.destination) || [];
const getLastQuestionIndex = () => {
return survey.questions.findLastIndex((q) => possibleNextQuestions.includes(q.id));
};
let elementIdx = currentQuestionIdx || 0.5;
const lastQuestionIdx = getLastQuestionIndex();
if (lastQuestionIdx > 0) elementIdx = Math.min(middleIdx, lastQuestionIdx - 1);
if (possibleNextQuestions.includes("end")) elementIdx = middleIdx;
const newProgress = elementIdx / survey.questions.length;
// Determine if user went backwards in the survey
const didUserGoBackwards = currentQuestionIdx < prevQuestionIdx;
// Update the progress array based on user's navigation
let updatedProgress = progress;
if (didUserGoBackwards) {
updatedProgress = progress - (prevQuestionIdx - currentQuestionIdx) * PROGRESS_INCREMENT;
} else if (newProgress > progress) {
updatedProgress = newProgress;
} else if (newProgress <= progress && progress + PROGRESS_INCREMENT <= 1) {
updatedProgress = progress + PROGRESS_INCREMENT;
}
setPrevQuestionIdx(currentQuestionIdx);
return updatedProgress;
} |
* main: (42 commits) chore: add revert to oss-friends (formbricks#745) fix: pass authOptions to getServerSession in authLayout (formbricks#1584) fix: fixed URL example for "Create Survey" API endpoint is wrong formbricks#1555 (formbricks#1586) fix(docs): default account info docs changes (formbricks#1583) chore: Add docker packages to Github Packages on release (formbricks#1585) feat: avatar upload (formbricks#1546) fix: editor crashing (formbricks#1582) fix: Add scroll to the setting navbar (formbricks#1398) are you sure modal missing fix:formbricks#1419 (formbricks#1485) fix: github linting issues (formbricks#1510) refactor: added authorization to airtable integration and create a common actions file (formbricks#1538) docs: add docs for airtable (formbricks#1541) fix: missing static generation store in revalidation due to pages dir (formbricks#1581) feat: Pagination for other values in multi choice (formbricks#1560) feat: $199 pricing model for unlimited plans (formbricks#1564) fix: make pricing pages consistent (formbricks#1567) fix: openText issue (formbricks#1579) fix: avoid blocking the request if it does not have an associated ip (formbricks#1540) feat: Add Unkey to OSS Friends (formbricks#1574) feat: FOR-683 Role Switch (formbricks#1450) ...
* main: (70 commits) chore: add revert to oss-friends (formbricks#745) fix: pass authOptions to getServerSession in authLayout (formbricks#1584) fix: fixed URL example for "Create Survey" API endpoint is wrong formbricks#1555 (formbricks#1586) fix(docs): default account info docs changes (formbricks#1583) chore: Add docker packages to Github Packages on release (formbricks#1585) feat: avatar upload (formbricks#1546) fix: editor crashing (formbricks#1582) fix: Add scroll to the setting navbar (formbricks#1398) are you sure modal missing fix:formbricks#1419 (formbricks#1485) fix: github linting issues (formbricks#1510) refactor: added authorization to airtable integration and create a common actions file (formbricks#1538) docs: add docs for airtable (formbricks#1541) fix: missing static generation store in revalidation due to pages dir (formbricks#1581) feat: Pagination for other values in multi choice (formbricks#1560) feat: $199 pricing model for unlimited plans (formbricks#1564) fix: make pricing pages consistent (formbricks#1567) fix: openText issue (formbricks#1579) fix: avoid blocking the request if it does not have an associated ip (formbricks#1540) feat: Add Unkey to OSS Friends (formbricks#1574) feat: FOR-683 Role Switch (formbricks#1450) ...
What does this PR do?
Fixes # (issue)
Type of change
How should this be tested?
Checklist
Required
pnpm build
console.logs
git pull origin main
Appreciated