This commit is contained in:
Timothy Jaeryang Baek committed 2026-06-15 23:42:29 +02:00
1 parent c783fd30f2
commit 45fcf272ef
11 files changed
+474 -66

No files matched your search

+31 -1
View File
@@ -46,7 +46,7 @@
deleteAllChats,
getChatListBySearchText
} from '$lib/apis/chats';
import { createNewFolder, getFolders, updateFolderParentIdById } from '$lib/apis/folders';
import { createNewFolder, getFolders, getSharedFolders, updateFolderParentIdById } from '$lib/apis/folders';
import { createNewNote, getPinnedNoteList, toggleNotePinnedStatusById } from '$lib/apis/notes';
import { updateUserSettings } from '$lib/apis/users';
import { checkActiveChats } from '$lib/apis/tasks';
@@ -61,6 +61,7 @@
import Folder from '../common/Folder.svelte';
import Tooltip from '../common/Tooltip.svelte';
import Folders from './Sidebar/Folders.svelte';
import SharedFolderItem from './Sidebar/SharedFolderItem.svelte';
import { getChannels, createNewChannel } from '$lib/apis/channels';
import ChannelModal from './Sidebar/ChannelModal.svelte';
import ChannelItem from './Sidebar/ChannelItem.svelte';
@@ -98,12 +99,15 @@
let showPinnedNotes = false;
let showChannels = false;
let showFolders = false;
let showSharedFolders = false;
let folders = {};
let folderRegistry = {};
let newFolderId = null;
let sharedFolders: any[] = [];
$: pinnedItems = $settings?.pinnedMenuItems ?? DEFAULT_PINNED_ITEMS;
const isMenuItemVisible = (id) => {
@@ -215,6 +219,31 @@
});
}
}
// Merge shared folders into the same structure
try {
sharedFolders = await getSharedFolders(localStorage.token);
} catch (e) {
sharedFolders = [];
}
for (const sf of sharedFolders) {
if (folders[sf.id]) continue; // Already owned by user
folders[sf.id] = { ...sf, shared: true };
}
// Build parent-child relationships for shared folders
for (const sf of sharedFolders) {
if (folders[sf.id]?.shared && sf.parent_id && folders[sf.parent_id]) {
folders[sf.parent_id].childrenIds = folders[sf.parent_id].childrenIds
? [...new Set([...folders[sf.parent_id].childrenIds, sf.id])]
: [sf.id];
}
}
};
const initSharedFolders = async () => {
await initFolders();
};
const createFolder = async ({ name, data, parent_id }) => {
@@ -291,6 +320,7 @@
scrollPaginationEnabled.set(false);
initFolders();
initSharedFolders();
await Promise.all([
await (async () => {
console.log('Init tags');