import React, { useContext } from 'react'; import { Box, Header, Icon, createStyleSheet, useHeaderStyle } from '@sendbird/uikit-react-native-foundation'; import ChannelCover from '../../../components/ChannelCover'; import { useLocalization, useSendbirdChat } from '../../../hooks/useContext'; import { TypingIndicatorType } from '../../../types'; import { GroupChannelContexts } from '../module/moduleContext'; import type { GroupChannelProps } from '../types'; const GroupChannelHeader = ({ shouldHideRight, onPressHeaderLeft, onPressHeaderRight, }: GroupChannelProps['Header']) => { const { sbOptions } = useSendbirdChat(); const { headerTitle, channel } = useContext(GroupChannelContexts.Fragment); const { typingUsers } = useContext(GroupChannelContexts.TypingIndicator); const { STRINGS } = useLocalization(); const { HeaderComponent } = useHeaderStyle(); const renderSubtitle = () => { const subtitle = STRINGS.LABELS.TYPING_INDICATOR_TYPINGS(typingUsers); if (!subtitle) return null; if (!sbOptions.uikit.groupChannel.channel.enableTypingIndicator) return null; if (!sbOptions.uikit.groupChannel.channel.typingIndicatorTypes.has(TypingIndicatorType.Text)) return null; return {subtitle}; }; const isHidden = shouldHideRight(); return ( {headerTitle} {renderSubtitle()} } left={} onPressLeft={onPressHeaderLeft} right={isHidden ? null : } onPressRight={isHidden ? undefined : onPressHeaderRight} /> ); }; const styles = createStyleSheet({ titleContainer: { maxWidth: '100%', flexDirection: 'row', alignItems: 'center', }, avatarGroup: { marginEnd: 8, }, subtitle: { marginTop: 2, }, }); export default GroupChannelHeader;