Skip to content

Commit

Permalink
Include distribution list name on sent stories
Browse files Browse the repository at this point in the history
  • Loading branch information
josh-signal committed Sep 22, 2022
1 parent 94ef800 commit d911439
Show file tree
Hide file tree
Showing 5 changed files with 76 additions and 18 deletions.
28 changes: 27 additions & 1 deletion stylesheets/components/StoryViewer.scss
Original file line number Diff line number Diff line change
Expand Up @@ -56,13 +56,33 @@
&__meta {
bottom: 0;
left: 50%;
min-width: 284px;
padding: 0 16px;
position: absolute;
transform: translateX(-50%);
min-width: 284px;
width: 56.25vh;
z-index: $z-index-story-meta;

&__list {
@include font-body-2;
align-items: center;
display: flex;
color: $color-white-alpha-80;
margin-left: 8px;

&::before {
@include color-svg(
'../images/icons/v2/lock-solid-24.svg',
$color-white-alpha-80
);
content: '';
display: block;
height: 14px;
margin-right: 6px;
width: 14px;
}
}

&--group-avatar {
margin-left: -8px;
}
Expand All @@ -82,6 +102,12 @@
&__playback-bar {
display: flex;
justify-content: space-between;
user-select: none;

&__container {
align-items: center;
display: flex;
}
}

&__playback-controls {
Expand Down
1 change: 1 addition & 0 deletions ts/components/StoryViewer.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,7 @@ export const YourStory = Template.bind({});
);

YourStory.args = {
distributionListName: 'Close Friends',
story: {
...storyView,
sender: {
Expand Down
37 changes: 23 additions & 14 deletions ts/components/StoryViewer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ import { useEscapeHandling } from '../hooks/useEscapeHandling';
export type PropsType = {
currentIndex: number;
deleteStoryForEveryone: (story: StoryViewType) => unknown;
distributionListName?: string;
getPreferredBadge: PreferredBadgeSelectorType;
group?: Pick<
ConversationType,
Expand Down Expand Up @@ -104,6 +105,7 @@ enum Arrow {
export const StoryViewer = ({
currentIndex,
deleteStoryForEveryone,
distributionListName,
getPreferredBadge,
group,
hasActiveCall,
Expand Down Expand Up @@ -572,7 +574,7 @@ export const StoryViewer = ({
</div>
)}
<div className="StoryViewer__meta__playback-bar">
<div>
<div className="StoryViewer__meta__playback-bar__container">
<Avatar
acceptedMessageRequest={acceptedMessageRequest}
avatarPath={avatarPath}
Expand Down Expand Up @@ -604,20 +606,27 @@ export const StoryViewer = ({
title={group.title}
/>
)}
<div className="StoryViewer__meta--title">
{(group &&
i18n('Stories__from-to-group', {
name: isMe ? i18n('you') : title,
group: group.title,
})) ||
(isMe ? i18n('you') : title)}
<div>
<div className="StoryViewer__meta--title">
{(group &&
i18n('Stories__from-to-group', {
name: isMe ? i18n('you') : title,
group: group.title,
})) ||
(isMe ? i18n('you') : title)}
</div>
<MessageTimestamp
i18n={i18n}
isRelativeTime
module="StoryViewer__meta--timestamp"
timestamp={timestamp}
/>
{distributionListName && (
<div className="StoryViewer__meta__list">
{distributionListName}
</div>
)}
</div>
<MessageTimestamp
i18n={i18n}
isRelativeTime
module="StoryViewer__meta--timestamp"
timestamp={timestamp}
/>
</div>
<div className="StoryViewer__meta__playback-controls">
<button
Expand Down
25 changes: 23 additions & 2 deletions ts/state/selectors/stories.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import type {
ConversationStoryType,
MyStoryType,
ReplyStateType,
StoryDistributionListWithMembersDataType,
StorySendStateType,
StoryViewType,
} from '../../types/Stories';
Expand Down Expand Up @@ -463,25 +464,45 @@ export const getHasStoriesSelector = createSelector(
export const getStoryByIdSelector = createSelector(
getStoriesState,
getUserConversationId,
({ stories }, ourConversationId) =>
getDistributionListSelector,
({ stories }, ourConversationId, distributionListSelector) =>
(
conversationSelector: GetConversationByIdType,
messageId: string
):
| { conversationStory: ConversationStoryType; storyView: StoryViewType }
| {
conversationStory: ConversationStoryType;
distributionList:
| Pick<StoryDistributionListWithMembersDataType, 'id' | 'name'>
| undefined;
storyView: StoryViewType;
}
| undefined => {
const story = stories.find(item => item.messageId === messageId);

if (!story) {
return;
}

let distributionList:
| Pick<StoryDistributionListWithMembersDataType, 'id' | 'name'>
| undefined;
if (story.storyDistributionListId) {
distributionList =
story.storyDistributionListId === MY_STORIES_ID
? { id: MY_STORIES_ID, name: MY_STORIES_ID }
: distributionListSelector(
story.storyDistributionListId.toLowerCase()
);
}

return {
conversationStory: getConversationStory(
conversationSelector,
ourConversationId,
story
),
distributionList,
storyView: getStoryView(conversationSelector, ourConversationId, story),
};
}
Expand Down
3 changes: 2 additions & 1 deletion ts/state/smart/StoryViewer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ export function SmartStoryViewer(): JSX.Element | null {
storyInfo,
'StoryViewer: selected story does not exist in stories'
);
const { conversationStory, storyView } = storyInfo;
const { conversationStory, distributionList, storyView } = storyInfo;

const recentEmojis = useRecentEmojis();
const skinTone = useSelector<StateType, number>(getEmojiSkinTone);
Expand All @@ -84,6 +84,7 @@ export function SmartStoryViewer(): JSX.Element | null {
return (
<StoryViewer
currentIndex={selectedStoryData.currentIndex}
distributionListName={distributionList?.name}
getPreferredBadge={getPreferredBadge}
group={conversationStory.group}
hasActiveCall={hasActiveCall}
Expand Down

0 comments on commit d911439

Please sign in to comment.