Folders.svelte 810 B

12345678910111213141516171819202122232425262728293031323334
  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. {folders}
  20. {folderId}
  21. on:import={(e) => {
  22. dispatch('import', e.detail);
  23. }}
  24. on:update={(e) => {
  25. dispatch('update', e.detail);
  26. }}
  27. on:change={(e) => {
  28. dispatch('change', e.detail);
  29. }}
  30. />
  31. {/each}