diff --git a/frontend/src/lib/components/EntityText.svelte b/frontend/src/lib/components/EntityText.svelte
index da8a453..ed82c9d 100644
--- a/frontend/src/lib/components/EntityText.svelte
+++ b/frontend/src/lib/components/EntityText.svelte
@@ -69,13 +69,14 @@
{:else if type === "url" || type === "text_link" || type === "email" || type === "phone_number"}
{@render tree(node.children)}
{:else if type === "mention" || type === "text_mention" || type === "hashtag" || type === "cashtag" || type === "bot_command"}
- {@render tree(node.children)}
+ {@render tree(node.children)}
{:else}
{@render tree(node.children)}
{/if}
@@ -108,6 +109,24 @@
&:hover {
text-decoration: underline;
}
+
+ &.own {
+ color: var(--color-own-links);
+ }
+ }
+
+ a.link.own {
+ text-decoration: underline;
+ text-decoration-color: color-mix(
+ in srgb,
+ var(--color-own-links) 45%,
+ transparent
+ );
+ text-underline-offset: 0.15em;
+
+ &:hover {
+ text-decoration-color: currentcolor;
+ }
}
.code,
diff --git a/frontend/src/lib/components/MediaAlbum.svelte b/frontend/src/lib/components/MediaAlbum.svelte
index a8617b6..cd347d0 100644
--- a/frontend/src/lib/components/MediaAlbum.svelte
+++ b/frontend/src/lib/components/MediaAlbum.svelte
@@ -8,9 +8,10 @@
chatId: number;
media: MediaRef[];
onopen: (index: number) => void;
+ own?: boolean;
}
- let { media, chatId, onopen }: Props = $props();
+ let { media, chatId, onopen, own = false }: Props = $props();
const asFiles = $derived(
media.every((item) => !isPreviewable(item.kind, item.mime))
@@ -31,7 +32,7 @@
{#if asFiles}
{#each media as item, index (item.id ?? index)}
-
+
{/each}
{:else}
diff --git a/frontend/src/lib/components/MessageBubble.svelte b/frontend/src/lib/components/MessageBubble.svelte
index ce6eac3..756aa4c 100644
--- a/frontend/src/lib/components/MessageBubble.svelte
+++ b/frontend/src/lib/components/MessageBubble.svelte
@@ -188,6 +188,7 @@
media={message.media}
chatId={message.chat_id}
onopen={onmedia}
+ {own}
/>
{:else if message.has_media}
onmedia(0)} />
diff --git a/frontend/src/lib/components/MessageMedia.svelte b/frontend/src/lib/components/MessageMedia.svelte
index ed98d37..dc3d1c4 100644
--- a/frontend/src/lib/components/MessageMedia.svelte
+++ b/frontend/src/lib/components/MessageMedia.svelte
@@ -144,7 +144,7 @@
Самоуничтожающееся медиа
{:else if asFile && ref}
-
+
{:else if !loaded}
{:else if ready && kind === "voice"}
diff --git a/frontend/src/lib/components/media/FileChip.svelte b/frontend/src/lib/components/media/FileChip.svelte
index f7a0ea7..50ed9e3 100644
--- a/frontend/src/lib/components/media/FileChip.svelte
+++ b/frontend/src/lib/components/media/FileChip.svelte
@@ -8,9 +8,10 @@
interface Props {
media: MediaRef;
+ own?: boolean;
}
- const { media }: Props = $props();
+ const { media, own = false }: Props = $props();
let saving = $state(false);
@@ -40,9 +41,9 @@
}
-
+