This commit is contained in:
marlon-erler
2026-09-24 15:16:22 +02:00
parent 4deedf781a
commit ffb56b8843
2 changed files with 37 additions and 32 deletions
+3
View File
@@ -600,6 +600,9 @@ body[showing-chat] #chat-page-wrapper {
} }
/* src/View/ChatPages/messagePage.css */ /* src/View/ChatPages/messagePage.css */
#chat-page #main #message-page[reply-view] .toolbar .title {
padding-left: 0px;
}
#chat-page #main #message-page .content { #chat-page #main #message-page .content {
padding: 0px; padding: 0px;
overflow: hidden; overflow: hidden;
+34 -32
View File
@@ -483,7 +483,7 @@
questionReaction: "Reaction: question mark", questionReaction: "Reaction: question mark",
// //
replyPrefixLabel: "Replies: ", replyPrefixLabel: "Replies: ",
replyHeaderLabel: (sender) => `Replies to ${sender}` replyHeaderLabel: (message) => `Replies to "${message}"`
}, },
task: { task: {
noBoardSelected: "No board selected", noBoardSelected: "No board selected",
@@ -716,7 +716,7 @@
doubleAttentionReaction: "Reaktion: doppeltes Ausrufezeichen", doubleAttentionReaction: "Reaktion: doppeltes Ausrufezeichen",
questionReaction: "Reaktion: Fragezeichen", questionReaction: "Reaktion: Fragezeichen",
replyPrefixLabel: "Antworten: ", replyPrefixLabel: "Antworten: ",
replyHeaderLabel: (sender) => `Antworten an ${sender}` replyHeaderLabel: (message) => `Antworten an "${message}"`
}, },
task: { task: {
noBoardSelected: "Kein Board ausgew\xE4hlt", noBoardSelected: "Kein Board ausgew\xE4hlt",
@@ -940,7 +940,7 @@
doubleAttentionReaction: "Reaccion: signo de atenci\xF3n doble", doubleAttentionReaction: "Reaccion: signo de atenci\xF3n doble",
questionReaction: "Reaccion: signo de interrogaci\xF3n", questionReaction: "Reaccion: signo de interrogaci\xF3n",
replyPrefixLabel: "Respuestas: ", replyPrefixLabel: "Respuestas: ",
replyHeaderLabel: (sender) => `Respuestas a ${sender}` replyHeaderLabel: (message) => `Respuestas a "${message}"`
}, },
task: { task: {
noBoardSelected: "Ning\xFAn tablero seleccionado", noBoardSelected: "Ning\xFAn tablero seleccionado",
@@ -1305,7 +1305,7 @@
this.connectionModel = connectionModel2; this.connectionModel = connectionModel2;
this.chatListModel = chatListModel2; this.chatListModel = chatListModel2;
this.fileTransferModel = fileTransferModel2; this.fileTransferModel = fileTransferModel2;
this.BUILD = "Build 26.09.24.A"; this.BUILD = "Build 26.09.24.B";
// CONTEXT // CONTEXT
this.contextStack = /* @__PURE__ */ new Map(); this.contextStack = /* @__PURE__ */ new Map();
this.closeContext = (contextId, fromHistoryEvent = false) => { this.closeContext = (contextId, fromHistoryEvent = false) => {
@@ -4249,6 +4249,8 @@
this.chatMessageViewModels = new MapState(); this.chatMessageViewModels = new MapState();
this.filteredMessageViewModels = new ListState(); this.filteredMessageViewModels = new ListState();
this.replyViewSelectedMessage = new State(void 0); this.replyViewSelectedMessage = new State(void 0);
this.isReplyViewActive = createProxyState([this.replyViewSelectedMessage], () => this.replyViewSelectedMessage.value != void 0);
this.isReplyViewInactive = createProxyState([this.isReplyViewActive], () => !this.isReplyViewActive.value);
this.isFilterModalOpen = new State(false); this.isFilterModalOpen = new State(false);
this.reactionFilter = new State(void 0); this.reactionFilter = new State(void 0);
this.replyingMessage = new State( this.replyingMessage = new State(
@@ -6401,7 +6403,15 @@
"description", "description",
coreViewModel2.translations.chatPage.message.messageContent, coreViewModel2.translations.chatPage.message.messageContent,
chatMessageViewModel.body chatMessageViewModel.body
)), /* @__PURE__ */ createElement("hr", null), /* @__PURE__ */ createElement("div", { class: "flex-column gap" }, /* @__PURE__ */ createElement("button", { "on:click": chatMessageViewModel.copyMessage }, coreViewModel2.translations.chatPage.message.copyMessageButton, /* @__PURE__ */ createElement("span", { class: "icon" }, "content_copy")), /* @__PURE__ */ createElement("button", { "on:click": chatMessageViewModel.resendMessage }, coreViewModel2.translations.chatPage.message.resendMessageButton, /* @__PURE__ */ createElement("span", { class: "icon" }, "redo")), /* @__PURE__ */ createElement("button", { "on:click": chatMessageViewModel.decryptMessage }, coreViewModel2.translations.chatPage.message.decryptMessageButton, /* @__PURE__ */ createElement("span", { class: "icon" }, "key")), /* @__PURE__ */ createElement("button", { "on:click": chatMessageViewModel.reply }, coreViewModel2.translations.chatPage.message.replyToMessageButton, /* @__PURE__ */ createElement("span", { class: "icon" }, "reply"))), /* @__PURE__ */ createElement("hr", null), /* @__PURE__ */ createElement("div", { class: "flex-column gap" }, MessageReactionButtonRow( )), /* @__PURE__ */ createElement("hr", null), /* @__PURE__ */ createElement("div", { class: "flex-column gap" }, /* @__PURE__ */ createElement("button", { "on:click": chatMessageViewModel.copyMessage }, coreViewModel2.translations.chatPage.message.copyMessageButton, /* @__PURE__ */ createElement("span", { class: "icon" }, "content_copy")), /* @__PURE__ */ createElement("button", { "on:click": chatMessageViewModel.resendMessage }, coreViewModel2.translations.chatPage.message.resendMessageButton, /* @__PURE__ */ createElement("span", { class: "icon" }, "redo")), /* @__PURE__ */ createElement("button", { "on:click": chatMessageViewModel.decryptMessage }, coreViewModel2.translations.chatPage.message.decryptMessageButton, /* @__PURE__ */ createElement("span", { class: "icon" }, "key")), /* @__PURE__ */ createElement(
"button",
{
"on:click": chatMessageViewModel.reply,
"toggle:disabled": chatMessageViewModel.messagePageViewModel.isReplyViewActive
},
coreViewModel2.translations.chatPage.message.replyToMessageButton,
/* @__PURE__ */ createElement("span", { class: "icon" }, "reply")
)), /* @__PURE__ */ createElement("hr", null), /* @__PURE__ */ createElement("div", { class: "flex-column gap" }, MessageReactionButtonRow(
coreViewModel2, coreViewModel2,
chatMessageViewModel chatMessageViewModel
), /* @__PURE__ */ createElement( ), /* @__PURE__ */ createElement(
@@ -6485,7 +6495,8 @@
{ {
class: "reply-button", class: "reply-button",
"on:click": chatMessageViewModel.reply, "on:click": chatMessageViewModel.reply,
"aria-label": coreViewModel2.translations.chatPage.message.replyToMessageButton "aria-label": coreViewModel2.translations.chatPage.message.replyToMessageButton,
"toggle:hidden": chatMessageViewModel.messagePageViewModel.isReplyViewActive
}, },
/* @__PURE__ */ createElement("span", { class: "icon" }, "reply") /* @__PURE__ */ createElement("span", { class: "icon" }, "reply")
))), ))),
@@ -6495,30 +6506,6 @@
); );
} }
// src/View/Components/replyViewHeader.tsx
function ReplyViewHeader(coreViewModel2, messagePageViewModel) {
const isHidden = createProxyState([messagePageViewModel.replyViewSelectedMessage], () => messagePageViewModel.replyViewSelectedMessage.value == void 0);
const label = createProxyState([messagePageViewModel.replyViewSelectedMessage], () => messagePageViewModel.replyViewSelectedMessage.value == void 0 ? "" : coreViewModel2.translations.chatPage.message.replyHeaderLabel(messagePageViewModel.replyViewSelectedMessage.value.sender));
const message = createProxyState([messagePageViewModel.replyViewSelectedMessage], () => messagePageViewModel.replyViewSelectedMessage.value == void 0 ? "" : messagePageViewModel.replyViewSelectedMessage.value.body.value);
return /* @__PURE__ */ createElement(
"div",
{
class: "reply-header",
"toggle:hidden": isHidden
},
/* @__PURE__ */ createElement("b", { class: "ellipsis", "subscribe:innerText": label }),
/* @__PURE__ */ createElement("span", { class: "secondary ellipsis", "subscribe:innerText": message }),
/* @__PURE__ */ createElement(
"button",
{
class: "standard square",
"on:click": messagePageViewModel.resetReplyView
},
/* @__PURE__ */ createElement("span", { class: "icon" }, "close")
)
);
}
// src/View/ChatPages/messagePage.tsx // src/View/ChatPages/messagePage.tsx
function MessagePage(coreViewModel2, messagePageViewModel) { function MessagePage(coreViewModel2, messagePageViewModel) {
messagePageViewModel.loadData(); messagePageViewModel.loadData();
@@ -6574,7 +6561,22 @@
ViewController.setFocusWithDelay(); ViewController.setFocusWithDelay();
}); });
const isInReplyView = createProxyState([messagePageViewModel.replyViewSelectedMessage], () => messagePageViewModel.replyViewSelectedMessage.value != void 0); const isInReplyView = createProxyState([messagePageViewModel.replyViewSelectedMessage], () => messagePageViewModel.replyViewSelectedMessage.value != void 0);
return /* @__PURE__ */ createElement("div", { id: "message-page", "toggle:reply-view": isInReplyView }, /* @__PURE__ */ createElement("div", { class: "pane-wrapper" }, /* @__PURE__ */ createElement("div", { class: "pane" }, /* @__PURE__ */ createElement("div", { class: "toolbar" }, /* @__PURE__ */ createElement("span", { class: "title" }, coreViewModel2.translations.chatPage.message.messagesHeadline), /* @__PURE__ */ createElement("span", null, /* @__PURE__ */ createElement( const title = createProxyState([messagePageViewModel.isReplyViewActive], () => messagePageViewModel.isReplyViewActive.value ? coreViewModel2.translations.chatPage.message.replyHeaderLabel(messagePageViewModel.replyViewSelectedMessage.value.body.value) : coreViewModel2.translations.chatPage.message.messagesHeadline);
return /* @__PURE__ */ createElement("div", { id: "message-page", "toggle:reply-view": isInReplyView }, /* @__PURE__ */ createElement("div", { class: "pane-wrapper" }, /* @__PURE__ */ createElement("div", { class: "pane" }, /* @__PURE__ */ createElement("div", { class: "toolbar" }, /* @__PURE__ */ createElement(
"button",
{
class: "ghost",
"on:click": messagePageViewModel.resetReplyView,
"toggle:hidden": messagePageViewModel.isReplyViewInactive
},
/* @__PURE__ */ createElement("span", { class: "icon" }, "arrow_back")
), /* @__PURE__ */ createElement(
"span",
{
class: "title ellipsis width-100 flex",
"subscribe:innerText": title
}
), /* @__PURE__ */ createElement("span", null, /* @__PURE__ */ createElement(
"button", "button",
{ {
class: "ghost inset-outline", class: "ghost inset-outline",
@@ -6583,7 +6585,7 @@
"toggle:selected": messagePageViewModel.isFilterActive "toggle:selected": messagePageViewModel.isFilterActive
}, },
/* @__PURE__ */ createElement("span", { class: "icon" }, "filter_alt") /* @__PURE__ */ createElement("span", { class: "icon" }, "filter_alt")
))), /* @__PURE__ */ createElement("div", { class: "content" }, ReplyViewHeader(coreViewModel2, messagePageViewModel), messageContainer, /* @__PURE__ */ createElement("div", { id: "composer" }, /* @__PURE__ */ createElement("div", { class: "content-width-constraint" }, /* @__PURE__ */ createElement( ))), /* @__PURE__ */ createElement("div", { class: "content" }, messageContainer, /* @__PURE__ */ createElement("div", { id: "composer" }, /* @__PURE__ */ createElement("div", { class: "content-width-constraint" }, /* @__PURE__ */ createElement(
"div", "div",
{ {
class: "reply-preview-wrapper", class: "reply-preview-wrapper",