From c1dc2b9a1de2a2ab6b1c62a5c29c7e21d0f7c84b Mon Sep 17 00:00:00 2001
From: bree <me@bree.dev>
Date: Fri, 9 Jul 2021 11:09:55 -0400
Subject: [PATCH] Fix: image attachments not having minimum width

---
 .../common/messaging/attachments/Attachment.module.scss      | 5 +++++
 src/components/common/messaging/attachments/Attachment.tsx   | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/components/common/messaging/attachments/Attachment.module.scss b/src/components/common/messaging/attachments/Attachment.module.scss
index d44367e..111be64 100644
--- a/src/components/common/messaging/attachments/Attachment.module.scss
+++ b/src/components/common/messaging/attachments/Attachment.module.scss
@@ -26,6 +26,7 @@
         max-width: min(480px, 100%, var(--width-px));
         
         object-fit: contain;
+        object-position: top left;
     }
 
     &.image {
@@ -37,6 +38,10 @@
         &.tall {
             height: min(100%, var(--height-px));
             width: 100%;
+
+            &.loaded {
+                width: auto;
+            }
         }
     }
 
diff --git a/src/components/common/messaging/attachments/Attachment.tsx b/src/components/common/messaging/attachments/Attachment.tsx
index d3df72f..1b56382 100644
--- a/src/components/common/messaging/attachments/Attachment.tsx
+++ b/src/components/common/messaging/attachments/Attachment.tsx
@@ -24,6 +24,7 @@ export default function Attachment({ attachment, hasContent }: Props) {
     const { openScreen } = useIntermediate();
     const { filename, metadata } = attachment;
     const [spoiler, setSpoiler] = useState(filename.startsWith("SPOILER_"));
+    const [loaded, setLoaded] = useState(false);
 
     const url = client.generateFileURL(
         attachment,
@@ -55,6 +56,7 @@ export default function Attachment({ attachment, hasContent }: Props) {
                         className={classNames(
                             styles.attachment,
                             styles.image,
+                            loaded && styles.loaded,
                             metadata.width > metadata.height
                                 ? styles.long
                                 : styles.tall,
@@ -68,6 +70,7 @@ export default function Attachment({ attachment, hasContent }: Props) {
                         onClick={() =>
                             openScreen({ id: "image_viewer", attachment })
                         }
+                        onLoad={() => setLoaded(true)}
                         onMouseDown={(ev) =>
                             ev.button === 1 && window.open(url, "_blank")
                         }
-- 
GitLab