Files.svelte 812 B

123456789101112131415161718192021222324252627282930313233
  1. <script lang="ts">
  2. import { createEventDispatcher } from 'svelte';
  3. const dispatch = createEventDispatcher();
  4. import FileItem from '$lib/components/common/FileItem.svelte';
  5. export let selectedFileId = null;
  6. export let files = [];
  7. </script>
  8. <div class=" max-h-full flex flex-col w-full">
  9. {#each files as file (file.id)}
  10. <div class="mt-2 px-2">
  11. <FileItem
  12. className="w-full"
  13. colorClassName="{selectedFileId === file.id
  14. ? ' bg-gray-50 dark:bg-gray-850'
  15. : 'bg-transparent'} hover:bg-gray-50 dark:hover:bg-gray-850 transition"
  16. {file}
  17. name={file.meta.name}
  18. type="file"
  19. size={file.meta?.size ?? ''}
  20. dismissible
  21. on:click={() => {
  22. dispatch('click', file.id);
  23. }}
  24. on:dismiss={() => {
  25. dispatch('delete', file.id);
  26. }}
  27. />
  28. </div>
  29. {/each}
  30. </div>