focus-interval
Run a function on an interval while an element is focused.
$ npm install --save focus-interval
Usage
Executes a function at a defined interval only while an element is focused. When the element recieves focus again:
- if the interval has elapsed, the function will be fired again and a new interval started.
- if the interval has not elapsed, an interval will be set for the remaining time, after which the function will fire and a new interval started, e.g.
- 10 minute interval
- 4 minutes pass
- Element looses focus
- 2 minutes pass
- Element receives focus
- Interval gets set for 4 minutes
- 4 minutes pass
- Function fires
- 10 minute interval begins
Setting an interval
;
- fn: The function to be fired on interval
- ms: The duration of the interval in milliseconds
- element: The DOM node to monitor for focus/blur events
Cancelling
focusInterval
returns a function to remove the event handler from the element and cancels any active intervals.
; const cancelInterval = ; ;
Examples
Focus on a field
Save/persist the contents of a <textarea>
every 3 seconds while the text area is focused
; const savePost = { request ;};const textArea = document; ;
Focus on a window or tab
Refresh your api authentication token every 30 minutes while the window
is in focus.
; const refreshToken = { request;}; ;
In this example leaving the window
(e.g. the browser tab) for a period longer than the interval would mean when you refocus, the refreshToken
function fires instantly, authenticating or logging them out.