diff --git a/web/src/lib/components/shared-components/navigation-bar/account-info-panel.svelte b/web/src/lib/components/shared-components/navigation-bar/account-info-panel.svelte index 5b778cf2271..c16003ca663 100644 --- a/web/src/lib/components/shared-components/navigation-bar/account-info-panel.svelte +++ b/web/src/lib/components/shared-components/navigation-bar/account-info-panel.svelte @@ -5,15 +5,13 @@ import CircleIconButton from '$lib/components/elements/buttons/circle-icon-button.svelte'; import Icon from '$lib/components/elements/icon.svelte'; import { AppRoute } from '$lib/constants'; + import { modalManager } from '$lib/managers/modal-manager.svelte'; + import AvatarEditModal from '$lib/modals/AvatarEditModal.svelte'; import { user } from '$lib/stores/user.store'; - import { handleError } from '$lib/utils/handle-error'; - import { deleteProfileImage, updateMyUser, type UserAvatarColor } from '@immich/sdk'; import { mdiCog, mdiLogout, mdiPencil, mdiWrench } from '@mdi/js'; import { t } from 'svelte-i18n'; import { fade } from 'svelte/transition'; - import { NotificationType, notificationController } from '../notification/notification'; import UserAvatar from '../user-avatar.svelte'; - import AvatarSelector from './avatar-selector.svelte'; interface Props { onLogout: () => void; @@ -21,26 +19,6 @@ } let { onLogout, onClose = () => {} }: Props = $props(); - - let isShowSelectAvatar = $state(false); - - const handleSaveProfile = async (color: UserAvatarColor) => { - try { - if ($user.profileImagePath !== '') { - await deleteProfileImage(); - } - - $user = await updateMyUser({ userUpdateMeDto: { avatarColor: color } }); - isShowSelectAvatar = false; - - notificationController.show({ - message: $t('saved_profile'), - type: NotificationType.Info, - }); - } catch (error) { - handleError(error, $t('errors.unable_to_save_profile')); - } - };
(isShowSelectAvatar = true)} + onclick={() => modalManager.show(AvatarEditModal, {})} />
@@ -111,7 +89,3 @@ > - -{#if isShowSelectAvatar} - (isShowSelectAvatar = false)} onChoose={handleSaveProfile} /> -{/if} diff --git a/web/src/lib/components/shared-components/navigation-bar/avatar-selector.svelte b/web/src/lib/components/shared-components/navigation-bar/avatar-selector.svelte deleted file mode 100644 index ce441d553b4..00000000000 --- a/web/src/lib/components/shared-components/navigation-bar/avatar-selector.svelte +++ /dev/null @@ -1,28 +0,0 @@ - - - -
-
- {#each colors as color (color)} - - {/each} -
-
-
diff --git a/web/src/lib/modals/AvatarEditModal.svelte b/web/src/lib/modals/AvatarEditModal.svelte new file mode 100644 index 00000000000..2bfee599afb --- /dev/null +++ b/web/src/lib/modals/AvatarEditModal.svelte @@ -0,0 +1,47 @@ + + + + +
+ {#each colors as color (color)} + + {/each} +
+
+