From a88778b536f1a149c8d50a0fa1ee3997255ce3ab Mon Sep 17 00:00:00 2001 From: Josh Perez <60019601+josh-signal@users.noreply.github.com> Date: Fri, 27 Jan 2023 12:34:15 -0500 Subject: [PATCH] Adds quick reactions to stories --- _locales/en/messages.json | 6 +- .../components/StoryViewsNRepliesModal.scss | 25 +++--- ts/components/StoryViewer.tsx | 9 +- .../StoryViewsNRepliesModal.stories.tsx | 13 --- ts/components/StoryViewsNRepliesModal.tsx | 82 ++++--------------- 5 files changed, 40 insertions(+), 95 deletions(-) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 0f5fa2c2ae..4c44e66f1d 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -6065,6 +6065,10 @@ "message": "Reply", "description": "Button label to reply to a story" }, + "icu:StoryViewer__reply-placeholder": { + "messageformat": "Reply to {firstName}", + "description": "Button label to reply to a story" + }, "StoryViewer__reply-group": { "message": "Reply to Group", "description": "Button label to reply to a group story" @@ -6134,7 +6138,7 @@ "description": "Title for replies tab" }, "StoryViewsNRepliesModal__react": { - "message": "React to story", + "message": "(deleted 01/25/23) React to story", "description": "aria-label for reaction button" }, "StoryViewsNRepliesModal__reacted": { diff --git a/stylesheets/components/StoryViewsNRepliesModal.scss b/stylesheets/components/StoryViewsNRepliesModal.scss index fc7af545d3..3e421554a4 100644 --- a/stylesheets/components/StoryViewsNRepliesModal.scss +++ b/stylesheets/components/StoryViewsNRepliesModal.scss @@ -62,7 +62,7 @@ $footer-height: 36px; &__composer { flex: 1; - margin-right: 16px; + margin-top: 6px; } &__emoji-button { @@ -114,16 +114,6 @@ $footer-height: 36px; } } - &__react { - @include button-reset; - @include color-svg( - '../images/icons/v2/add-reaction-outline-24.svg', - $color-white - ); - height: 22px; - width: 22px; - } - &__view { align-items: center; display: flex; @@ -246,6 +236,19 @@ $footer-height: 36px; color: $color-gray-25; margin: 160px 16px; } + + .module-ReactionPickerPicker { + background: inherit; + border: none; + box-shadow: none; + justify-content: space-between; + width: 100%; + } + + .module-emoji-picker { + bottom: 55px; + position: absolute; + } } .Tabs.StoryViewsNRepliesModal__tabs { diff --git a/ts/components/StoryViewer.tsx b/ts/components/StoryViewer.tsx index ff5f64de72..cc1c15d600 100644 --- a/ts/components/StoryViewer.tsx +++ b/ts/components/StoryViewer.tsx @@ -601,7 +601,12 @@ export function StoryViewer({ /> )}
-
+
+ setCurrentViewTarget(StoryViewTargetType.Replies) + } + > ; skinTone?: number; sortedGroupMembers?: ReadonlyArray; - storyPreviewAttachment?: AttachmentType; views: ReadonlyArray; viewTarget: StoryViewTargetType; onChangeViewTarget: (target: StoryViewTargetType) => unknown; @@ -113,7 +107,6 @@ export type PropsType = { }; export function StoryViewsNRepliesModal({ - conversationTitle, authorTitle, canReply, getPreferredBadge, @@ -134,7 +127,6 @@ export function StoryViewsNRepliesModal({ replies, skinTone, sortedGroupMembers, - storyPreviewAttachment, views, viewTarget, onChangeViewTarget, @@ -153,7 +145,6 @@ export function StoryViewsNRepliesModal({ const shouldScrollToBottomRef = useRef(true); const bottomRef = useRef(null); const [messageBodyText, setMessageBodyText] = useState(''); - const [showReactionPicker, setShowReactionPicker] = useState(false); const currentTab = useMemo(() => { return viewTarget === StoryViewTargetType.Replies @@ -185,17 +176,6 @@ export function StoryViewsNRepliesModal({ [inputApiRef, onUseEmoji] ); - const [referenceElement, setReferenceElement] = - useState(null); - const [popperElement, setPopperElement] = useState( - null - ); - - const { styles, attributes } = usePopper(referenceElement, popperElement, { - placement: 'top-start', - strategy: 'fixed', - }); - let composerElement: JSX.Element | undefined; useLayoutEffect(() => { @@ -218,22 +198,18 @@ export function StoryViewsNRepliesModal({ } else if (canReply) { composerElement = ( <> - {!group && ( - - )} + { + if (!group) { + onClose(); + } + onReact(emoji); + }} + onSetSkinTone={onSetSkinTone} + preferredReactionEmoji={preferredReactionEmoji} + renderEmojiPicker={renderEmojiPicker} + />
-
);