diff --git a/apps/web/src/viewmodels/message-body/UrlPreviewGroupViewModel.ts b/apps/web/src/viewmodels/message-body/UrlPreviewGroupViewModel.ts index 5fc9b61fe3..efc39e3335 100644 --- a/apps/web/src/viewmodels/message-body/UrlPreviewGroupViewModel.ts +++ b/apps/web/src/viewmodels/message-body/UrlPreviewGroupViewModel.ts @@ -102,21 +102,25 @@ export class UrlPreviewGroupViewModel typeof response["og:description"] === "string" && response["og:description"].trim() ? response["og:description"].trim() : undefined; - let siteName = + const siteName = typeof response["og:site_name"] === "string" && response["og:site_name"].trim() ? response["og:site_name"].trim() - : undefined; + : new URL(link).hostname; + // If there is no title, or the title matches the description then only render one. if (!title && description) { title = description; description = undefined; } else if (!title && siteName) { title = siteName; - siteName = undefined; } else if (!title) { title = link; } + if (description && description.toLowerCase() === siteName.toLowerCase()) { + description = undefined; + } + return { title, description: description && decode(description), 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 a6c196558f..3aed8ed60b 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 @@ -5,11 +5,15 @@ * Please see LICENSE files in the repository root for full details. */ +button.preview { + background: #fff; +} + .preview { display: flex; position: relative; width: 100%; - height: 255px; + height: 200px; background-size: cover; background-position: center; border: none; @@ -33,7 +37,7 @@ } .container { - max-width: 500px; + max-width: 478px; display: flex; border: 1px solid var(--cpd-color-border-interactive-secondary); border-radius: 12px; /* Get radius from cpd */ @@ -43,14 +47,23 @@ &.inline { flex-direction: row; + gap: var(--cpd-space-4x); + padding: var(--cpd-space-3x) var(--cpd-space-4x); + + .title { + margin: 0; + } .siteAvatar { - margin: auto var(--cpd-space-2x); + margin: auto; } } .textContent { padding: var(--cpd-space-3x) var(--cpd-space-4x); + &.inline { + padding: 0; + } display: flex; flex-direction: column; gap: var(--cpd-space-2x); diff --git a/packages/shared-components/src/room/timeline/event-tile/UrlPreviewGroupView/LinkPreview/LinkPreview.stories.tsx b/packages/shared-components/src/room/timeline/event-tile/UrlPreviewGroupView/LinkPreview/LinkPreview.stories.tsx index ad222214db..e5dded40ed 100644 --- a/packages/shared-components/src/room/timeline/event-tile/UrlPreviewGroupView/LinkPreview/LinkPreview.stories.tsx +++ b/packages/shared-components/src/room/timeline/event-tile/UrlPreviewGroupView/LinkPreview/LinkPreview.stories.tsx @@ -15,7 +15,7 @@ import imageFile from "../../../../../../static/element.png"; import imageFileWide from "../../../../../../static/wideImage.png"; export default { - title: "UrlPreviewGroupView/LinkPreview", + title: "Event/UrlPreviewGroupView/LinkPreview", component: LinkPreview, tags: ["autodocs"], args: { 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 40049bd627..8214a63054 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 @@ -100,7 +100,7 @@ export function LinkPreview({ onImageClick, ...preview }: LinkPreviewProps): JSX ); - const useInline = !preview.image && !preview.author; + const useInline = !preview.image && !preview.author && !preview.description; return (