@@ -15,7 +15,7 @@ import {
1515import { HighlightMatchBold , Icons } from '@mezon/ui' ;
1616import type { ChannelMembersEntity } from '@mezon/utils' ;
1717import { DEFAULT_ROLE_COLOR , EPermission , EVERYONE_ROLE_TITLE , createImgproxyUrl , generateE2eId , getDateLocale } from '@mezon/utils' ;
18- import { formatDistance } from 'date-fns' ;
18+ import { format } from 'date-fns' ;
1919import Tooltip from 'rc-tooltip' ;
2020import type { MouseEvent } from 'react' ;
2121import { useMemo , useRef , useState } from 'react' ;
@@ -181,6 +181,20 @@ const TableMemberItem = ({ userId, username, avatar, clanJoinTime, mezonJoinTime
181181 openUserProfile ( ) ;
182182 } ;
183183
184+ const memberSinceLabel = useMemo ( ( ) => {
185+ if ( ! clanJoinTime ) return '' ;
186+ const d = new Date ( clanJoinTime ) ;
187+ if ( Number . isNaN ( d . getTime ( ) ) ) return '' ;
188+ return format ( d , 'MMM dd, yyyy' , { locale : getDateLocale ( i18n . language ) } ) ;
189+ } , [ clanJoinTime , i18n . language ] ) ;
190+
191+ const joinedMezonLabel = useMemo ( ( ) => {
192+ if ( ! mezonJoinTime ) return '' ;
193+ const d = new Date ( mezonJoinTime ) ;
194+ if ( Number . isNaN ( d . getTime ( ) ) ) return '' ;
195+ return format ( d , 'MMM dd, yyyy' , { locale : getDateLocale ( i18n . language ) } ) ;
196+ } , [ mezonJoinTime , i18n . language ] ) ;
197+
184198 return (
185199 < div
186200 className = "flex flex-row justify-between items-center h-[48px] bg-item-hover cursor-pointer border-b-theme-primary no-divider-last "
@@ -215,15 +229,13 @@ const TableMemberItem = ({ userId, username, avatar, clanJoinTime, mezonJoinTime
215229 </ div >
216230 </ div >
217231 < div className = "flex-1 p-1 text-center" >
218- < span className = "text-xs font-medium uppercase" data-e2e = { generateE2eId ( 'clan_page.member_list.member_since' ) } >
219- { clanJoinTime
220- ? formatDistance ( clanJoinTime as string , new Date ( ) , { addSuffix : true , locale : getDateLocale ( i18n . language ) } )
221- : '-' }
232+ < span className = "text-xs font-medium" data-e2e = { generateE2eId ( 'clan_page.member_list.member_since' ) } >
233+ { memberSinceLabel || '-' }
222234 </ span >
223235 </ div >
224236 < div className = "flex-1 p-1 text-center" >
225- < span className = "text-xs font-medium uppercase " data-e2e = { generateE2eId ( 'clan_page.member_list.join_mezon' ) } >
226- { mezonJoinTime ? t ( 'memberTable:timeAgo' , { time : mezonJoinTime } ) : '-' }
237+ < span className = "text-xs font-medium" data-e2e = { generateE2eId ( 'clan_page.member_list.join_mezon' ) } >
238+ { joinedMezonLabel || '-' }
227239 </ span >
228240 </ div >
229241 < div className = "flex-2 p-1 text-center" >
0 commit comments