import type React from 'react'; import { GroupMemberRole } from 'tuikit-atomicx-react/chat'; import { GroupStore, useUIContext } from 'tuikit-atomicx-react/chat'; import { Button, useUIKit } from '@tencentcloud/uikit-base-component-react'; import classNames from 'classnames'; import { DEFAULT_GROUP_COMMON_AVATAR } from '../../../../constant/avatar'; import { Avatar } from 'tuikit-atomicx-react/chat'; import styles from './GroupInfo.module.scss'; import type { GroupInfoProps } from '../../../../types/contact'; export const GroupInfo: React.FC = ({ group, showActions = true, onClose, onEnterGroup, onLeaveGroup, onDismissGroup, className, style, }) => { const { t } = useUIKit(); const { setActiveConversation } = useUIContext(); const { quitGroup, dismissGroup } = GroupStore(); const selfRole = group?.selfRole || GroupMemberRole.Member; const canDismissGroup = selfRole === GroupMemberRole.Owner; const canQuitGroup = selfRole !== GroupMemberRole.Owner; const handleLeaveGroup = async () => { try { await quitGroup(group.groupID); onLeaveGroup?.(group); } catch (err: any) { console.error(err); } onClose?.(); }; const handleDismissGroup = async () => { try { await dismissGroup(group.groupID); onDismissGroup?.(group); } catch (err: any) { console.error(err); } onClose?.(); }; const handleEnterGroup = () => { setActiveConversation(`GROUP${group.groupID}`); onEnterGroup?.(group); }; return (
{group.groupName || group.groupID}
{t('ContactList.group_id')} : {group.groupID}
{t('ContactList.group_type')}
{group.groupType}
{showActions && (
{ canDismissGroup && ( ) } { canQuitGroup && ( ) }
)}
); };