From 4c8644e9382a8bb7a8159bfd5b794b2816e8e1c1 Mon Sep 17 00:00:00 2001
From: Henry Jameson
Date: Thu, 23 Jul 2026 16:21:56 +0300
Subject: [PATCH 1/5] clean up and compactized post reply form
---
src/components/conversation/conversation.scss | 7 ++--
.../post_status_form/post_status_form.scss | 37 +++++++++----------
src/components/user_panel/user_panel.vue | 4 +-
3 files changed, 21 insertions(+), 27 deletions(-)
diff --git a/src/components/conversation/conversation.scss b/src/components/conversation/conversation.scss
index 9f9c30747..97238c2dd 100644
--- a/src/components/conversation/conversation.scss
+++ b/src/components/conversation/conversation.scss
@@ -122,9 +122,8 @@
flex-direction: column;
align-items: stretch;
bottom: 0;
-
- .reply-form form {
- margin-top: 0;
- }
+ padding-left: 0;
+ padding-right: 0;
+ padding-bottom: 0;
}
}
diff --git a/src/components/post_status_form/post_status_form.scss b/src/components/post_status_form/post_status_form.scss
index 3de28928d..31da7b933 100644
--- a/src/components/post_status_form/post_status_form.scss
+++ b/src/components/post_status_form/post_status_form.scss
@@ -1,6 +1,20 @@
.post-status-form {
position: relative;
+ form {
+ display: flex;
+ flex-direction: column;
+ padding: 0.5em;
+ position: relative;
+ gap: 0.25em;
+ }
+
+ .form-group {
+ display: flex;
+ flex-direction: column;
+ line-height: 1.85;
+ }
+
.attachments {
margin-bottom: 0.5em;
}
@@ -16,7 +30,6 @@
.form-bottom {
display: flex;
justify-content: space-between;
- padding: 0.5em 0.5em 0.25em;
height: 2.5em;
.post-button-group {
@@ -42,11 +55,11 @@
.form-bottom-left {
display: flex;
gap: 1.5em;
- margin-right: 1em;
+ margin: 0 0.5em;
button {
- padding: 0.5em;
- margin: -0.5em;
+ padding: 0.25em;
+ margin: -0.25em;
}
}
@@ -190,20 +203,6 @@
cursor: not-allowed;
}
- form {
- display: flex;
- flex-direction: column;
- margin: 0.6em;
- position: relative;
- }
-
- .form-group {
- display: flex;
- flex-direction: column;
- padding: 0.25em 0.5em 0.5em;
- line-height: 1.85;
- }
-
.inputs-wrapper {
padding: 0;
display: flex;
@@ -212,9 +211,7 @@
.keyboard-enter-hint {
text-align: right;
- margin-right: 1em;
line-height: 1;
- margin-bottom: 0.5em;
}
textarea.input.form-post-body {
diff --git a/src/components/user_panel/user_panel.vue b/src/components/user_panel/user_panel.vue
index b0479321c..0f9260c4a 100644
--- a/src/components/user_panel/user_panel.vue
+++ b/src/components/user_panel/user_panel.vue
@@ -39,9 +39,7 @@
}
.post-status-form {
- form {
- margin-top: 0;
- }
+ margin: 0.5em;
}
.signed-in {
From 663dc3c043fb2e1c59b2b9aa6a14ed068586e71e Mon Sep 17 00:00:00 2001
From: Henry Jameson
Date: Thu, 23 Jul 2026 16:26:44 +0300
Subject: [PATCH 2/5] less awkard "replying to last status" text
---
src/components/conversation/conversation.scss | 33 ++++---------------
src/components/conversation/conversation.vue | 4 +--
2 files changed, 9 insertions(+), 28 deletions(-)
diff --git a/src/components/conversation/conversation.scss b/src/components/conversation/conversation.scss
index 97238c2dd..cab0fdd55 100644
--- a/src/components/conversation/conversation.scss
+++ b/src/components/conversation/conversation.scss
@@ -93,37 +93,18 @@
}
}
- .auto-reply-to-section {
- margin: 0 1em;
- gap: 0.5em;
-
- h4 {
- margin: 0.5em 0;
- line-height: 1.1;
-
- button {
- line-height: 1.1;
- }
- }
-
- .reply-to-preview {
- display: flex;
- align-items: center;
- gap: 0.5em;
- border: 1px solid var(--border);
- border-radius: var(--roundness);
- padding: 0.5em;
- }
- }
-
.chat-view-reply-form {
position: sticky;
display: flex;
flex-direction: column;
align-items: stretch;
bottom: 0;
- padding-left: 0;
- padding-right: 0;
- padding-bottom: 0;
+ padding: 0;
+ }
+
+ .reply-to-text {
+ line-height: 1.2;
+ padding-top: 0.5em;
+ margin-bottom: -0.5em;
}
}
diff --git a/src/components/conversation/conversation.vue b/src/components/conversation/conversation.vue
index 85881624f..5fff21bda 100644
--- a/src/components/conversation/conversation.vue
+++ b/src/components/conversation/conversation.vue
@@ -219,7 +219,7 @@
class="chat-view-reply-form panel-footer -flexible-height"
>
-
+
{{ explicitReplyStatus ? $t('status.reply_to_selected') : $t('status.reply_to_last') }}
{{ $t('general.cancel') }}
-
+
Date: Thu, 23 Jul 2026 16:31:44 +0300
Subject: [PATCH 3/5] more compating of the form
---
src/components/conversation/conversation.vue | 2 ++
src/components/post_status_form/post_status_form.vue | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/components/conversation/conversation.vue b/src/components/conversation/conversation.vue
index 5fff21bda..ea1891da5 100644
--- a/src/components/conversation/conversation.vue
+++ b/src/components/conversation/conversation.vue
@@ -242,6 +242,8 @@
:preserve-focus="!mobileLayout"
:auto-focus="!mobileLayout"
disable-quotes
+ disable-lock-warning
+ disable-notice
mentions-line
mentions-line-read-only
@posted="onPosted"
diff --git a/src/components/post_status_form/post_status_form.vue b/src/components/post_status_form/post_status_form.vue
index aef20e0cc..c47e08a8b 100644
--- a/src/components/post_status_form/post_status_form.vue
+++ b/src/components/post_status_form/post_status_form.vue
@@ -74,7 +74,7 @@
{{ $t('post_status.direct_warning_to_first_only') }}
From 08ad92c53d36a8d012fc7ca5b0fc7e7cf0170228 Mon Sep 17 00:00:00 2001
From: Henry Jameson
Date: Thu, 23 Jul 2026 16:47:17 +0300
Subject: [PATCH 4/5] fix chats
---
src/components/chat_message/chat_message.vue | 6 +++++-
src/components/chat_view/chat_view.js | 2 ++
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/components/chat_message/chat_message.vue b/src/components/chat_message/chat_message.vue
index 1906444fe..a5c0627a2 100644
--- a/src/components/chat_message/chat_message.vue
+++ b/src/components/chat_message/chat_message.vue
@@ -145,8 +145,12 @@
:full-content="true"
>
-
+
Date: Thu, 23 Jul 2026 16:48:42 +0300
Subject: [PATCH 5/5] organize things a bit
---
src/components/chat_message/chat_message.js | 42 +++++++++++++--------
1 file changed, 26 insertions(+), 16 deletions(-)
diff --git a/src/components/chat_message/chat_message.js b/src/components/chat_message/chat_message.js
index 678d44af4..88ce38953 100644
--- a/src/components/chat_message/chat_message.js
+++ b/src/components/chat_message/chat_message.js
@@ -64,25 +64,27 @@ const ChatMessage = {
Timeago,
},
computed: {
+ isMessage() {
+ return this.chatItem.type === 'message'
+ },
+ message() {
+ if (!this.isMessage) return null
+ return this.chatItem.data.retweeted_status ?? this.chatItem.data
+ },
isStatus() {
// ChatMessage only has account_id while Status has full user data
return !!this.message.user
},
author() {
- const accountId = this.message.account_id || this.message.user.id
+ const accountId = this.isStatus ? this.message.user.id : this.message.account_id
return this.$store.getters.findUser(accountId)
},
isCurrentUser() {
return this.author.id === this.currentUser.id
},
- message() {
- if (!this.isMessage) return null
- return this.chatItem.data.retweeted_status ?? this.chatItem.data
- },
- isMessage() {
- return this.chatItem.type === 'message'
- },
+
+ // Reply stuff
isCustomReply() {
if (!this.previousItem) return false
if (!this.message.in_reply_to_status_id) return false
@@ -116,6 +118,8 @@ const ChatMessage = {
return user ? user.statusnet_profile_url : 'NOT_FOUND'
}
},
+
+ // Quote stuff
quoteId() {
return this.message.quote_id
},
@@ -125,6 +129,8 @@ const ChatMessage = {
quoteVisible() {
return this.message.quote_visible
},
+
+ // Content
messageForStatusContent() {
return {
...this.message,
@@ -137,6 +143,8 @@ const ChatMessage = {
hasAttachment() {
return this.message.attachments.length > 0
},
+
+ // Stylistic
classnames() {
return {
'-outgoing': this.isCurrentUser,
@@ -145,13 +153,6 @@ const ChatMessage = {
'-focused': this.focused,
}
},
- ...mapPiniaState(useInterfaceStore, {
- betterShadow: (store) => store.browserSupport.cssFilter,
- }),
- ...mapState({
- currentUser: (state) => state.users.currentUser,
- restrictedNicknames: (state) => useInstanceStore().restrictedNicknames,
- }),
popoverMarginStyle() {
if (this.isCurrentUser) {
return {}
@@ -159,7 +160,16 @@ const ChatMessage = {
return { left: 50 }
}
},
- ...mapPiniaState(useMergedConfigStore, ['mergedConfig', 'findUser']),
+
+ // Global stuff
+ ...mapPiniaState(useInterfaceStore, {
+ betterShadow: (store) => store.browserSupport.cssFilter,
+ }),
+ ...mapState({
+ currentUser: (state) => state.users.currentUser,
+ restrictedNicknames: (state) => useInstanceStore().restrictedNicknames,
+ }),
+ ...mapPiniaState(useMergedConfigStore, ['mergedConfig']),
},
data() {
return {