From fd942822e2a55ee4ab49b1021d367b66e8e6ddd1 Mon Sep 17 00:00:00 2001 From: greta Date: Fri, 10 Jul 2026 14:43:42 +0200 Subject: [PATCH 1/3] feat: floating composer editor Signed-off-by: greta --- src/components/Composer.vue | 53 ++--- src/components/NewMessageModal.vue | 346 +++++++++++++++-------------- src/views/Home.vue | 4 +- 3 files changed, 198 insertions(+), 205 deletions(-) diff --git a/src/components/Composer.vue b/src/components/Composer.vue index 846c9ece14..1e7dab8615 100644 --- a/src/components/Composer.vue +++ b/src/components/Composer.vue @@ -39,14 +39,9 @@
-
- - - {{ t('mail', 'Cc/Bcc') }} - -
+
+ + {{ t('mail', 'Cc/Bcc') }} +
- -
- + + +
- +
+ + +

{{ error }}

+ +
+ + + + + + +
+
+ diff --git a/src/views/Home.vue b/src/views/Home.vue index 56fad9e960..a8fd3401d4 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -12,7 +12,7 @@ :mailbox="activeMailbox" /> @@ -50,7 +50,7 @@ export default { computed: { ...mapStores(useMainStore), - ...mapState(useMainStore, ['composerSessionId']), + ...mapState(useMainStore, ['composerSessionId', 'showMessageComposer']), accounts() { return this.mainStore.getAccounts.filter((a) => !a.isUnified) }, From a078a08b6b799a8cc347a16f1ea08a5e44e9a96b Mon Sep 17 00:00:00 2001 From: greta Date: Fri, 17 Jul 2026 19:53:41 +0200 Subject: [PATCH 2/3] fixup! feat: floating composer editor Signed-off-by: greta --- src/components/Composer.vue | 82 ++++++++-- src/components/NewMessageModal.vue | 232 +++++++++++++++++++---------- 2 files changed, 220 insertions(+), 94 deletions(-) diff --git a/src/components/Composer.vue b/src/components/Composer.vue index 1e7dab8615..2e5d8e21e2 100644 --- a/src/components/Composer.vue +++ b/src/components/Composer.vue @@ -47,7 +47,7 @@ id="to" ref="toLabel" :model-value="selectTo" - class="select" + class="select to-select" :options="selectableRecipients.filter(recipient => !selectTo.some(to => to.email === recipient.email))" :get-option-key="(option) => option.email" :taggable="true" @@ -59,7 +59,7 @@ :loading="loadingIndicatorTo" :reducible="true" :clearable="true" - :no-wrap="false" + :no-wrap="true" :append-to-body="false" :create-option="createRecipientOption" :clear-search-on-blur="() => clearOnBlur('to')" @@ -74,12 +74,27 @@ class="vs__search" v-bind="attributes" v-on="events"> + + {{ t('mail', 'Cc/Bcc') }} + - - {{ t('mail', 'Cc/Bcc') }} -