make notification clickable to open chat
This commit is contained in:
@@ -17,13 +17,27 @@ export default class NotificationViewModel {
|
||||
const notification = NotificationViewModel.createNotification(message);
|
||||
if (this.seenMessageIds.has(message.id)) return;
|
||||
|
||||
const currentChat = this.chatListViewModel.selectedChat.value.chatModel.info.primaryChannel;
|
||||
const currentChat =
|
||||
this.chatListViewModel.selectedChat.value.chatModel.info
|
||||
.primaryChannel;
|
||||
if (notification.chat == currentChat) return;
|
||||
|
||||
this.messagesInMarquee.push(notification);
|
||||
this.startLoop();
|
||||
};
|
||||
|
||||
openNotification = () => {
|
||||
const notification = this.marquee.value;
|
||||
if (notification == undefined) return;
|
||||
|
||||
const chat = [
|
||||
...this.chatListViewModel.chatViewModels.value.values(),
|
||||
].find(
|
||||
(chat) => chat.chatModel.info.primaryChannel == notification.chat,
|
||||
);
|
||||
chat.open();
|
||||
};
|
||||
|
||||
// loop
|
||||
loop = () => {
|
||||
if (this.messagesInMarquee.length == 0) {
|
||||
@@ -50,6 +64,11 @@ export default class NotificationViewModel {
|
||||
this.interval = undefined;
|
||||
};
|
||||
|
||||
skipLoop = () => {
|
||||
this.stopLoop();
|
||||
this.startLoop();
|
||||
}
|
||||
|
||||
// init
|
||||
constructor(chatListViewModel: ChatListViewModel) {
|
||||
this.chatListViewModel = chatListViewModel;
|
||||
|
||||
Reference in New Issue
Block a user