speed up folder handling by using a list for folders and letters assinged to them rather than multiple different events
This commit is contained in:
parent
f70f4c4518
commit
1b2177933c
7 changed files with 95 additions and 129 deletions
|
@ -16,7 +16,6 @@
|
|||
async function addNewFolderPressed() {
|
||||
const newFolder = await createFolder(newFolderName, '');
|
||||
if (!newFolder) return;
|
||||
await newFolder.publish();
|
||||
folders = [...folders, { id: newFolder.id, name: newFolderName, icon: 'eos-icons:plus' }];
|
||||
newFolderName = '';
|
||||
isAddingFolder = false;
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
<script lang="ts">
|
||||
import { groupByStamps, sortBy } from '$lib/stores.svelte';
|
||||
import { groupByStamps, ndk, sortBy } from '$lib/stores.svelte';
|
||||
import Icon from '@iconify/svelte';
|
||||
import NostrIdentifier from './NostrIdentifier.svelte';
|
||||
import { getReadableDate, getReadableTime, moveMessageToFolder } from '$lib/utils.svelte.js';
|
||||
import { getReadableDate, getReadableTime } from '$lib/utils.svelte.js';
|
||||
import Dialog from './Dialog.svelte';
|
||||
import Select from './Select.svelte';
|
||||
import type { Letter } from '$lib/letter';
|
||||
import { slide } from 'svelte/transition';
|
||||
import { FolderLabel } from '$lib/folderLabel';
|
||||
|
||||
let {
|
||||
letters,
|
||||
|
@ -95,14 +96,10 @@
|
|||
async function doMove() {
|
||||
if (!moveFolderName) return alert('Please select a folder');
|
||||
if (selectedLetters.length === 0) return alert('Please select at least one letter');
|
||||
const events = [];
|
||||
for (let letter of selectedLetters)
|
||||
events.push(await moveMessageToFolder(
|
||||
letter,
|
||||
moveFolderName
|
||||
));
|
||||
for (let event of events)
|
||||
await event.publish();
|
||||
const folderIndexToMoveTo = foldersList.findIndex(f => f.id === moveFolderName);
|
||||
if (folderIndexToMoveTo === -1) return alert('Please select a valid folder');
|
||||
foldersList[folderIndexToMoveTo].letters = [...foldersList[folderIndexToMoveTo].letters, ...selectedLetters];
|
||||
await FolderLabel.save($ndk, foldersList);
|
||||
selectedLetters = [];
|
||||
moveFolderName = '';
|
||||
moveFolderDialogOpen = false;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue