fix context bug

This commit is contained in:
marlon-erler
2026-09-30 15:42:40 +02:00
parent ec135e6d26
commit 6079227356
6 changed files with 68 additions and 53 deletions
+12 -5
View File
@@ -1438,9 +1438,9 @@
let exitNext = false; let exitNext = false;
while (this.contexts.length > 0) { while (this.contexts.length > 0) {
const currentContext = this.context; const currentContext = this.context;
if (!currentContext) return; if (!currentContext) break;
const response = currentContext.handleContextClose(fromHistoryEvent); const response = currentContext.handleContextClose(fromHistoryEvent);
if (response == false) return; if (response == false) break;
this.contextStack.delete(currentContext.contextId); this.contextStack.delete(currentContext.contextId);
if (response == true) { if (response == true) {
exitNext = true; exitNext = true;
@@ -4629,6 +4629,11 @@
this.secondaryChannels.add(secondaryChannel); this.secondaryChannels.add(secondaryChannel);
} }
}; };
// context
this.handleContextClose = (fromHistoryEvent) => {
if (!fromHistoryEvent) return;
return true;
};
this.preloadData(); this.preloadData();
this.cannotSetEncryptionKey = createProxyState( this.cannotSetEncryptionKey = createProxyState(
[this.encryptionKeyInput], [this.encryptionKeyInput],
@@ -4961,9 +4966,11 @@
}; };
// context // context
this.handleContextClose = (fromHistoryEvent) => { this.handleContextClose = (fromHistoryEvent) => {
if (this.replyViewSelectedMessage.value == void 0 && fromHistoryEvent) return true; if (fromHistoryEvent) {
this.resetReplyView(); if (this.replyViewSelectedMessage.value == void 0) return true;
return false; this.resetReplyView();
return false;
}
}; };
this.restoreFilter(); this.restoreFilter();
this.cannotSendMessage = createProxyState( this.cannotSendMessage = createProxyState(
Vendored
+1 -1
View File
@@ -1,4 +1,4 @@
const VERSION = "2610 Beta 21.9" const VERSION = "2610 Beta 21.11"
function processUrl(event) { function processUrl(event) {
const url = event.request.url; const url = event.request.url;
+1 -1
View File
@@ -1 +1 @@
2610 Beta 21.9 2610 Beta 21.11
+3 -4
View File
@@ -56,17 +56,16 @@ export default class CoreViewModel {
while (this.contexts.length > 0) { while (this.contexts.length > 0) {
const currentContext: Context | undefined = this.context; const currentContext: Context | undefined = this.context;
if (!currentContext) return; if (!currentContext) break;
const response = currentContext.handleContextClose(fromHistoryEvent); const response = currentContext.handleContextClose(fromHistoryEvent);
if (response == false) return; if (response == false) break;
this.contextStack.delete(currentContext.contextId); this.contextStack.delete(currentContext.contextId);
if (response == true) { if (response == true) {
exitNext = true; exitNext = true;
continue; continue;
} else if (exitNext == true) { } else if (exitNext == true) {
break break
} } else if (currentContext.contextId == contextId) {
else if (currentContext.contextId == contextId) {
break; break;
} }
} }
+45 -42
View File
@@ -198,57 +198,60 @@ export default class MessagePageViewModel extends Context {
// context // context
handleContextClose = (fromHistoryEvent: boolean):boolean=> { handleContextClose = (fromHistoryEvent: boolean):boolean=> {
if (this.replyViewSelectedMessage.value == undefined && fromHistoryEvent) return true; if (fromHistoryEvent) {
this.resetReplyView(); if (this.replyViewSelectedMessage.value == undefined) return true;
return false;
this.resetReplyView();
return false;
}
} }
// init // init
constructor( constructor(
public readonly coreViewModel: CoreViewModel, public readonly coreViewModel: CoreViewModel,
public readonly chatViewModel: ChatViewModel, public readonly chatViewModel: ChatViewModel,
public readonly contactListViewModel: ContactListViewModel, public readonly contactListViewModel: ContactListViewModel,
) { ) {
super("message-page"); super("message-page");
this.restoreFilter(); this.restoreFilter();
// states // states
this.cannotSendMessage = React.createProxyState( this.cannotSendMessage = React.createProxyState(
[ [
this.chatViewModel.settingsViewModel.username, this.chatViewModel.settingsViewModel.username,
this.composingMessage, this.composingMessage,
], ],
() => () =>
this.chatViewModel.settingsViewModel.username.value == "" || this.chatViewModel.settingsViewModel.username.value == "" ||
this.composingMessage.value == "", this.composingMessage.value == "",
); );
this.searchViewModel = new SearchViewModel( this.searchViewModel = new SearchViewModel(
this.chatMessageViewModels, this.chatMessageViewModels,
this.filteredMessageViewModels, this.filteredMessageViewModels,
(chatMessageViewModel) => [chatMessageViewModel.body.value], (chatMessageViewModel) => [chatMessageViewModel.body.value],
new React.ListState(), new React.ListState(),
); );
this.isFilterActive = React.createProxyState( this.isFilterActive = React.createProxyState(
[this.searchViewModel.appliedQuery, this.reactionFilter], [this.searchViewModel.appliedQuery, this.reactionFilter],
() => () =>
this.searchViewModel.appliedQuery.value != "" || this.searchViewModel.appliedQuery.value != "" ||
this.reactionFilter.value != undefined, this.reactionFilter.value != undefined,
); );
// keystrokes // keystrokes
this.registerKeyStroke(CommonKeys.Filter, this.showFilterModal); this.registerKeyStroke(CommonKeys.Filter, this.showFilterModal);
this.registerKeyStroke(CommonKeys.CloseOrCancel, () => { this.registerKeyStroke(CommonKeys.CloseOrCancel, () => {
if (this.isFilterModalOpen.value == true) { if (this.isFilterModalOpen.value == true) {
this.hideFilterModal(); this.hideFilterModal();
} else { } else {
this.replyingMessage.value = undefined; this.replyingMessage.value = undefined;
} }
}); });
this.registerKeyStroke(CommonKeys.Reset, this.resetFilter); this.registerKeyStroke(CommonKeys.Reset, this.resetFilter);
this.registerKeyStroke(CommonKeys.Create, this.setFocus); this.registerKeyStroke(CommonKeys.Create, this.setFocus);
this.chatViewModel.registerContext(ChatPageTypes.Messages, this); this.chatViewModel.registerContext(ChatPageTypes.Messages, this);
} }
} }
@@ -115,6 +115,12 @@ export default class SettingsPageViewModel extends Context {
} }
}; };
// context
handleContextClose = (fromHistoryEvent: boolean): void | boolean => {
if (!fromHistoryEvent) return;
return true;
}
// init // init
constructor( constructor(
public readonly coreViewModel: CoreViewModel, public readonly coreViewModel: CoreViewModel,