add namespaces

This commit is contained in:
marlon-erler
2026-05-06 16:34:29 +00:00
parent dbf3b1a34a
commit 9012dcd2d5
9 changed files with 152 additions and 18 deletions
+1 -1
View File
@@ -9,7 +9,7 @@ import ConnectionModel from "../../Model/Global/connectionModel";
import ChatListModel from "../../Model/Chat/chatListModel";
export default class CoreViewModel {
readonly BUILD = "Build 26.05.05.B";
readonly BUILD = "Build 26.05.06.A";
translations: Translations;
@@ -98,7 +98,7 @@ export default class FileTransferViewModel extends Context {
this.coreViewModel.chatListModel.chatModels;
for (const chatModel of chatModels) {
this.chatFileOptions.add({
label: chatModel.info.primaryChannel,
label: chatModel.unwrappedPrimaryChannel,
path: chatModel.getBasePath(),
});
}
@@ -20,8 +20,8 @@ export default class NotificationViewModel {
if (this.chatListViewModel.selectedChat.value == undefined) return;
const currentChat =
this.chatListViewModel.selectedChat.value.chatModel.info
.primaryChannel;
this.chatListViewModel.selectedChat.value.chatModel.
unwrappedPrimaryChannel
const currentPage =
this.chatListViewModel.selectedChat.value.selectedPage.value;
if (
@@ -41,7 +41,7 @@ export default class NotificationViewModel {
const chat = [
...this.chatListViewModel.chatViewModels.value.values(),
].find(
(chat) => chat.chatModel.info.primaryChannel == notification.chat,
(chat) => chat.chatModel.unwrappedPrimaryChannel == notification.chat,
);
chat.open();
chat.openPage(ChatPageTypes.Messages);
@@ -79,7 +79,7 @@ export default class NotificationViewModel {
};
// init
constructor(public readonly chatListViewModel: ChatListViewModel) {}
constructor(public readonly chatListViewModel: ChatListViewModel) { }
// util
static createNotification(message: ChatMessage): Notification {
+21 -1
View File
@@ -8,6 +8,9 @@ export default class SettingsPageViewModel extends Context {
primaryChannel: React.State<string> = new React.State("");
primaryChannelInput: React.State<string> = new React.State("");
namespace: React.State<string> = new React.State("");
namespaceInput: React.State<string> = new React.State("");
secondaryChannels: React.ListState<string> = new React.ListState();
newSecondaryChannelInput: React.State<string> = new React.State("");
@@ -27,6 +30,11 @@ export default class SettingsPageViewModel extends Context {
this.primaryChannelInput.value == "" ||
this.primaryChannelInput.value == this.primaryChannel.value,
);
cannotSetNamespace: React.State<boolean> = React.createProxyState(
[this.namespace, this.namespaceInput],
() =>
this.namespaceInput.value == this.namespace.value,
);
cannotAddSecondaryChannel: React.State<boolean> = React.createProxyState(
[this.newSecondaryChannelInput],
() => this.newSecondaryChannelInput.value == "",
@@ -44,6 +52,14 @@ export default class SettingsPageViewModel extends Context {
this.chatViewModel.chatListViewModel.updateIndices();
};
setNamespace = (): void => {
this.chatViewModel.chatModel.setNamespace(
this.namespaceInput.value,
);
this.namespace.value =
this.chatViewModel.chatModel.info.namespace;
};
addSecondaryChannel = (): void => {
this.secondaryChannels.add(this.newSecondaryChannelInput.value);
this.newSecondaryChannelInput.value = "";
@@ -85,13 +101,17 @@ export default class SettingsPageViewModel extends Context {
preloadData = (): void => {
this.primaryChannel.value =
this.chatViewModel.chatModel.info.primaryChannel;
this.namespace.value =
this.chatViewModel.chatModel.info.namespace;
this.color.value = this.chatViewModel.chatModel.color;
};
loadData = (): void => {
this.primaryChannelInput.value =
this.chatViewModel.chatModel.info.primaryChannel;
this.primaryChannel.value;
this.namespaceInput.value =
this.namespace.value;
this.loadSecondaryChannels();