You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			61 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			TypeScript
		
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			TypeScript
		
	
import React from 'react';
 | 
						|
import styled from 'styled-components';
 | 
						|
import { PubKey } from '../../../../session/types';
 | 
						|
import {
 | 
						|
  useAuthorName,
 | 
						|
  useAuthorProfileName,
 | 
						|
  useFirstMessageOfSeries,
 | 
						|
  useMessageAuthor,
 | 
						|
  useMessageDirection,
 | 
						|
} from '../../../../state/selectors';
 | 
						|
import {
 | 
						|
  useSelectedIsGroup,
 | 
						|
  useSelectedIsPublic,
 | 
						|
} from '../../../../state/selectors/selectedConversation';
 | 
						|
import { Flex } from '../../../basic/Flex';
 | 
						|
import { ContactName } from '../../ContactName';
 | 
						|
 | 
						|
type Props = {
 | 
						|
  messageId: string;
 | 
						|
};
 | 
						|
 | 
						|
const StyledAuthorContainer = styled(Flex)`
 | 
						|
  color: var(--text-primary-color);
 | 
						|
  text-overflow: ellipsis;
 | 
						|
`;
 | 
						|
 | 
						|
export const MessageAuthorText = (props: Props) => {
 | 
						|
  const isPublic = useSelectedIsPublic();
 | 
						|
  const isGroup = useSelectedIsGroup();
 | 
						|
  const authorProfileName = useAuthorProfileName(props.messageId);
 | 
						|
  const authorName = useAuthorName(props.messageId);
 | 
						|
  const sender = useMessageAuthor(props.messageId);
 | 
						|
  const direction = useMessageDirection(props.messageId);
 | 
						|
  const firstMessageOfSeries = useFirstMessageOfSeries(props.messageId);
 | 
						|
 | 
						|
  if (!props.messageId || !sender || !direction) {
 | 
						|
    return null;
 | 
						|
  }
 | 
						|
 | 
						|
  const title = authorName || sender;
 | 
						|
 | 
						|
  if (direction !== 'incoming' || !isGroup || !title || !firstMessageOfSeries) {
 | 
						|
    return null;
 | 
						|
  }
 | 
						|
 | 
						|
  const displayedPubkey = authorProfileName ? PubKey.shorten(sender) : sender;
 | 
						|
 | 
						|
  return (
 | 
						|
    <StyledAuthorContainer container={true}>
 | 
						|
      <ContactName
 | 
						|
        pubkey={displayedPubkey}
 | 
						|
        name={authorName}
 | 
						|
        profileName={authorProfileName}
 | 
						|
        module="module-message__author"
 | 
						|
        boldProfileName={true}
 | 
						|
        shouldShowPubkey={Boolean(isPublic)}
 | 
						|
      />
 | 
						|
    </StyledAuthorContainer>
 | 
						|
  );
 | 
						|
};
 |