import React, { PropsWithChildren } from 'react'; import { Conversation, Group } from '@tencentcloud/chat'; import { TUILiveTagParam, useTUILiveContext } from './context/TUILiveContext'; import './styles/index.scss'; import { Icon, IconTypes } from '@tencentcloud/chat-uikit-react'; import { formateNumber } from './untils'; export interface TUILiveHeaderBaseProps { className?: string, conversation?: Conversation, group?: Group, } interface TUILiveHeaderProps extends TUILiveHeaderBaseProps { TUILiveHeader?: React.ComponentType, menuIcon?: React.ReactElement, onTagClick?: (data?:TUILiveTagParam)=> void, } function UnMemoizedTUILiveHeader( props: PropsWithChildren, ):React.ReactElement { const { className, conversation, group: porpsGroup, TUILiveHeader, menuIcon: propsMenuIcon, onTagClick: propsOnTagClick, } = props; const { group: contextGroup, menuIcon: contextMenuIcon, onTagClick: contextOnTagClick, memberCount, groupCounters, } = useTUILiveContext('TUILiveHeader'); const group = porpsGroup || contextGroup; const menuIcon = propsMenuIcon || contextMenuIcon; let onTagClick: any; if ( propsOnTagClick || contextOnTagClick) { onTagClick = propsOnTagClick || contextOnTagClick } else { onTagClick = ()=>{} } if (TUILiveHeader) (); const groupCustomField = (group?.groupCustomField || []).filter((item) => (item?.value)); const contentList = [ { icon: IconTypes.MEMBER, value: memberCount, }, { icon: IconTypes.UNION, value: groupCounters?.LiveDemoFollow || 0, }, { icon: IconTypes.VECTOR, value: groupCounters?.LiveDemoSubscribe || 0, }, ]; return (

{group?.name || group?.groupID}

{menuIcon}

Living

    { groupCustomField?.map((item, index) => (
  • { onTagClick({ value: item.value, ele: e }); }} > {item?.value}
  • )) }
    { contentList?.map((item) => (
  • {formateNumber(item.value || 0, 1)}
  • )) }
); } export const TUILiveHeader = React.memo(UnMemoizedTUILiveHeader) as typeof UnMemoizedTUILiveHeader;