diff --git a/changelog/unreleased/change-creating-modals b/changelog/unreleased/change-creating-modals index 49a39eac2c7..84dd4f4fe78 100644 --- a/changelog/unreleased/change-creating-modals +++ b/changelog/unreleased/change-creating-modals @@ -5,4 +5,5 @@ BREAKING CHANGE for developers: The way how to work with modals has been reworke For more details on how to use the modal please see the linked PR down below. https://github.com/owncloud/web/pull/10212 +https://github.com/owncloud/web/pull/10239 https://github.com/owncloud/web/issues/10095 diff --git a/packages/web-app-admin-settings/src/components/Groups/CreateGroupModal.vue b/packages/web-app-admin-settings/src/components/Groups/CreateGroupModal.vue index bbf257b1c4b..da1bb2c796e 100644 --- a/packages/web-app-admin-settings/src/components/Groups/CreateGroupModal.vue +++ b/packages/web-app-admin-settings/src/components/Groups/CreateGroupModal.vue @@ -55,7 +55,7 @@ export default defineComponent({ const onConfirm = async () => { if (unref(isFormInvalid)) { - return Promise.reject(new Promise((reject) => reject(''))) + return Promise.reject() } try { diff --git a/packages/web-app-admin-settings/src/components/Users/CreateUserModal.vue b/packages/web-app-admin-settings/src/components/Users/CreateUserModal.vue index 4d4cdd27f8d..426c18117a2 100644 --- a/packages/web-app-admin-settings/src/components/Users/CreateUserModal.vue +++ b/packages/web-app-admin-settings/src/components/Users/CreateUserModal.vue @@ -103,7 +103,7 @@ export default defineComponent({ const onConfirm = async () => { if (unref(isFormInvalid)) { - return Promise.reject(new Promise((reject) => reject(''))) + return Promise.reject() } try { diff --git a/packages/web-app-files/src/components/Modals/SetLinkPasswordModal.vue b/packages/web-app-files/src/components/Modals/SetLinkPasswordModal.vue index eebccd95d53..2c987de4f82 100644 --- a/packages/web-app-files/src/components/Modals/SetLinkPasswordModal.vue +++ b/packages/web-app-files/src/components/Modals/SetLinkPasswordModal.vue @@ -57,7 +57,7 @@ export default defineComponent({ // Human-readable error message is provided, for example when password is on banned list if (e.statusCode === 400) { errorMessage.value = $gettext(e.message) - return Promise.reject(new Promise((reject) => reject(''))) + return Promise.reject() } store.dispatch('showErrorMessage', { diff --git a/packages/web-pkg/src/components/CreateLinkModal.vue b/packages/web-pkg/src/components/CreateLinkModal.vue index 17cfb73927b..1516e606c2e 100644 --- a/packages/web-pkg/src/components/CreateLinkModal.vue +++ b/packages/web-pkg/src/components/CreateLinkModal.vue @@ -288,11 +288,11 @@ export default defineComponent({ if (!unref(selectedRoleIsInternal)) { if (unref(passwordEnforced) && !unref(password).value) { password.error = $gettext('Password must not be empty') - return Promise.reject(new Promise((reject) => reject(''))) + return Promise.reject() } if (!passwordPolicy.check(unref(password).value)) { - return Promise.reject(new Promise((reject) => reject(''))) + return Promise.reject() } } @@ -322,7 +322,7 @@ export default defineComponent({ if (userFacingErrors.length) { password.error = $gettext(userFacingErrors[0].message) - return Promise.reject(new Promise((reject) => reject(''))) + return Promise.reject() } if (props.callbackFn) { diff --git a/packages/web-pkg/tests/unit/composables/piniaStores/modals.spec.ts b/packages/web-pkg/tests/unit/composables/piniaStores/modals.spec.ts index d5e76129322..c680b27622c 100644 --- a/packages/web-pkg/tests/unit/composables/piniaStores/modals.spec.ts +++ b/packages/web-pkg/tests/unit/composables/piniaStores/modals.spec.ts @@ -8,7 +8,7 @@ describe('useModals', () => { }) describe('method "dispatchModal"', () => { - it('adds a modal to the stack of modals', () => { + it('adds a modal to the stack of modals and sets it active', () => { getWrapper({ setup: (instance) => { const data = { title: 'test' } @@ -17,6 +17,9 @@ describe('useModals', () => { expect(modal.id).toBeDefined() expect(modal.title).toEqual(data.title) expect(instance.activeModal).toEqual(modal) + + const modal2 = instance.dispatchModal(data) + expect(instance.activeModal).toEqual(modal2) } }) }) @@ -34,12 +37,18 @@ describe('useModals', () => { }) }) describe('method "removeModal"', () => { - it('removes an existing modal', () => { + it('removes an existing modal and sets another existing modal active', () => { getWrapper({ setup: (instance) => { const modal = instance.dispatchModal({ title: 'test' }) - instance.removeModal(modal.id) - expect(instance.modals.length).toBe(0) + const modal2 = instance.dispatchModal({ title: 'test2' }) + + expect(instance.modals.length).toBe(2) + expect(instance.activeModal).toEqual(modal2) + + instance.removeModal(modal2.id) + expect(instance.modals.length).toBe(1) + expect(instance.activeModal).toEqual(modal) } }) })