diff --git a/projects/app/src/pageComponents/account/team/context.tsx b/projects/app/src/pageComponents/account/team/context.tsx index d2e264a5f4c2..509eda64ff82 100644 --- a/projects/app/src/pageComponents/account/team/context.tsx +++ b/projects/app/src/pageComponents/account/team/context.tsx @@ -1,8 +1,13 @@ -import React, { ReactNode, useState } from 'react'; +import React, { ReactNode, useCallback, useState } from 'react'; import { createContext } from 'use-context-selector'; import type { EditTeamFormDataType } from './EditInfoModal'; import dynamic from 'next/dynamic'; -import { getTeamList, getTeamMembers, putSwitchTeam } from '@/web/support/user/team/api'; +import { + getTeamList, + getTeamMemberCount, + getTeamMembers, + putSwitchTeam +} from '@/web/support/user/team/api'; import { TeamMemberStatusEnum } from '@fastgpt/global/support/user/team/constant'; import { useUserStore } from '@/web/support/user/useUserStore'; import type { TeamTmbItemType, TeamMemberItemType } from '@fastgpt/global/support/user/team/type'; @@ -84,12 +89,19 @@ export const TeamModalContextProvider = ({ children }: { children: ReactNode }) refreshDeps: [userInfo?.team?.teamId] }); + const { data: teamMemberCountData, refresh: refetchTeamMemberCount } = useRequest2( + getTeamMemberCount, + { + manual: false, + refreshDeps: [userInfo?.team?.teamId] + } + ); + // member action const { data: members = [], isLoading: loadingMembers, - refreshList: refetchMembers, - total: memberTotal, + refreshList: refetchMemberList, ScrollData: MemberScrollData } = useScrollPagination(getTeamMembers, { pageSize: 1000, @@ -98,6 +110,11 @@ export const TeamModalContextProvider = ({ children }: { children: ReactNode }) } }); + const refetchMembers = useCallback(() => { + refetchTeamMemberCount(); + refetchMemberList(); + }, [refetchTeamMemberCount, refetchMemberList]); + const { runAsync: onSwitchTeam, loading: isSwitchingTeam } = useRequest2( async (teamId: string) => { await putSwitchTeam(teamId); @@ -135,7 +152,7 @@ export const TeamModalContextProvider = ({ children }: { children: ReactNode }) refetchMembers, groups, refetchGroups, - teamSize: memberTotal, + teamSize: teamMemberCountData?.count || 0, MemberScrollData }; diff --git a/projects/app/src/web/support/user/team/api.ts b/projects/app/src/web/support/user/team/api.ts index 0a28dcae19c0..b6b02e0592d7 100644 --- a/projects/app/src/web/support/user/team/api.ts +++ b/projects/app/src/web/support/user/team/api.ts @@ -36,6 +36,8 @@ export const putSwitchTeam = (teamId: string) => /* --------------- team member ---------------- */ export const getTeamMembers = (props: PaginationProps<{ withLeaved?: boolean }>) => GET>(`/proApi/support/user/team/member/list`, props); +export const getTeamMemberCount = () => + GET<{ count: number }>(`/proApi/support/user/team/member/count`); // export const postInviteTeamMember = (data: InviteMemberProps) => // POST(`/proApi/support/user/team/member/invite`, data);