PluralKit/src/lib/CardsHeader.svelte

38 lines
1.8 KiB
Svelte
Raw Normal View History

2021-12-11 12:01:36 +01:00
<script lang="ts">
2021-12-12 07:46:57 +01:00
import { Modal, CardHeader, CardTitle, Image, Spinner } from 'sveltestrap';
2021-12-11 12:01:36 +01:00
import FaUserCircle from 'svelte-icons/fa/FaUserCircle.svelte'
import default_avatar from '../assets/default_avatar.png';
export let item: any;
2021-12-11 12:01:36 +01:00
2021-12-18 20:09:23 +01:00
let icon_url = item.avatar_url ? item.avatar_url : item.icon ? item.icon : default_avatar;
2021-12-11 12:01:36 +01:00
let avatarOpen = false;
const toggleAvatarModal = () => (avatarOpen = !avatarOpen);
2021-12-12 07:46:57 +01:00
2021-12-19 09:53:13 +01:00
export let loading: boolean = false;
2021-12-11 12:01:36 +01:00
</script>
<CardTitle style="margin-top: 0px; margin-bottom: 0px; outline: none; align-items: center;" class="d-flex justify-content-between align-middle w-100">
2021-12-11 12:01:36 +01:00
<div>
<div class="icon d-inline-block">
<slot name="icon" />
2021-12-11 12:01:36 +01:00
</div>
<span style="vertical-align: middle;">{item.name} ({item.id})</span>
</div>
2021-12-12 07:46:57 +01:00
<div>
{#if loading}
<div class="d-inline-block mr-5" style="vertical-align: middle;"><Spinner color="primary" /></div>
{/if}
2021-12-18 20:09:23 +01:00
{#if item && (item.avatar_url || item.icon)}
<img tabindex={0} on:keyup={(event) => {if (event.key === "Enter") avatarOpen = true}} on:click={toggleAvatarModal} class="rounded-circle avatar" src={icon_url} alt="Icon" />
2021-12-11 12:01:36 +01:00
{:else}
<img class="rounded-circle avatar" src={default_avatar} alt="your system avatar (default)" />
{/if}
2021-12-12 07:46:57 +01:00
</div>
2021-12-11 12:01:36 +01:00
<Modal isOpen={avatarOpen} toggle={toggleAvatarModal}>
<div slot="external" on:click={toggleAvatarModal} style="height: 100%; max-width: 640px; width: 100%; margin-left: auto; margin-right: auto; display: flex;">
2021-12-18 20:09:23 +01:00
<Image style="display: block; margin: auto;" src={icon_url} thumbnail alt="Your system avatar" />
2021-12-11 12:01:36 +01:00
</div>
</Modal>
</CardTitle>