From 1dd22f85c5ce07afd2e3bca7bce3df150373714c Mon Sep 17 00:00:00 2001 From: Denis Tingaikin Date: Wed, 5 Feb 2025 16:01:52 +0300 Subject: [PATCH] UBERF-9371, UBERF-9274: Apply redesign for link preview (#7893) --- packages/theme/styles/_colors.scss | 8 + .../src/components/AttachmentDocList.svelte | 3 +- .../src/components/AttachmentGroup.svelte | 3 +- .../src/components/AttachmentRefInput.svelte | 15 +- .../src/components/LinkPreviewList.svelte | 3 +- .../components/LinkPreviewPresenter.svelte | 153 ++++++++++++------ .../src/components/icons/Trash.svelte | 32 ++++ .../chat-message/ChatMessagePresenter.svelte | 4 +- 8 files changed, 153 insertions(+), 68 deletions(-) create mode 100644 plugins/attachment-resources/src/components/icons/Trash.svelte diff --git a/packages/theme/styles/_colors.scss b/packages/theme/styles/_colors.scss index 6ffd754047..2d3a66c977 100644 --- a/packages/theme/styles/_colors.scss +++ b/packages/theme/styles/_colors.scss @@ -348,6 +348,10 @@ --theme-clockface-arrows-holder: radial-gradient(at top center, #2F2F3A, #555555); --theme-clockface-arrows-shadow: 0 0 1px white; + --theme-link-preview-bg-color: #2B2D41; + --theme-link-preview-description-color: #C1C9D6; + --theme-link-preview-text-color:#FFFFFF; + --theme-dialog-border-color: rgba(255, 255, 255, 0.1); --theme-dialog-background-color: #2a2938; --theme-dialog-back-color: #848484; @@ -431,6 +435,10 @@ --theme-mention-bg-color: rgba(55, 122, 230, 0.1); --theme-mention-focused-bg-color: rgba(55, 122, 230, 0.2); + --theme-link-preview-bg-color: #E5E8F0; + --theme-link-preview-description-color: #5A667E; + --theme-link-preview-text-color:#0F121A; + --theme-trans-color: rgba(0, 0, 0, .3); --theme-darker-color: rgba(0, 0, 0, .4); --theme-halfcontent-color: rgba(0, 0, 0, .5); diff --git a/plugins/attachment-resources/src/components/AttachmentDocList.svelte b/plugins/attachment-resources/src/components/AttachmentDocList.svelte index df9f02a267..64ea754006 100644 --- a/plugins/attachment-resources/src/components/AttachmentDocList.svelte +++ b/plugins/attachment-resources/src/components/AttachmentDocList.svelte @@ -25,6 +25,7 @@ export let attachments: Attachment[] | undefined = undefined export let imageSize: AttachmentImageSize = 'auto' export let videoPreload = true + export let isOwn = false const query = createQuery() const savedAttachmentsQuery = createQuery() @@ -62,4 +63,4 @@ }) - + diff --git a/plugins/attachment-resources/src/components/AttachmentGroup.svelte b/plugins/attachment-resources/src/components/AttachmentGroup.svelte index 96d4295239..1272c2331e 100644 --- a/plugins/attachment-resources/src/components/AttachmentGroup.svelte +++ b/plugins/attachment-resources/src/components/AttachmentGroup.svelte @@ -24,6 +24,7 @@ export let savedAttachmentsIds: Ref[] = [] export let imageSize: AttachmentImageSize = 'auto' export let videoPreload = true + export let isOwn = false let otherAttachments: WithLookup[] let linkPreviewAttachments: WithLookup[] @@ -47,5 +48,5 @@
- +
diff --git a/plugins/attachment-resources/src/components/AttachmentRefInput.svelte b/plugins/attachment-resources/src/components/AttachmentRefInput.svelte index 7865c6febb..a22c3bb714 100644 --- a/plugins/attachment-resources/src/components/AttachmentRefInput.svelte +++ b/plugins/attachment-resources/src/components/AttachmentRefInput.svelte @@ -128,21 +128,8 @@ return url.protocol.startsWith('http') } - function longestSegment (s: string): string { - const segments = s.split('.') - let maxLen = segments[0].length - let result = segments[0] - for (const segment of segments) { - if (segment.length > maxLen) { - result = segment - maxLen = segment.length - } - } - return result - } function getUrlKey (s: string): string { - const url = new URL(s) - return longestSegment(url.host) + url.pathname + return s } $: objectId && updateAttachments(objectId) diff --git a/plugins/attachment-resources/src/components/LinkPreviewList.svelte b/plugins/attachment-resources/src/components/LinkPreviewList.svelte index ef70bdbcf9..2a1d389559 100644 --- a/plugins/attachment-resources/src/components/LinkPreviewList.svelte +++ b/plugins/attachment-resources/src/components/LinkPreviewList.svelte @@ -19,12 +19,13 @@ import { type Attachment } from '@hcengineering/attachment' import { Scroller } from '@hcengineering/ui' export let attachments: WithLookup[] = [] + export let isOwn = false
{#each attachments as attachment} - + {/each}
diff --git a/plugins/attachment-resources/src/components/LinkPreviewPresenter.svelte b/plugins/attachment-resources/src/components/LinkPreviewPresenter.svelte index 823bf1f970..b9028c17aa 100644 --- a/plugins/attachment-resources/src/components/LinkPreviewPresenter.svelte +++ b/plugins/attachment-resources/src/components/LinkPreviewPresenter.svelte @@ -13,14 +13,17 @@ // limitations under the License. // --> -
+
{#if viewModel} -
-
- {#if viewModel.icon !== undefined && !useDefaultIcon} +
+ {#if viewModel.icon !== undefined && !useDefaultIcon} + link-preview-icon { + useDefaultIcon = true + }} + /> + {:else} + + {/if} + {viewModel.hostname} + {#if isOwn} + + { + void onDelete() + }}> + {/if} +
+
+ {#if viewModel.title?.toLowerCase() !== viewModel.hostname?.toLowerCase()} + + {/if} + + {#if viewModel.description} +
+ {viewModel.description} +
+ {/if} +
+ {#if previewImageSrc} + -
-
- {#if viewModel.title?.toLowerCase() !== viewModel.hostname?.toLowerCase()} - {viewModel.title} - {/if} -
-
- {#if viewModel.description} - {viewModel.description} - {/if} - {#if previewImageSrc} - - link-preview { - refreshPreviewImage() - }} - /> - - {/if} -
-
-
+ {/if} {:else}
@@ -101,23 +127,52 @@
diff --git a/plugins/attachment-resources/src/components/icons/Trash.svelte b/plugins/attachment-resources/src/components/icons/Trash.svelte new file mode 100644 index 0000000000..2361f9b0af --- /dev/null +++ b/plugins/attachment-resources/src/components/icons/Trash.svelte @@ -0,0 +1,32 @@ + + + + + + + + + diff --git a/plugins/chunter-resources/src/components/chat-message/ChatMessagePresenter.svelte b/plugins/chunter-resources/src/components/chat-message/ChatMessagePresenter.svelte index c726b47fb7..0f04aa37c0 100644 --- a/plugins/chunter-resources/src/components/chat-message/ChatMessagePresenter.svelte +++ b/plugins/chunter-resources/src/components/chat-message/ChatMessagePresenter.svelte @@ -265,7 +265,7 @@ {#if (value.attachments ?? 0) > 0 || (value.inlineButtons ?? 0) > 0}
{/if} - +
@@ -275,7 +275,7 @@ {#if (value.attachments ?? 0) > 0 || (value.inlineButtons ?? 0) > 0}
{/if} - +
{/if}