mirror of
https://github.com/immich-app/immich.git
synced 2025-06-23 15:34:03 -04:00
* AFixed overlay issue of modal * Added modal with existing user * Added custom scrollbar to all pages * Fixed Document is not define when access document DOM node in browswer * Added context menu * Added api to remove user from album * Handle user leave album * Added share button to non-shared album * Added padding to album viewer: * Fixed margin top of asset selection page * Fixed issue cannot push to dockerhub
45 lines
978 B
Svelte
45 lines
978 B
Svelte
<script lang="ts">
|
|
import { api, UserResponseDto } from '@api';
|
|
import { createEventDispatcher } from 'svelte';
|
|
|
|
export let user: UserResponseDto;
|
|
|
|
// Avatar Size In Pixel
|
|
export let size: number = 48;
|
|
|
|
const dispatch = createEventDispatcher();
|
|
const getUserAvatar = async () => {
|
|
try {
|
|
const { data } = await api.userApi.getProfileImage(user.id, {
|
|
responseType: 'blob'
|
|
});
|
|
|
|
if (data instanceof Blob) {
|
|
return URL.createObjectURL(data);
|
|
}
|
|
} catch (e) {
|
|
return '/favicon.png';
|
|
}
|
|
};
|
|
</script>
|
|
|
|
{#await getUserAvatar()}
|
|
<button
|
|
on:click={() => dispatch('click')}
|
|
style:width={`${size}px`}
|
|
style:height={`${size}px`}
|
|
class={` rounded-full bg-immich-primary/25`}
|
|
/>
|
|
{:then data}
|
|
<button on:click={() => dispatch('click')}>
|
|
<img
|
|
src={data}
|
|
alt="profile-img"
|
|
style:width={`${size}px`}
|
|
style:height={`${size}px`}
|
|
class={`inline rounded-full object-cover border shadow-md`}
|
|
title={user.email}
|
|
/>
|
|
</button>
|
|
{/await}
|