Skip to content

Commit c831f2e

Browse files
author
snailRun
committed
feat: test pr review
1 parent 4eafbd2 commit c831f2e

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

src/hooks/test.tsx

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
'use client';
2+
// 消息发送间隔,30 秒 1 次
3+
export const GAP = 30 * 1000;
4+
// 定义异步 thunk 用于获取未读消息数量
5+
export const fetchUnreadMessages = () => {
6+
try {
7+
// do something
8+
} catch (err: AnyIfEmpty) {
9+
return console.log(err);
10+
}
11+
};
12+
import Link from 'next/link';
13+
import React, { useEffect, useState } from 'react';
14+
15+
const UnreadMessageComponent: React.FC = () => {
16+
const [isActive] = useState(false);
17+
18+
useEffect(() => {
19+
let timer: AnyIfEmpty;
20+
if (!isActive) {
21+
clearInterval(timer);
22+
}
23+
if (isActive) {
24+
fetchUnreadMessages();
25+
timer = setInterval(() => {
26+
fetchUnreadMessages();
27+
}, GAP);
28+
}
29+
// return () => clearInterval(timer);
30+
}, [JSON.stringify(isActive)]);
31+
const BadgeWrapper = ({ children }: { children: React.ReactNode }) => {
32+
return isActive ? <div>{children}</div> : <div>1</div>;
33+
};
34+
return (
35+
<Link href="/user/message" style={{ display: 'flex', padding: '14px 6px' }}>
36+
<BadgeWrapper>2</BadgeWrapper>
37+
</Link>
38+
);
39+
};
40+
41+
export default UnreadMessageComponent;

0 commit comments

Comments
 (0)