Skip to content
This repository was archived by the owner on Jul 6, 2025. It is now read-only.

Commit 1baa679

Browse files
committed
Imporve useDeno hook (#262)
1 parent 8d2f7be commit 1baa679

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

framework/react/hooks.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,11 @@ export function useRouter(): RouterURL {
3434
*/
3535
export function useDeno<T = any>(callback: () => (T | Promise<T>), revalidate?: number): T {
3636
const id = arguments[2] // generated by compiler
37-
const { pathname } = useRouter()
37+
const { pathname, query } = useRouter()
3838
return useMemo(() => {
3939
const global = globalThis as any
40-
const dataUrl = 'pagedata://' + pathname
40+
const qs = query.toString()
41+
const dataUrl = 'pagedata://' + pathname + (qs ? '?' + qs : '')
4142
const eventName = 'useDeno-' + dataUrl
4243
const key = dataUrl + '#' + id
4344
const expires = typeof revalidate === 'number' && !isNaN(revalidate) ? Date.now() + revalidate * 1000 : 0

framework/react/renderer.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,20 +33,21 @@ export async function render(
3333
scripts: new Map(),
3434
inlineStyles: new Map(),
3535
}
36-
const pagedataUrl = 'pagedata://' + url.pathname
36+
const qs = url.query.toString()
37+
const dataUrl = 'pagedata://' + url.pathname + (qs ? '?' + qs : '')
3738
const asyncCalls: Array<Promise<any>> = []
3839
const data: Record<string, any> = {}
3940
const pageProps = createPageProps(nestedPageComponents)
4041
const defer = () => {
41-
delete global['rendering-' + pagedataUrl]
42-
events.removeAllListeners('useDeno-' + pagedataUrl)
42+
delete global['rendering-' + dataUrl]
43+
events.removeAllListeners('useDeno-' + dataUrl)
4344
}
4445

4546
// rendering data cache
46-
global['rendering-' + pagedataUrl] = {}
47+
global['rendering-' + dataUrl] = {}
4748

4849
// listen `useDeno-*` events to get hooks callback result.
49-
events.on('useDeno-' + pagedataUrl, (id: string, v: any) => {
50+
events.on('useDeno-' + dataUrl, (id: string, v: any) => {
5051
if (v instanceof Promise) {
5152
asyncCalls.push(v)
5253
} else {

0 commit comments

Comments
 (0)