Skip to content

Commit 576fb70

Browse files
authored
fix: DM sidebar tooltip shows empty while presence loads (#41107)
1 parent d71ef2f commit 576fb70

1 file changed

Lines changed: 18 additions & 5 deletions

File tree

apps/meteor/client/hooks/useUserStatusTooltip.tsx

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,23 @@
1-
import { useTooltipClose, useTooltipOpen, useUserPresence } from '@rocket.chat/ui-contexts';
1+
import { Skeleton } from '@rocket.chat/fuselage';
2+
import { UserPresenceContext, useTooltipClose, useTooltipOpen, useUserPresence } from '@rocket.chat/ui-contexts';
23
import type { MouseEvent } from 'react';
3-
import { useCallback, useMemo } from 'react';
4+
import { useCallback, useContext, useMemo } from 'react';
45

56
import { UserStatusText } from '../components/UserStatusText';
67

7-
export function useUserStatusTooltip(uid: string | undefined, title?: string) {
8+
const UserStatusTooltipContent = ({ uid }: { uid: string }) => {
89
const presence = useUserPresence(uid);
910

11+
if (!presence) {
12+
return <Skeleton width='x200' variant='text' backgroundColor='surface-light' />;
13+
}
14+
15+
return <UserStatusText status={presence.status} statusText={presence.statusText} statusExpiresAt={presence.statusExpiresAt} />;
16+
};
17+
18+
export function useUserStatusTooltip(uid: string | undefined, title?: string) {
19+
const userPresence = useContext(UserPresenceContext);
20+
1021
const openTooltip = useTooltipOpen();
1122
const closeTooltip = useTooltipClose();
1223

@@ -19,11 +30,13 @@ export function useUserStatusTooltip(uid: string | undefined, title?: string) {
1930
}
2031

2132
openTooltip(
22-
<UserStatusText status={presence?.status} statusText={presence?.statusText} statusExpiresAt={presence?.statusExpiresAt} />,
33+
<UserPresenceContext.Provider value={userPresence}>
34+
<UserStatusTooltipContent uid={uid} />
35+
</UserPresenceContext.Provider>,
2336
target,
2437
);
2538
},
26-
[uid, openTooltip, presence, title],
39+
[uid, openTooltip, title, userPresence],
2740
);
2841

2942
return useMemo(() => ({ 'data-tooltip': '', onMouseEnter, 'onMouseLeave': closeTooltip }), [onMouseEnter, closeTooltip]);

0 commit comments

Comments
 (0)