side-bar-button.svelte 844 B

123456789101112131415161718192021222324252627282930
  1. <script lang="ts">
  2. export let title: string;
  3. export let logo: any;
  4. export let actionType: AdminSideBarSelection | AppSideBarSelection;
  5. export let isSelected: boolean;
  6. import { createEventDispatcher } from 'svelte';
  7. import type {
  8. AdminSideBarSelection,
  9. AppSideBarSelection
  10. } from '../../../models/admin-sidebar-selection';
  11. const dispatch = createEventDispatcher();
  12. const onButtonClicked = () => {
  13. dispatch('selected', {
  14. actionType
  15. });
  16. };
  17. </script>
  18. <div
  19. on:click={onButtonClicked}
  20. class={`flex gap-4 place-items-center pl-5 py-3 rounded-tr-full rounded-br-full hover:bg-gray-200 hover:text-immich-primary hover:cursor-pointer
  21. ${isSelected && 'bg-immich-primary/10 text-immich-primary hover:bg-immich-primary/25'}
  22. `}
  23. >
  24. <svelte:component this={logo} size="24" />
  25. <p class="font-medium text-sm">{title}</p>
  26. </div>