enh: folders

This commit is contained in:
Timothy Jaeryang Baek
2025-07-19 14:29:08 +04:00
parent 3251f8b14d
commit 37c2fb0aa8
11 changed files with 361 additions and 50 deletions
+1 -3
View File
@@ -363,9 +363,7 @@
});
chats.subscribe((value) => {
if ($selectedFolder) {
initFolders();
}
initFolders();
});
await initChannels();
@@ -12,6 +12,7 @@
import Tooltip from '$lib/components/common/Tooltip.svelte';
import Download from '$lib/components/icons/Download.svelte';
export let align: 'start' | 'end' = 'start';
export let onEdit = () => {};
export let onExport = () => {};
export let onDelete = () => {};
@@ -36,7 +37,7 @@
class="w-full max-w-[170px] rounded-lg px-1 py-1.5 z-50 bg-white dark:bg-gray-850 dark:text-white shadow-lg"
sideOffset={-2}
side="bottom"
align="start"
{align}
transition={flyAndScale}
>
<DropdownMenu.Item
@@ -16,6 +16,8 @@
export let show = false;
export let onSubmit: Function = (e) => {};
export let edit = false;
export let folder = null;
let name = '';
@@ -53,7 +55,11 @@
<div>
<div class=" flex justify-between dark:text-gray-300 px-5 pt-4 pb-1">
<div class=" text-lg font-medium self-center">
{$i18n.t('Edit Folder')}
{#if edit}
{$i18n.t('Edit Folder')}
{:else}
{$i18n.t('Create Folder')}
{/if}
</div>
<button
class="self-center"
@@ -36,7 +36,7 @@
import ChatItem from './ChatItem.svelte';
import FolderMenu from './Folders/FolderMenu.svelte';
import DeleteConfirmDialog from '$lib/components/common/ConfirmDialog.svelte';
import EditFolderModal from './Folders/EditFolderModal.svelte';
import FolderModal from './Folders/FolderModal.svelte';
import { goto } from '$app/navigation';
export let open = false;
@@ -53,7 +53,7 @@
let folderElement;
let showEditFolderModal = false;
let showFolderModal = false;
let edit = false;
let draggedOver = false;
@@ -378,8 +378,9 @@
</div>
</DeleteConfirmDialog>
<EditFolderModal
bind:show={showEditFolderModal}
<FolderModal
bind:show={showFolderModal}
edit={true}
folder={folders[folderId]}
onSubmit={updateHandler}
/>
@@ -482,7 +483,7 @@
>
<FolderMenu
onEdit={() => {
showEditFolderModal = true;
showFolderModal = true;
}}
onDelete={() => {
showDeleteConfirm = true;