2024-10-17 04:05:03 +00:00
|
|
|
<script lang="ts">
|
2024-10-17 06:06:53 +00:00
|
|
|
import { createEventDispatcher } from 'svelte';
|
|
|
|
|
|
|
|
|
|
const dispatch = createEventDispatcher();
|
2024-10-17 04:05:03 +00:00
|
|
|
import RecursiveFolder from './RecursiveFolder.svelte';
|
|
|
|
|
export let folders = {};
|
|
|
|
|
|
|
|
|
|
let folderList = [];
|
|
|
|
|
// Get the list of folders that have no parent, sorted by name alphabetically
|
|
|
|
|
$: folderList = Object.keys(folders)
|
|
|
|
|
.filter((key) => folders[key].parent_id === null)
|
2024-10-17 04:49:22 +00:00
|
|
|
.sort((a, b) =>
|
|
|
|
|
folders[a].name.localeCompare(folders[b].name, undefined, {
|
|
|
|
|
numeric: true,
|
|
|
|
|
sensitivity: 'base'
|
|
|
|
|
})
|
|
|
|
|
);
|
2024-10-17 04:05:03 +00:00
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
{#each folderList as folderId (folderId)}
|
2024-10-17 06:06:53 +00:00
|
|
|
<RecursiveFolder
|
2025-01-04 10:42:26 +00:00
|
|
|
className=""
|
2024-10-17 06:06:53 +00:00
|
|
|
{folders}
|
|
|
|
|
{folderId}
|
2024-10-18 03:13:28 +00:00
|
|
|
on:import={(e) => {
|
|
|
|
|
dispatch('import', e.detail);
|
|
|
|
|
}}
|
2024-10-17 06:06:53 +00:00
|
|
|
on:update={(e) => {
|
|
|
|
|
dispatch('update', e.detail);
|
|
|
|
|
}}
|
2024-10-18 02:09:01 +00:00
|
|
|
on:change={(e) => {
|
|
|
|
|
dispatch('change', e.detail);
|
|
|
|
|
}}
|
2024-10-17 06:06:53 +00:00
|
|
|
/>
|
2024-10-17 04:05:03 +00:00
|
|
|
{/each}
|