|
@@ -125,13 +125,6 @@
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- await tick();
|
|
|
- for (const folderId in folders) {
|
|
|
- if (folders[folderId] && folders[folderId].is_expanded) {
|
|
|
- folderRegistry[folderId]?.setFolderItems();
|
|
|
- }
|
|
|
- }
|
|
|
};
|
|
|
|
|
|
const createFolder = async ({ name, data }) => {
|
|
@@ -185,14 +178,15 @@
|
|
|
|
|
|
const initChatList = async () => {
|
|
|
// Reset pagination variables
|
|
|
- tags.set(await getAllTags(localStorage.token));
|
|
|
- pinnedChats.set(await getPinnedChatList(localStorage.token));
|
|
|
- initFolders();
|
|
|
-
|
|
|
+ console.log('initChatList');
|
|
|
currentChatPage.set(1);
|
|
|
allChatsLoaded = false;
|
|
|
|
|
|
await chats.set(await getChatList(localStorage.token, $currentChatPage));
|
|
|
+ const _chats = await getChatList(localStorage.token, $currentChatPage);
|
|
|
+ await chats.set(_chats);
|
|
|
+ })()
|
|
|
+ ]);
|
|
|
|
|
|
// Enable pagination
|
|
|
scrollPaginationEnabled.set(true);
|
|
@@ -342,57 +336,52 @@
|
|
|
selectedChatId = null;
|
|
|
};
|
|
|
|
|
|
+ let unsubscribers = [];
|
|
|
onMount(async () => {
|
|
|
showPinnedChat = localStorage?.showPinnedChat ? localStorage.showPinnedChat === 'true' : true;
|
|
|
+ await showSidebar.set(!$mobile ? localStorage.sidebar === 'true' : false);
|
|
|
|
|
|
- mobile.subscribe((value) => {
|
|
|
- if ($showSidebar && value) {
|
|
|
- showSidebar.set(false);
|
|
|
- }
|
|
|
-
|
|
|
- if ($showSidebar && !value) {
|
|
|
- const navElement = document.getElementsByTagName('nav')[0];
|
|
|
- if (navElement) {
|
|
|
- navElement.style['-webkit-app-region'] = 'drag';
|
|
|
+ unsubscribers = [
|
|
|
+ mobile.subscribe((value) => {
|
|
|
+ if ($showSidebar && value) {
|
|
|
+ showSidebar.set(false);
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- if (!$showSidebar && !value) {
|
|
|
- showSidebar.set(true);
|
|
|
- }
|
|
|
- });
|
|
|
+ if ($showSidebar && !value) {
|
|
|
+ const navElement = document.getElementsByTagName('nav')[0];
|
|
|
+ if (navElement) {
|
|
|
+ navElement.style['-webkit-app-region'] = 'drag';
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- showSidebar.set(!$mobile ? localStorage.sidebar === 'true' : false);
|
|
|
- showSidebar.subscribe(async (value) => {
|
|
|
- localStorage.sidebar = value;
|
|
|
+ if (!$showSidebar && !value) {
|
|
|
+ showSidebar.set(true);
|
|
|
+ }
|
|
|
+ }),
|
|
|
+ showSidebar.subscribe(async (value) => {
|
|
|
+ localStorage.sidebar = value;
|
|
|
|
|
|
- // nav element is not available on the first render
|
|
|
- const navElement = document.getElementsByTagName('nav')[0];
|
|
|
+ // nav element is not available on the first render
|
|
|
+ const navElement = document.getElementsByTagName('nav')[0];
|
|
|
|
|
|
- if (navElement) {
|
|
|
- if ($mobile) {
|
|
|
- if (!value) {
|
|
|
- navElement.style['-webkit-app-region'] = 'drag';
|
|
|
+ if (navElement) {
|
|
|
+ if ($mobile) {
|
|
|
+ if (!value) {
|
|
|
+ navElement.style['-webkit-app-region'] = 'drag';
|
|
|
+ } else {
|
|
|
+ navElement.style['-webkit-app-region'] = 'no-drag';
|
|
|
+ }
|
|
|
} else {
|
|
|
- navElement.style['-webkit-app-region'] = 'no-drag';
|
|
|
+ navElement.style['-webkit-app-region'] = 'drag';
|
|
|
}
|
|
|
- } else {
|
|
|
- navElement.style['-webkit-app-region'] = 'drag';
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- if (!value) {
|
|
|
- await initChannels();
|
|
|
- await initChatList();
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- chats.subscribe((value) => {
|
|
|
- initFolders();
|
|
|
- });
|
|
|
-
|
|
|
- await initChannels();
|
|
|
- await initChatList();
|
|
|
+ if (value) {
|
|
|
+ await initChannels();
|
|
|
+ await initChatList();
|
|
|
+ }
|
|
|
+ })
|
|
|
+ ];
|
|
|
|
|
|
window.addEventListener('keydown', onKeyDown);
|
|
|
window.addEventListener('keyup', onKeyUp);
|
|
@@ -411,6 +400,14 @@
|
|
|
});
|
|
|
|
|
|
onDestroy(() => {
|
|
|
+ if (unsubscribers && unsubscribers.length > 0) {
|
|
|
+ unsubscribers.forEach((unsubscriber) => {
|
|
|
+ if (unsubscriber) {
|
|
|
+ unsubscriber();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
window.removeEventListener('keydown', onKeyDown);
|
|
|
window.removeEventListener('keyup', onKeyUp);
|
|
|
|