From 7dff0391b19883a5c7d374ec4cbee1c037441137 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Mon, 10 Oct 2022 15:56:11 -0500 Subject: [PATCH] Normalize chat attachments --- app/soapbox/components/media_gallery.tsx | 9 ++++----- .../features/chats/components/chat-message-list.tsx | 1 + app/soapbox/normalizers/chat_message.ts | 10 +++++++++- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/app/soapbox/components/media_gallery.tsx b/app/soapbox/components/media_gallery.tsx index dfb9c7df5..4f672865b 100644 --- a/app/soapbox/components/media_gallery.tsx +++ b/app/soapbox/components/media_gallery.tsx @@ -263,14 +263,13 @@ const Item: React.FC = ({ interface IMediaGallery { sensitive?: boolean, media: ImmutableList, - size: number, height: number, onOpenMedia: (media: ImmutableList, index: number) => void, - defaultWidth: number, - cacheWidth: (width: number) => void, + defaultWidth?: number, + cacheWidth?: (width: number) => void, visible?: boolean, onToggleVisibility?: () => void, - displayMedia: string, + displayMedia?: string, compact: boolean, } @@ -278,7 +277,7 @@ const MediaGallery: React.FC = (props) => { const { media, sensitive = false, - defaultWidth, + defaultWidth = 0, onToggleVisibility, onOpenMedia, cacheWidth, diff --git a/app/soapbox/features/chats/components/chat-message-list.tsx b/app/soapbox/features/chats/components/chat-message-list.tsx index ad1a2f82d..9303f2b33 100644 --- a/app/soapbox/features/chats/components/chat-message-list.tsx +++ b/app/soapbox/features/chats/components/chat-message-list.tsx @@ -178,6 +178,7 @@ const ChatMessageList: React.FC = ({ chatId, chatMessageIds, a media={ImmutableList([attachment])} height={120} onOpenMedia={onOpenMedia} + visible /> )} diff --git a/app/soapbox/normalizers/chat_message.ts b/app/soapbox/normalizers/chat_message.ts index 71536acb5..f89af4de2 100644 --- a/app/soapbox/normalizers/chat_message.ts +++ b/app/soapbox/normalizers/chat_message.ts @@ -5,6 +5,8 @@ import { fromJS, } from 'immutable'; +import { normalizeAttachment } from 'soapbox/normalizers/attachment'; + import type { Attachment, Card, Emoji } from 'soapbox/types/entities'; export const ChatMessageRecord = ImmutableRecord({ @@ -22,8 +24,14 @@ export const ChatMessageRecord = ImmutableRecord({ pending: false, }); +const normalizeMedia = (status: ImmutableMap) => { + return status.update('attachment', null, normalizeAttachment); +}; + export const normalizeChatMessage = (chatMessage: Record) => { return ChatMessageRecord( - ImmutableMap(fromJS(chatMessage)), + ImmutableMap(fromJS(chatMessage)).withMutations(chatMessage => { + normalizeMedia(chatMessage); + }), ); };