2022-05-21 02:23:55 -05:00
|
|
|
<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
|
2022-05-21 02:23:55 -05:00
|
|
|
export let logo: any;
|
|
|
|
|
export let actionType: AdminSideBarSelection | AppSideBarSelection;
|
|
|
|
|
export let isSelected: boolean;
|
|
|
|
|
|
|
|
|
|
import { createEventDispatcher } from 'svelte';
|
2022-07-15 23:18:17 -05:00
|
|
|
import type {
|
|
|
|
|
AdminSideBarSelection,
|
|
|
|
|
AppSideBarSelection
|
|
|
|
|
} from '../../../models/admin-sidebar-selection';
|
2022-05-21 02:23:55 -05:00
|
|
|
|
|
|
|
|
const dispatch = createEventDispatcher();
|
|
|
|
|
|
|
|
|
|
const onButtonClicked = () => {
|
|
|
|
|
dispatch('selected', {
|
2022-07-15 23:18:17 -05:00
|
|
|
actionType
|
2022-05-21 02:23:55 -05:00
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<div
|
|
|
|
|
on:click={onButtonClicked}
|
2022-12-06 18:08:08 -06:00
|
|
|
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'
|
|
|
|
|
}
|
2022-05-21 02:23:55 -05:00
|
|
|
`}
|
|
|
|
|
>
|
|
|
|
|
<svelte:component this={logo} size="24" />
|
2022-10-26 11:10:48 -05:00
|
|
|
<p class="font-medium text-sm ">{title}</p>
|
2022-05-21 02:23:55 -05:00
|
|
|
</div>
|