immich/web/src/lib/components/shared-components/side-bar/side-bar-button.svelte

27 lines
950 B
Svelte
Raw Normal View History

<script lang="ts">
export let title: string;
2022-09-08 17:30:49 +02:00
// TODO: why `any` here? There should be a expected type for this
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export let logo: any;
export let isSelected: boolean;
import { createEventDispatcher } from 'svelte';
const dispatch = createEventDispatcher();
const onButtonClicked = () => dispatch('selected');
</script>
<div
on:click={onButtonClicked}
on:keydown={onButtonClicked}
2022-10-26 11:10:48 -05:00
class={`flex gap-4 place-items-center pl-5 py-3 rounded-tr-full rounded-br-full hover:bg-immich-gray dark:hover:bg-immich-dark-gray hover:text-immich-primary dark:text-immich-dark-fg dark:hover:text-immich-dark-primary hover:cursor-pointer
${
isSelected &&
'bg-immich-primary/10 dark:bg-immich-dark-primary/10 text-immich-primary dark:text-[#adcbfa] hover:bg-immich-primary/25'
}
`}
>
<svelte:component this={logo} size="24" />
2022-10-26 11:10:48 -05:00
<p class="font-medium text-sm ">{title}</p>
</div>