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.
		
		
		
		
		
			
		
			
				
	
	
		
			68 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			TypeScript
		
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			TypeScript
		
	
| import React from 'react';
 | |
| 
 | |
| import { useDispatch, useSelector } from 'react-redux';
 | |
| import {
 | |
|   isMessageDetailView,
 | |
|   isMessageSelectionMode,
 | |
| } from '../../../state/selectors/conversations';
 | |
| 
 | |
| import { closeMessageDetailsView, openRightPanel } from '../../../state/ducks/conversations';
 | |
| 
 | |
| import { Flex } from '../../basic/Flex';
 | |
| import { ConversationHeaderMenu } from '../../menu/ConversationHeaderMenu';
 | |
| import { AvatarHeader, BackButton, CallButton, TripleDotsMenu } from './ConversationHeaderItems';
 | |
| import { SelectionOverlay } from './ConversationHeaderSelectionOverlay';
 | |
| import { ConversationHeaderTitle } from './ConversationHeaderTitle';
 | |
| import { useSelectedConversationKey } from '../../../state/selectors/selectedConversation';
 | |
| 
 | |
| export const ConversationHeaderWithDetails = () => {
 | |
|   const isSelectionMode = useSelector(isMessageSelectionMode);
 | |
|   const isMessageDetailOpened = useSelector(isMessageDetailView);
 | |
|   const selectedConvoKey = useSelectedConversationKey();
 | |
|   const dispatch = useDispatch();
 | |
| 
 | |
|   if (!selectedConvoKey) {
 | |
|     return null;
 | |
|   }
 | |
| 
 | |
|   const triggerId = 'conversation-header';
 | |
| 
 | |
|   return (
 | |
|     <div className="module-conversation-header">
 | |
|       <div className="conversation-header--items-wrapper">
 | |
|         <BackButton
 | |
|           onGoBack={() => {
 | |
|             dispatch(closeMessageDetailsView());
 | |
|           }}
 | |
|           showBackButton={isMessageDetailOpened}
 | |
|         />
 | |
|         <TripleDotsMenu triggerId={triggerId} showBackButton={isMessageDetailOpened} />
 | |
|         <ConversationHeaderTitle />
 | |
| 
 | |
|         {!isSelectionMode && (
 | |
|           <Flex
 | |
|             container={true}
 | |
|             flexDirection="row"
 | |
|             alignItems="center"
 | |
|             flexGrow={0}
 | |
|             flexShrink={0}
 | |
|           >
 | |
|             <CallButton />
 | |
|             <AvatarHeader
 | |
|               onAvatarClick={() => {
 | |
|                 dispatch(openRightPanel());
 | |
|               }}
 | |
|               pubkey={selectedConvoKey}
 | |
|               showBackButton={isMessageDetailOpened}
 | |
|             />
 | |
|           </Flex>
 | |
|         )}
 | |
| 
 | |
|         <ConversationHeaderMenu triggerId={triggerId} />
 | |
|       </div>
 | |
| 
 | |
|       {isSelectionMode && <SelectionOverlay />}
 | |
|     </div>
 | |
|   );
 | |
| };
 |