File tree Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Original file line number Diff line number Diff line change 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 ;
You can’t perform that action at this time.
0 commit comments