({
removeReactionFromMessage: vi.fn(),
}))
+vi.mock('vuex', async () => {
+ const vuex = await vi.importActual('vuex')
+ return {
+ ...vuex,
+ useStore: vi.fn(),
+ }
+})
+
describe('ReactionsWrapper.vue', () => {
let reactionsStore
let token
diff --git a/src/components/MessagesList/MessagesList.vue b/src/components/MessagesList/MessagesList.vue
index b0aef134d65..ae769699889 100644
--- a/src/components/MessagesList/MessagesList.vue
+++ b/src/components/MessagesList/MessagesList.vue
@@ -13,6 +13,9 @@
}"
@scroll="onScroll"
@scrollend="endScroll">
+
= summaryThreshold)
},
+
+ showPinnedMessages() {
+ return this.conversation?.lastPinnedId && this.conversation.lastPinnedId !== this.conversation.hiddenPinnedId
+ },
},
watch: {
@@ -1251,4 +1260,21 @@ export default {
color: var(--color-main-text);
}
}
+
+.message__pinned ~ .scroller__content > .messages-date {
+ top: calc(var(--default-grid-baseline) * 4 + 53px);
+}
+
+.message__pinned {
+ position: sticky;
+ top: var(--default-grid-baseline);
+ margin-inline: auto;
+ width: 86%;
+ max-width: calc($messages-list-max-width * 0.86);
+ z-index: 3;
+ border-radius: var(--border-radius-container);
+ border: 2px solid var(--color-border);
+ margin-bottom: calc(var(--default-grid-baseline) * 3);
+ background-color: var(--color-main-background);
+}
diff --git a/src/components/MessagesList/PinnedMessage/PinnedMessage.vue b/src/components/MessagesList/PinnedMessage/PinnedMessage.vue
new file mode 100644
index 00000000000..4375017141d
--- /dev/null
+++ b/src/components/MessagesList/PinnedMessage/PinnedMessage.vue
@@ -0,0 +1,199 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ displayNameDetails }}
+
+
+
+ {{ richSubline }}
+
+
+
+
+
+
+ {{ t('spreed', 'Dismiss') }}
+
+
+
+
+
+ {{ t('spreed', 'Unpin') }}
+
+
+
+
+
+
+
diff --git a/src/components/RightSidebar/PinnedMessages/PinnedMessageItem.vue b/src/components/RightSidebar/PinnedMessages/PinnedMessageItem.vue
new file mode 100644
index 00000000000..bb0137abb08
--- /dev/null
+++ b/src/components/RightSidebar/PinnedMessages/PinnedMessageItem.vue
@@ -0,0 +1,136 @@
+
+
+
+
+
+
+
+
+
+ {{ timeCaption }}
+
+
+ {{ subname }}
+
+
+
+
+
+
+ {{ t('spreed', 'Unpin') }}
+
+
+
+
+
+
diff --git a/src/components/RightSidebar/SharedItems/SharedItems.vue b/src/components/RightSidebar/SharedItems/SharedItems.vue
index 4462943ce82..1634b489715 100644
--- a/src/components/RightSidebar/SharedItems/SharedItems.vue
+++ b/src/components/RightSidebar/SharedItems/SharedItems.vue
@@ -15,6 +15,10 @@
+