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

Commit c85d673

Browse files
committed
feat(refresh-on-navigate.tsx): reload-link has been optimized
1 parent 9f75356 commit c85d673

File tree

2 files changed

+26
-51
lines changed

2 files changed

+26
-51
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
'use client';
2+
3+
import { useLayoutEffect, useCallback } from 'react';
4+
import { useRouter } from 'next/navigation';
5+
6+
export const RefreshOnNavigate = () => {
7+
const router = useRouter();
8+
const handleClick = useCallback(
9+
(e: MouseEvent) => {
10+
const target = e.target as HTMLElement;
11+
const targetAnchor = target.closest('a');
12+
if (targetAnchor instanceof HTMLAnchorElement) router.refresh();
13+
},
14+
[router]
15+
);
16+
17+
useLayoutEffect(() => {
18+
document.addEventListener('click', handleClick);
19+
20+
return () => {
21+
document.removeEventListener('click', handleClick);
22+
};
23+
}, [handleClick]);
24+
25+
return null;
26+
};

src/core/component/reload-link.tsx

Lines changed: 0 additions & 51 deletions
This file was deleted.

0 commit comments

Comments
 (0)