SidebarActionButton.svelte 972 B

1234567891011121314151617181920212223242526272829303132
  1. <script lang="ts">
  2. import { createCollection, createRequest } from "$lib/state.svelte";
  3. import { Button } from "./ui/button";
  4. import * as DropdownMenu from "./ui/dropdown-menu";
  5. import DropdownMenuItem from "./ui/dropdown-menu/dropdown-menu-item.svelte";
  6. import { state as _state } from "$lib/state.svelte";
  7. const { id = null } = $props();
  8. const canAdd = $derived(
  9. id === null || _state.indexes[id].type === "Collection",
  10. );
  11. </script>
  12. {#if canAdd}
  13. <DropdownMenu.Root>
  14. <DropdownMenu.Trigger>
  15. {#snippet child({ props })}
  16. <Button {...props} variant="outline">...</Button>
  17. {/snippet}
  18. </DropdownMenu.Trigger>
  19. <DropdownMenu.Content align="start">
  20. <DropdownMenuItem onclick={() => createCollection(id)}
  21. >New collection</DropdownMenuItem
  22. >
  23. <DropdownMenuItem onclick={() => createRequest(id)}
  24. >New request</DropdownMenuItem
  25. >
  26. </DropdownMenu.Content>
  27. </DropdownMenu.Root>
  28. {/if}