diff --git a/web/src/lib/components/forms/api-key-form.svelte b/web/src/lib/components/forms/api-key-form.svelte deleted file mode 100644 index bba7398655..0000000000 --- a/web/src/lib/components/forms/api-key-form.svelte +++ /dev/null @@ -1,55 +0,0 @@ - - - onCancel()}> -
-
- - -
-
- - {#snippet stickyBottom()} - - - {/snippet} -
diff --git a/web/src/lib/components/forms/api-key-secret.svelte b/web/src/lib/components/forms/api-key-secret.svelte deleted file mode 100644 index 0d3b88d85a..0000000000 --- a/web/src/lib/components/forms/api-key-secret.svelte +++ /dev/null @@ -1,32 +0,0 @@ - - - -
-

- {$t('api_key_description')} -

-
- -
- - -
- - {#snippet stickyBottom()} - - - {/snippet} -
diff --git a/web/src/lib/components/user-settings-page/partner-selection-modal.svelte b/web/src/lib/components/user-settings-page/partner-selection-modal.svelte deleted file mode 100644 index 37c6580429..0000000000 --- a/web/src/lib/components/user-settings-page/partner-selection-modal.svelte +++ /dev/null @@ -1,79 +0,0 @@ - - - -
- {#if availableUsers.length > 0} - {#each availableUsers as user (user.id)} - - {/each} - {:else} -

- {$t('photo_shared_all_users')} -

- {/if} - - {#if selectedUsers.length > 0} -
- -
- {/if} -
-
diff --git a/web/src/lib/components/user-settings-page/partner-settings.svelte b/web/src/lib/components/user-settings-page/partner-settings.svelte index b2238b84e2..9d187b6adf 100644 --- a/web/src/lib/components/user-settings-page/partner-settings.svelte +++ b/web/src/lib/components/user-settings-page/partner-settings.svelte @@ -2,6 +2,8 @@ import { dialogController } from '$lib/components/shared-components/dialog/dialog'; import SettingSwitch from '$lib/components/shared-components/settings/setting-switch.svelte'; import UserAvatar from '$lib/components/shared-components/user-avatar.svelte'; + import { modalManager } from '$lib/managers/modal-manager.svelte'; + import PartnerSelectionModal from '$lib/modals/PartnerSelectionModal.svelte'; import { createPartner, getPartners, @@ -18,7 +20,6 @@ import { handleError } from '../../utils/handle-error'; import CircleIconButton from '../elements/buttons/circle-icon-button.svelte'; import Icon from '../elements/icon.svelte'; - import PartnerSelectionModal from './partner-selection-modal.svelte'; interface PartnerSharing { user: UserResponseDto; @@ -33,8 +34,6 @@ let { user }: Props = $props(); - let createPartnerFlag = $state(false); - // let removePartnerDto: PartnerResponseDto | null = null; let partners: Array = $state([]); onMount(async () => { @@ -99,14 +98,19 @@ } }; - const handleCreatePartners = async (users: UserResponseDto[]) => { + const handleCreatePartners = async () => { + const users = await modalManager.open(PartnerSelectionModal, { user }); + + if (!users) { + return; + } + try { for (const user of users) { await createPartner({ id: user.id }); } await refreshPartners(); - createPartnerFlag = false; } catch (error) { handleError(error, $t('errors.unable_to_add_partners')); } @@ -189,10 +193,6 @@ {/if}
- +
- -{#if createPartnerFlag} - (createPartnerFlag = false)} onAddUsers={handleCreatePartners} /> -{/if} diff --git a/web/src/lib/components/user-settings-page/user-api-key-list.svelte b/web/src/lib/components/user-settings-page/user-api-key-list.svelte index 6fbc28a776..823f5a0a96 100644 --- a/web/src/lib/components/user-settings-page/user-api-key-list.svelte +++ b/web/src/lib/components/user-settings-page/user-api-key-list.svelte @@ -1,6 +1,9 @@ -{#if newKey} - handleCreate(key)} - onCancel={() => (newKey = null)} - /> -{/if} - -{#if secret} - (secret = '')} /> -{/if} - -{#if editKey} - handleUpdate(key)} - onCancel={() => (editKey = null)} - /> -{/if} -
- +
{#if keys.length > 0} @@ -153,7 +141,7 @@ icon={mdiPencilOutline} title={$t('edit_key')} size="16" - onclick={() => (editKey = key)} + onclick={() => handleUpdate(key)} /> + import { + notificationController, + NotificationType, + } from '$lib/components/shared-components/notification/notification'; + import { Button, Modal, ModalBody, ModalFooter } from '@immich/ui'; + import { mdiKeyVariant } from '@mdi/js'; + import { t } from 'svelte-i18n'; + + interface Props { + apiKey: { name: string }; + title: string; + cancelText?: string; + submitText?: string; + onClose: (apiKey?: { name: string }) => void; + } + + let { apiKey = $bindable(), title, cancelText = $t('cancel'), submitText = $t('save'), onClose }: Props = $props(); + + const handleSubmit = () => { + if (apiKey.name) { + onClose({ name: apiKey.name }); + } else { + notificationController.show({ + message: $t('api_key_empty'), + type: NotificationType.Warning, + }); + } + }; + + const onsubmit = (event: Event) => { + event.preventDefault(); + handleSubmit(); + }; + + + + +
+
+ + +
+
+
+ + +
+ + +
+
+
diff --git a/web/src/lib/modals/ApiKeySecretModal.svelte b/web/src/lib/modals/ApiKeySecretModal.svelte new file mode 100644 index 0000000000..88d34341d9 --- /dev/null +++ b/web/src/lib/modals/ApiKeySecretModal.svelte @@ -0,0 +1,35 @@ + + + + +
+

+ {$t('api_key_description')} +

+
+ +
+ + +
+
+ + +
+ + +
+
+
diff --git a/web/src/lib/modals/PartnerSelectionModal.svelte b/web/src/lib/modals/PartnerSelectionModal.svelte new file mode 100644 index 0000000000..729a035ef1 --- /dev/null +++ b/web/src/lib/modals/PartnerSelectionModal.svelte @@ -0,0 +1,79 @@ + + + + +
+ {#if availableUsers.length > 0} + {#each availableUsers as user (user.id)} + + {/each} + {:else} +

+ {$t('photo_shared_all_users')} +

+ {/if} + + + {#if selectedUsers.length > 0} + + {/if} + +
+
+