@@ -46,26 +46,28 @@ $: if (item.component) {
46
46
componentProps = { ... props, ... (sendIdTo && { [sendIdTo]: item .id }) }
47
47
}
48
48
49
+ const check = (prop , kind = ' undefined' ) => typeof prop === kind
49
50
// `progress` has been renamed to `next`; shim included for backward compatibility, to remove in next major
50
- $: if (typeof item .progress !== ' undefined ' ) {
51
+ $: if (! check ( item .progress ) ) {
51
52
item .next = item .progress
52
53
}
53
54
54
- const handler = () => ( document . hidden ? pause () : resume ())
55
- const listener = (add ) => {
56
- const { hidden , addEventListener , removeEventListener } = document
57
- if ( typeof hidden === ' undefined ' ) return
55
+ let unlisten
56
+ const listen = (d = document ) => {
57
+ if ( check ( d . hidden )) return
58
+ const handler = () => ( d . hidden ? pause () : resume ())
58
59
const name = ' visibilitychange'
59
- add ? addEventListener (name, handler) : removeEventListener (name, handler)
60
- return true
60
+ d .addEventListener (name, handler)
61
+ unlisten = () => d .removeEventListener (name, handler)
62
+ handler ()
61
63
}
62
- onMount (() => listener (true ) && handler ())
63
64
65
+ onMount (listen)
64
66
onDestroy (() => {
65
- if (typeof item .onpop === ' function' ) {
67
+ if (check ( item .onpop , ' function' ) ) {
66
68
item .onpop (item .id )
67
69
}
68
- listener ( false )
70
+ unlisten && unlisten ( )
69
71
})
70
72
</script >
71
73
0 commit comments