From 384cabede52dc61ca57c1033bf6d4d27554d4ee2 Mon Sep 17 00:00:00 2001 From: Nihal Gonsalves 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) {