From e04b3baed8655ce2136f9e14bd33d544c7fdb02a Mon Sep 17 00:00:00 2001
From: Jamie Kyle <113370520+jamiebuilds-signal@users.noreply.github.com>
Date: Mon, 12 May 2025 11:52:01 -0700
Subject: [PATCH] Add backdrop blur to image grid download button
---
stylesheets/_modules.scss | 1 +
.../conversation/ImageGrid.stories.tsx | 36 +++++++++++++++++++
2 files changed, 37 insertions(+)
diff --git a/stylesheets/_modules.scss b/stylesheets/_modules.scss
index 94ad491f4c..b2b50ff83c 100644
--- a/stylesheets/_modules.scss
+++ b/stylesheets/_modules.scss
@@ -3086,6 +3086,7 @@ button.module-image__border-overlay:focus {
& {
background-color: variables.$color-black-alpha-80;
color: variables.$color-white;
+ backdrop-filter: blur(10px);
height: 44px;
border-radius: 44px;
diff --git a/ts/components/conversation/ImageGrid.stories.tsx b/ts/components/conversation/ImageGrid.stories.tsx
index 6c0d26204c..fb759df848 100644
--- a/ts/components/conversation/ImageGrid.stories.tsx
+++ b/ts/components/conversation/ImageGrid.stories.tsx
@@ -16,6 +16,8 @@ import {
} from '../../types/MIME';
import { pngUrl, squareStickerUrl } from '../../storybook/Fixtures';
import { fakeAttachment } from '../../test-both/helpers/fakeAttachment';
+import { strictAssert } from '../../util/assert';
+import { isDownloadable } from '../../types/Attachment';
const { i18n } = window.SignalContext;
@@ -1040,3 +1042,37 @@ export function ContentAboveAndBelow(args: Props): JSX.Element {
export function BottomOverlay(args: Props): JSX.Element {
return ;
}
+
+export function DownloadPill(args: Props): JSX.Element {
+ const attachment1 = fakeAttachment({
+ contentType: IMAGE_JPEG,
+ fileName: 'tina-rolf-269345-unsplash.jpg',
+ height: 1680,
+ width: 3000,
+ path: undefined,
+ blurHash: 'LDA,FDBnm+I=p{tkIUI;~UkpELV]',
+ key: 'mock-key',
+ digest: 'mock-digest',
+ cdnKey: 'mock-cdn-key',
+ cdnNumber: 4000,
+ });
+
+ const attachment2 = fakeAttachment({
+ contentType: IMAGE_JPEG,
+ fileName: 'tina-rolf-269345-unsplash.jpg',
+ height: 1680,
+ width: 3000,
+ path: undefined,
+ blurHash: 'LDA,FDBnm+I=p{tkIUI;~UkpELV]',
+ key: 'mock-key',
+ digest: 'mock-digest',
+ cdnKey: 'mock-cdn-key',
+ cdnNumber: 4000,
+ });
+
+ // Pill only shows if the attachments are downloadable
+ strictAssert(isDownloadable(attachment1), 'attachment1 must be downloadable');
+ strictAssert(isDownloadable(attachment2), 'attachment2 must be downloadable');
+
+ return ;
+}