import React from 'react'; import { useDispatch } from 'react-redux'; import styled, { CSSProperties } from 'styled-components'; import { useAvatarPath } from '../../../../hooks/useParamSelector'; import { openConversationWithMessages } from '../../../../state/ducks/conversations'; import { updateUserDetailsModal } from '../../../../state/ducks/modalDialog'; import { Avatar, AvatarSize } from '../../../avatar/Avatar'; type Props = { id: string; displayName?: string; style: CSSProperties }; const StyledAvatarItem = styled.div` padding-right: var(--margins-sm); `; const AvatarItem = (props: Pick) => { const { id, displayName } = props; const avatarPath = useAvatarPath(id); const dispatch = useDispatch(); function onPrivateAvatarClick() { dispatch( updateUserDetailsModal({ conversationId: id, userName: displayName || '', authorAvatarPath: avatarPath, }) ); } return ( ); }; const StyledContactRowName = styled.div` color: var(--text-primary-color); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: var(--font-size-lg); `; const StyledRowContainer = styled.button` display: flex; align-items: center; padding: 0 var(--margins-lg); transition: background-color var(--default-duration) linear; cursor: pointer; border-bottom: 1px var(--border-color) solid; &:first-child { border-top: 1px var(--border-color) solid; } :hover { background-color: var(--conversation-tab-background-hover-color); } `; const StyledBreak = styled.div` display: flex; align-items: center; padding: 0 var(--margins-lg); color: var(--text-secondary-color); font-size: var(--font-size-md); height: 30px; // should also be changed in rowHeight border-bottom: 1px var(--border-color) solid; `; export const ContactRowBreak = (props: { char: string; key: string; style: CSSProperties }) => { const { char, key, style } = props; return ( {char} ); }; export const ContactRow = (props: Props) => { const { id, style, displayName } = props; return ( openConversationWithMessages({ conversationKey: id, messageId: null })} > {displayName || id} ); };