From 384cabede52dc61ca57c1033bf6d4d27554d4ee2 Mon Sep 17 00:00:00 2001
From: Nihal Gonsalves <nihal@nihalgonsalves.com>
Date: Fri, 14 Jul 2023 13:10:24 +0200
Subject: [PATCH] feat: check extension to display external images

---
 web/src/app/notificationUtils.js     | 2 +-
 web/src/components/Notifications.jsx | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/web/src/app/notificationUtils.js b/web/src/app/notificationUtils.js
index 35c85ce6..0bd5136d 100644
--- a/web/src/app/notificationUtils.js
+++ b/web/src/app/notificationUtils.js
@@ -35,7 +35,7 @@ export const formatMessage = (m) => {
 };
 
 const imageRegex = /\.(png|jpe?g|gif|webp)$/i;
-const isImage = (attachment) => {
+export const isImage = (attachment) => {
   if (!attachment) return false;
 
   // if there's a type, only take that into account
diff --git a/web/src/components/Notifications.jsx b/web/src/components/Notifications.jsx
index d1cce0e8..0b8b2e7d 100644
--- a/web/src/components/Notifications.jsx
+++ b/web/src/components/Notifications.jsx
@@ -27,7 +27,7 @@ import { useOutletContext } from "react-router-dom";
 import { useRemark } from "react-remark";
 import styled from "@emotion/styled";
 import { formatBytes, formatShortDateTime, maybeActionErrors, openUrl, shortUrl, topicShortUrl, unmatchedTags } from "../app/utils";
-import { formatMessage, formatTitle } from "../app/notificationUtils";
+import { formatMessage, formatTitle, isImage } from "../app/notificationUtils";
 import { LightboxBackdrop, Paragraph, VerticallyCenteredContainer } from "./styles";
 import subscriptionManager from "../app/SubscriptionManager";
 import priority1 from "../img/priority-1.svg";
@@ -346,7 +346,7 @@ const Attachment = (props) => {
   const { attachment } = props;
   const expired = attachment.expires && attachment.expires < Date.now() / 1000;
   const expires = attachment.expires && attachment.expires > Date.now() / 1000;
-  const displayableImage = !expired && attachment.type && attachment.type.startsWith("image/");
+  const displayableImage = !expired && isImage(attachment);
 
   // Unexpired image
   if (displayableImage) {