feat: add cache refresh when load user popover

pull/90/head
moonrailgun 2 years ago
parent ff86b84c14
commit 0b116e5406

@ -14,6 +14,7 @@ import {
} from 'tailchat-shared'; } from 'tailchat-shared';
import { Problem } from '@/components/Problem'; import { Problem } from '@/components/Problem';
import { useGroupMemberAction } from '@/hooks/useGroupMemberAction'; import { useGroupMemberAction } from '@/hooks/useGroupMemberAction';
import { UserPopover } from '@/components/popover/UserPopover';
interface MembersPanelProps { interface MembersPanelProps {
groupId: string; groupId: string;
@ -78,9 +79,7 @@ export const MembersPanel: React.FC<MembersPanelProps> = React.memo((props) => {
<div> <div>
<UserListItem <UserListItem
userId={member._id} userId={member._id}
popover={ popover={<UserPopover userInfo={member} />}
<GroupUserPopover userInfo={member} groupInfo={groupInfo} />
}
hideDiscriminator={hideGroupMemberDiscriminator} hideDiscriminator={hideGroupMemberDiscriminator}
/> />
</div> </div>
@ -91,7 +90,7 @@ export const MembersPanel: React.FC<MembersPanelProps> = React.memo((props) => {
<UserListItem <UserListItem
key={member._id} key={member._id}
userId={member._id} userId={member._id}
popover={<GroupUserPopover userInfo={member} groupInfo={groupInfo} />} popover={<UserPopover userInfo={member} />}
hideDiscriminator={hideGroupMemberDiscriminator} hideDiscriminator={hideGroupMemberDiscriminator}
/> />
); );

@ -1,6 +1,6 @@
import { useGroupIdContext } from '@/context/GroupIdContext'; import { useGroupIdContext } from '@/context/GroupIdContext';
import React from 'react'; import React from 'react';
import { useGroupInfo, UserBaseInfo } from 'tailchat-shared'; import { useCachedUserInfo, useGroupInfo, UserBaseInfo } from 'tailchat-shared';
import { GroupUserPopover } from './GroupUserPopover'; import { GroupUserPopover } from './GroupUserPopover';
import { PersonalUserPopover } from './PersonalUserPopover'; import { PersonalUserPopover } from './PersonalUserPopover';
@ -13,11 +13,13 @@ export const UserPopover: React.FC<{
const groupId = useGroupIdContext(); const groupId = useGroupIdContext();
const groupInfo = useGroupInfo(groupId); const groupInfo = useGroupInfo(groupId);
// refetch user cache
useCachedUserInfo(props.userInfo._id, true);
if (groupInfo) { if (groupInfo) {
return <GroupUserPopover userInfo={props.userInfo} groupInfo={groupInfo} />; return <GroupUserPopover userInfo={props.userInfo} groupInfo={groupInfo} />;
} }
// TODO
return <PersonalUserPopover userInfo={props.userInfo} />; return <PersonalUserPopover userInfo={props.userInfo} />;
}); });
UserPopover.displayName = 'UserPopover'; UserPopover.displayName = 'UserPopover';

Loading…
Cancel
Save