-
Notifications
You must be signed in to change notification settings - Fork 7.5k
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
small fixes to stopwatch codesandbox #4110
Conversation
noticed that the explanation for the first stopwatch codesandbox mentions "update the time every 10 milliseconds" so updated the codesandbox to reflect that also there's a small nuanced bug in the second stopwatch codesandbox where each call to `handleStart()` sets a new interval without checking if there's already one ongoing. Ie: If the user accidentally double clicks the start button, they set two intervals for updating `now` every 10ms and then intervalRef only retains the second interval ID. Thus, it's impossible to actually stop the timer because `handleStop()` will only clear the latest set interval while the original one will keep executing.
Hi @aayush-k! Thank you for your pull request and welcome to our community. Action RequiredIn order to merge any pull request (code, docs, etc.), we require contributors to sign our Contributor License Agreement, and we don't seem to have one on file for you. ProcessIn order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA. Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with If you have received this in error or have any questions, please contact us at cla@fb.com. Thanks! |
Size Changes📦 Next.js Bundle AnalysisThis analysis was generated by the next.js bundle analysis action 🤖 One Page Changed SizeThe following page changed size from the code in this PR compared to its base branch:
DetailsOnly the gzipped size is provided here based on an expert tip. First Load is the size of the global bundle plus the bundle for the individual page. If a user were to show up to your website and land on a given page, the first load size represents the amount of javascript that user would need to download. If Any third party scripts you have added directly to your app using the Next to the size is how much the size has increased or decreased compared with the base branch of this PR. If this percentage has increased by 10% or more, there will be a red status indicator applied, indicating that special attention should be given to this. |
Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Facebook open source project. Thanks! |
@@ -135,6 +135,10 @@ export default function Stopwatch() { | |||
const intervalRef = useRef(null); | |||
|
|||
function handleStart() { | |||
// Start counting, if not already. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I feel like resetting would be more appropriate behavior.
(reactjs#721) * Sandpack error icon overlapping issue fix (reactjs#4302) * sandpack error icon overlapping issue fix * modified errorline css * Improve font display (reactjs#4308) * Generate Ids when there are none in local development (reactjs#4304) * Generate Ids when there are no headings * Tweak code Co-authored-by: Dan Abramov <dan.abramov@gmail.com> * [Beta] useState Troubleshooting (reactjs#4309) * [Beta] useState Troubleshooting * Tweaks * tweak * docs: phrasing a sentence (reactjs#4185) * docs: phrasing a sentence (reactjs#4182) * docs: phrasing a sentence * Update extracting-state-logic-into-a-reducer.md Co-authored-by: dan <dan.abramov@gmail.com> * docs: fix a grammatical error (reactjs#4183) Co-authored-by: dan <dan.abramov@gmail.com> * Change "return statement" to "return keyword" (reactjs#4137) * small fixes to stopwatch codesandbox (reactjs#4110) * small fixes to stopwatch codesandbox noticed that the explanation for the first stopwatch codesandbox mentions "update the time every 10 milliseconds" so updated the codesandbox to reflect that also there's a small nuanced bug in the second stopwatch codesandbox where each call to `handleStart()` sets a new interval without checking if there's already one ongoing. Ie: If the user accidentally double clicks the start button, they set two intervals for updating `now` every 10ms and then intervalRef only retains the second interval ID. Thus, it's impossible to actually stop the timer because `handleStop()` will only clear the latest set interval while the original one will keep executing. * Update referencing-values-with-refs.md * Update referencing-values-with-refs.md * Update referencing-values-with-refs.md Co-authored-by: dan <dan.abramov@gmail.com> * Resolve conflicts Co-authored-by: Amaresh S M <amaresh.suriya@freshworks.com> Co-authored-by: Sha Mwe La <62544170+shamwela@users.noreply.github.com> Co-authored-by: Strek <harish.sethuraman@freshworks.com> Co-authored-by: Dan Abramov <dan.abramov@gmail.com> Co-authored-by: Sofya Tuymedova <stuymedova@gmail.com> Co-authored-by: Soichiro Miki <smiki-tky@umin.ac.jp> Co-authored-by: Aayush Kumar <aayush.kumarmail@gmail.com> Co-authored-by: KnowsCount <knowscount@gmail.com>
noticed that the explanation for the first stopwatch codesandbox mentions "update the time every 10 milliseconds" so just updated the codesandbox to reflect that
also there's a small bug (#4096 ) in the stopwatch codesandboxes where each call to
handleStart()
sets a new interval without checking if there's already one ongoing.ie: If the user accidentally double clicks the start button, they set two intervals for updating
now
every 10ms and then intervalRef only retains the second interval ID. Thus, it's impossible to actually stop the timer becausehandleStop()
will only clear the latest set interval while the original one will keep executing.