feat: 增加成员面板数量统计

pull/64/head
moonrailgun 2 years ago
parent 5e4ee9bd42
commit cca3e2633a

@ -1,5 +1,5 @@
import React, { PropsWithChildren, useEffect, useMemo } from 'react'; import React, { PropsWithChildren, useEffect, useMemo } from 'react';
import { t, useGroupPanelInfo } from 'tailchat-shared'; import { t, useGroupInfo, useGroupPanelInfo } from 'tailchat-shared';
import _isNil from 'lodash/isNil'; import _isNil from 'lodash/isNil';
import { MembersPanel } from './MembersPanel'; import { MembersPanel } from './MembersPanel';
import { CommonPanelWrapper } from '../common/Wrapper'; import { CommonPanelWrapper } from '../common/Wrapper';
@ -43,18 +43,21 @@ interface GroupPanelWrapperProps extends PropsWithChildren {
} }
export const GroupPanelWrapper: React.FC<GroupPanelWrapperProps> = React.memo( export const GroupPanelWrapper: React.FC<GroupPanelWrapperProps> = React.memo(
(props) => { (props) => {
const panelInfo = useGroupPanelInfo(props.groupId, props.panelId); const { groupId, panelId } = props;
useRecordGroupPanel(props.groupId, props.panelId); const groupInfo = useGroupInfo(groupId);
const panelInfo = useGroupPanelInfo(groupId, panelId);
const groupMemberCount = (groupInfo?.members ?? []).length;
useRecordGroupPanel(groupId, panelId);
const { hasOpenedPanel, openPanelWindow, closePanelWindow } = const { hasOpenedPanel, openPanelWindow, closePanelWindow } =
usePanelWindow(`/panel/group/${props.groupId}/${props.panelId}`); usePanelWindow(`/panel/group/${groupId}/${panelId}`);
const groupPanelContextValue = useMemo( const groupPanelContextValue = useMemo(
() => ({ () => ({
groupId: props.groupId, groupId,
panelId: props.panelId, panelId,
}), }),
[props.groupId, props.panelId] [groupId, panelId]
); );
if (_isNil(panelInfo)) { if (_isNil(panelInfo)) {
@ -114,7 +117,7 @@ export const GroupPanelWrapper: React.FC<GroupPanelWrapperProps> = React.memo(
iconClassName="text-2xl" iconClassName="text-2xl"
onClick={() => onClick={() =>
setRightPanel({ setRightPanel({
name: t('成员'), name: t('成员') + ` (${groupMemberCount})`,
panel: <MembersPanel groupId={props.groupId} />, panel: <MembersPanel groupId={props.groupId} />,
}) })
} }

@ -129,7 +129,7 @@ export const ConversePanel: React.FC<ConversePanelProps> = React.memo(
iconClassName="text-2xl" iconClassName="text-2xl"
onClick={() => onClick={() =>
setRightPanel({ setRightPanel({
name: t('成员'), name: t('成员') + ` (${converse.members.length})`,
panel: <ConversePanelMembers members={converse.members} />, panel: <ConversePanelMembers members={converse.members} />,
}) })
} }

Loading…
Cancel
Save