From f9cf375ee557d096a1092a55e0f3b812b084f58f Mon Sep 17 00:00:00 2001 From: Siriusmart Date: Tue, 7 Jul 2026 12:26:40 +0100 Subject: [PATCH 1/5] Collpased URL previews in timeline --- .../LinkPreview/LinkPreview.module.css | 2 +- .../LinkPreview/LinkPreview.tsx | 42 +++++++++++++++++-- .../UrlPreviewGroupView.tsx | 3 +- 3 files changed, 42 insertions(+), 5 deletions(-) diff --git a/packages/shared-components/src/room/timeline/event-tile/UrlPreviewGroupView/LinkPreview/LinkPreview.module.css b/packages/shared-components/src/room/timeline/event-tile/UrlPreviewGroupView/LinkPreview/LinkPreview.module.css index ee2b6671438..27221e79888 100644 --- a/packages/shared-components/src/room/timeline/event-tile/UrlPreviewGroupView/LinkPreview/LinkPreview.module.css +++ b/packages/shared-components/src/room/timeline/event-tile/UrlPreviewGroupView/LinkPreview/LinkPreview.module.css @@ -38,7 +38,7 @@ button.preview { } } -.container { +.containerExpanded { max-width: 100%; width: 478px; display: flex; diff --git a/packages/shared-components/src/room/timeline/event-tile/UrlPreviewGroupView/LinkPreview/LinkPreview.tsx b/packages/shared-components/src/room/timeline/event-tile/UrlPreviewGroupView/LinkPreview/LinkPreview.tsx index d8cfc6cec2b..fdd1f1df2d6 100644 --- a/packages/shared-components/src/room/timeline/event-tile/UrlPreviewGroupView/LinkPreview/LinkPreview.tsx +++ b/packages/shared-components/src/room/timeline/event-tile/UrlPreviewGroupView/LinkPreview/LinkPreview.tsx @@ -14,12 +14,13 @@ import { useI18n } from "../../../../../core/i18n/i18nContext"; import type { UrlPreview } from "../types"; import { LinkedText } from "../../../../../core/utils/LinkedText"; import styles from "./LinkPreview.module.css"; +import { _t } from "../../../../../core/i18n/i18n"; export interface LinkPreviewActions { onImageClick: () => void; } -export type LinkPreviewProps = UrlPreview & LinkPreviewActions; +export type LinkPreviewProps = UrlPreview & LinkPreviewActions & { collapsed: boolean }; export function LinkTitle({ title, @@ -84,7 +85,42 @@ function LinkPreviewInline({ * LinkPreview renders a single preview component for a single link on an event. It is usually rendered as part of * a `UrlPreviewGroupView`. */ -export function LinkPreview({ onImageClick, ...preview }: LinkPreviewProps): JSX.Element { +export function LinkPreview(props: LinkPreviewProps): JSX.Element { + if (props.collapsed) { + return ; + } else { + return ; + } +} + +export function LinkPreviewCollapsed(preview: LinkPreviewProps): JSX.Element { + let img: JSX.Element | undefined; + + if (preview.image && !preview.image.playable) { + img = ( +