Folders.svelte 709 B

1234567891011121314151617181920212223242526272829
  1. <script lang="ts">
  2. import { createEventDispatcher } from 'svelte';
  3. const dispatch = createEventDispatcher();
  4. import RecursiveFolder from './RecursiveFolder.svelte';
  5. export let folders = {};
  6. let folderList = [];
  7. // Get the list of folders that have no parent, sorted by name alphabetically
  8. $: folderList = Object.keys(folders)
  9. .filter((key) => folders[key].parent_id === null)
  10. .sort((a, b) =>
  11. folders[a].name.localeCompare(folders[b].name, undefined, {
  12. numeric: true,
  13. sensitivity: 'base'
  14. })
  15. );
  16. </script>
  17. {#each folderList as folderId (folderId)}
  18. <RecursiveFolder
  19. className="px-2"
  20. {folders}
  21. {folderId}
  22. on:update={(e) => {
  23. dispatch('update', e.detail);
  24. }}
  25. />
  26. {/each}