fix: handle undefined assignmentTypeGradeSummary in progress tab#1852
fix: handle undefined assignmentTypeGradeSummary in progress tab#1852artburkay wants to merge 1 commit intoopenedx:masterfrom
Conversation
|
Thanks for the pull request, @artburkay! This repository is currently maintained by Once you've gone through the following steps feel free to tag them in a comment and let them know that your changes are ready for engineering review. 🔘 Get product approvalIf you haven't already, check this list to see if your contribution needs to go through the product review process.
🔘 Provide contextTo help your reviewers and other members of the community understand the purpose and larger context of your changes, feel free to add as much of the following information to the PR description as you can:
🔘 Get a green buildIf one or more checks are failing, continue working on your changes until this is no longer the case and your build turns green. DetailsWhere can I find more information?If you'd like to get more details on all aspects of the review process for open source pull requests (OSPRs), check out the following resources: When can I expect my changes to be merged?Our goal is to get community contributions seen and reviewed as efficiently as possible. However, the amount of time that it takes to review and merge a PR can vary significantly based on factors such as:
💡 As a result it may take up to several weeks or months to complete a review and merge your PR. |
|
@edx-cla-bot check |
|
Hi @artburkay, thank you for this contribution! Since it's touching user-facing code, it will need product approval before it can be merged. Please follow the instructions for the Clear-Scope Bug Fixes contribution type to get the product review process started. |
Description
This PR fixes a runtime crash (white screen) occurring on the Progress tab in the Learning MFE.
The Issue:
After upgrading from Sumac to Ulmo, we observed that the
useModel('progress', ...)hook occasionally returnsundefinedor incomplete data during the initial render phase. This causesTypeErrorcrashes when the code attempts to access array methods (such as.some(),.length) or pass these variables to utility functions (likegetLatestDueDateInFuture).Specific errors observed in the console:
TypeError: Cannot read properties of undefined (reading 'some')inCurrentGradeTooltip.jsxTypeError: Cannot read properties of undefined (reading 'length')inGradeSummary.jsxTypeError: Cannot read properties of undefined (reading 'forEach')(via utils) inCourseGradeFooter.jsxThe Fix:
I have applied defensive coding practices by assigning default empty arrays (
[]) and objects ({}) to the destructured variables fromuseModel. This ensures that the components can render safely even if the API response is delayed or the model data is not yet fully populated.Changes
assignmentTypeGradeSummary,courseGrade, andgradeRange.assignmentTypeGradeSummaryandcourseGrade.assignmentTypeGradeSummaryto prevent.lengthcheck failure.Testing Instructions
TypeError: Cannot read properties of undefinederrors are logged related to grade summaries.