Skip to content

Commit 2426e05

Browse files
update after review
1 parent 554a177 commit 2426e05

File tree

1 file changed

+18
-18
lines changed
  • packages/docs/src/routes/docs/(qwik)/advanced/core

1 file changed

+18
-18
lines changed

packages/docs/src/routes/docs/(qwik)/advanced/core/index.mdx

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ If you want to squeeze the last bit of loadtime performance, you can delay its e
88

99
## useVisibleTask$
1010

11-
`useVisibleTask$` will **always** execute core before it's callback is called.
11+
`useVisibleTask$` will **always** execute core before its callback is called.
1212

1313
```jsx
1414
// Requires core when component is visible in the viewport
@@ -45,11 +45,11 @@ const Component = component$(() => {
4545
useOn('qidle', $(() => console.log(ref)));
4646
// Executes core at load time
4747
useOn('qidle', $(() => console.log(id)));
48-
// Do not execute core at load time
48+
// Does not execute core at load time
4949
useOn('qidle', $(() => console.log(globalId)));
50-
// Do not execute core at load time
50+
// Does not execute core at load time
5151
useOn('qidle', $(() => console.log(libId)));
52-
// Do not execute core at load time
52+
// Does not execute core at load time
5353
useOn('qidle', $(() => console.log('id')));
5454

5555
return (
@@ -72,10 +72,10 @@ Replace `useVisibleTask$` with `useTask$` if
7272
```jsx
7373
const Component = component$(() => {
7474
const search = useSignal();
75-
// Do not execute core at load time
75+
// Does not execute until `search` changes
7676
useTask$(({ track }) => {
7777
track(search);
78-
console.log(search);
78+
console.log(search.value);
7979
});
8080
return <input bind:value={search} type="search" />;
8181
});
@@ -104,18 +104,18 @@ const isMobile = useSignal(false);
104104
// On idle, start listening on the event
105105
useOn(
106106
'qidle',
107-
$(() => {
107+
sync$(() => {
108108
const query = window.matchMedia('(max-width: 400px)');
109+
const handler = (event) => {
110+
// Forward the event to the document
111+
const copy = new event.constructor('media-query:(max-width: 400px)', event);
112+
document.dispatchEvent(copy);
113+
};
109114
// Store mediaQuery & handler to cleanup later
110-
globalThis['media-query:(max-width: 400px)'] = {
111-
query,
112-
handler: (event) => {
113-
// Forward the event to the document
114-
const copy = new e.constructor('media-query:(max-width: 400px)', event);
115-
document.dispatchEvent(copy);
116-
},
115+
document['cleanup:media-query:(max-width: 400px)'] = () => {
116+
query.removeEventListener('change', handler)
117117
};
118-
query.addEventListener('change', globalThis['media-query:(max-width: 400px)'].handler);
118+
query.addEventListener('change', handler);
119119
})
120120
);
121121

@@ -130,9 +130,9 @@ useOnDocument(
130130
// useTask$ is used to cleanup event listeners
131131
useTask$(({ cleanup }) => {
132132
cleanup(() => {
133-
if (!globalThis['media-query:(max-width: 400px)']) return;
134-
const { query, handler } = globalThis['media-query:(max-width: 400px)'];
135-
query.removeEventListener('(max-width: 400px)', handler);
133+
if (!document['cleanup:media-query:(max-width: 400px)']) return;
134+
document['cleanup:media-query:(max-width: 400px)']();
135+
delete document['cleanup:media-query:(max-width: 400px)'];
136136
});
137137
});
138138
```

0 commit comments

Comments
 (0)