Merge pull request #1976 from Bilb/convo-item-avatar-click-open-user-details

Convo item avatar click open user details
pull/1979/head
Audric Ackermann 4 years ago committed by GitHub
commit a03f890689
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -23,10 +23,11 @@ import {
import _ from 'underscore'; import _ from 'underscore';
import { useMembersAvatars } from '../hooks/useMembersAvatar'; import { useMembersAvatars } from '../hooks/useMembersAvatar';
import { SessionIcon } from './session/icon'; import { SessionIcon } from './session/icon';
import { useSelector } from 'react-redux'; import { useDispatch, useSelector } from 'react-redux';
import { SectionType } from '../state/ducks/section'; import { SectionType } from '../state/ducks/section';
import { getFocusedSection } from '../state/selectors/section'; import { getFocusedSection } from '../state/selectors/section';
import { ConversationNotificationSettingType } from '../models/conversation'; import { ConversationNotificationSettingType } from '../models/conversation';
import { updateUserDetailsModal } from '../state/ducks/modalDialog';
// tslint:disable-next-line: no-empty-interface // tslint:disable-next-line: no-empty-interface
export interface ConversationListItemProps extends ReduxConversationType {} export interface ConversationListItemProps extends ReduxConversationType {}
@ -131,16 +132,15 @@ const HeaderItem = (props: {
</StyledConversationListItemIconWrapper> </StyledConversationListItemIconWrapper>
{unreadCountDiv} {unreadCountDiv}
{atSymbol} {atSymbol}
{
<div <div
className={classNames( className={classNames(
'module-conversation-list-item__header__date', 'module-conversation-list-item__header__date',
unreadCount > 0 ? 'module-conversation-list-item__header__date--has-unread' : null unreadCount > 0 ? 'module-conversation-list-item__header__date--has-unread' : null
)} )}
> >
{<Timestamp timestamp={activeAt} extended={false} isConversationListItem={true} />} <Timestamp timestamp={activeAt} extended={false} isConversationListItem={true} />
</div> </div>
}
</div> </div>
); );
}; };
@ -220,10 +220,12 @@ const AvatarItem = (props: {
memberAvatars?: Array<ConversationAvatar>; memberAvatars?: Array<ConversationAvatar>;
name?: string; name?: string;
profileName?: string; profileName?: string;
isPrivate: boolean;
}) => { }) => {
const { avatarPath, name, conversationId, profileName, memberAvatars } = props; const { avatarPath, name, isPrivate, conversationId, profileName, memberAvatars } = props;
const userName = name || profileName || conversationId; const userName = name || profileName || conversationId;
const dispatch = useDispatch();
return ( return (
<div className="module-conversation-list-item__avatar-container"> <div className="module-conversation-list-item__avatar-container">
@ -233,6 +235,17 @@ const AvatarItem = (props: {
size={AvatarSize.S} size={AvatarSize.S}
memberAvatars={memberAvatars} memberAvatars={memberAvatars}
pubkey={conversationId} pubkey={conversationId}
onAvatarClick={() => {
if (isPrivate) {
dispatch(
updateUserDetailsModal({
conversationId: conversationId,
userName,
authorAvatarPath: avatarPath,
})
);
}
}}
/> />
</div> </div>
); );
@ -309,6 +322,7 @@ const ConversationListItem = (props: Props) => {
memberAvatars={membersAvatar} memberAvatars={membersAvatar}
profileName={profileName} profileName={profileName}
name={name} name={name}
isPrivate={isPrivate || false}
/> />
<div className="module-conversation-list-item__content"> <div className="module-conversation-list-item__content">
<HeaderItem <HeaderItem

Loading…
Cancel
Save