2023-03-11 01:36:30 +01:00
|
|
|
<script lang="ts">
|
|
|
|
import { Icon, Tooltip } from "sveltestrap";
|
|
|
|
|
2023-04-19 12:24:34 +02:00
|
|
|
import type { CustomPreference, CustomPreferences } from "$lib/api/entities";
|
|
|
|
import defaultPreferences from "$lib/api/default_preferences";
|
2023-03-11 01:36:30 +01:00
|
|
|
|
2023-04-19 12:24:34 +02:00
|
|
|
export let preferences: CustomPreferences;
|
|
|
|
export let status: string;
|
2023-03-14 15:00:56 +01:00
|
|
|
export let className: string | null = null;
|
2023-03-11 01:36:30 +01:00
|
|
|
|
2023-04-19 12:24:34 +02:00
|
|
|
let mergedPreferences: CustomPreferences;
|
|
|
|
$: mergedPreferences = Object.assign(defaultPreferences, preferences);
|
2023-03-11 01:36:30 +01:00
|
|
|
|
2023-04-19 12:24:34 +02:00
|
|
|
let currentPreference: CustomPreference;
|
|
|
|
$: currentPreference =
|
2023-04-19 17:17:44 +02:00
|
|
|
status in mergedPreferences ? mergedPreferences[status] : defaultPreferences.missing;
|
2023-03-11 01:36:30 +01:00
|
|
|
|
|
|
|
let iconElement: HTMLElement;
|
|
|
|
</script>
|
|
|
|
|
2023-04-19 12:24:34 +02:00
|
|
|
<span bind:this={iconElement} tabindex={0}
|
|
|
|
><Icon name={currentPreference.icon} class={className} /></span
|
|
|
|
>
|
|
|
|
<Tooltip target={iconElement} placement="top">{currentPreference.tooltip}</Tooltip>
|