Maintain font size in grading view#7525
Conversation
|
Currently, I am working on a Jest test to see if when we visit the grading view, if the font size variable in localstorage is being used to set the state, font_size. |
david-yz-liu
left a comment
There was a problem hiding this comment.
@donny-wong good work, I just left a few comments.
Regarding the remaining test cases, I suggest using a jest mock to return a particular value for the local storage when accessing text_viewer_font_size. See e.g. https://jestjs.io/docs/mock-functions.
| componentDidMount() { | ||
| this.highlight_root = this.raw_content.current.parentNode; | ||
|
|
||
| if (localStorage.getItem("text_viewer_font_size") != null) { |
There was a problem hiding this comment.
in general, use triple-equals instead of double-equals in Javascript.
| this.highlight_root = this.raw_content.current.parentNode; | ||
|
|
||
| if (localStorage.getItem("text_viewer_font_size") != null) { | ||
| this.setState({font_size: Number(localStorage.getItem("text_viewer_font_size"))}); |
There was a problem hiding this comment.
let's do the Number parsing in a try-catch; if the number fails to parse, don't set state and instead delete the localStorage value
b35e7bb to
313f323
Compare
Pull Request Test Coverage Report for Build 15495817481Details
💛 - Coveralls |
david-yz-liu
left a comment
There was a problem hiding this comment.
@donny-wong this is good; please remember to update the Changelog (part of the PR checklist). Also add a test case for when the localStorage value is not parseable as a number (in this case the localStorage.removeItem method should be called).
…est test regarding saving font size to localStorage
8a0c68e to
efacc21
Compare
Thank you @david-yz-liu , you will notice in my code I added in the file The reason for this is because the Number() function does not throw errors directly, but returns NaN when it cannot convert a given value to a number. |
Proposed Changes
When the font size is modified by the user in the grading view for the editor, we want to maintain that size even when the browser is refreshed. To do this we store the font size in the browser's local storage, where we check for and apply it when the browser is refreshed.
...
Screenshots of your changes (if applicable)
This image shows where the editor's font size buttons are located:Associated documentation repository pull request (if applicable)
Type of Change
(Write an
Xor a brief description next to the type or types that best describe your changes.)Checklist
(Complete each of the following items for your pull request. Indicate that you have completed an item by changing the
[ ]into a[x]in the raw text, or by clicking on the checkbox in the rendered description on GitHub.)Before opening your pull request:
After opening your pull request:
Questions and Comments
(Include any questions or comments you have regarding your changes.)