From beec11471769bc55b2fae47dc363bc51fe75f2ce Mon Sep 17 00:00:00 2001 From: Pig Fang Date: Sun, 1 Dec 2019 14:45:33 +0800 Subject: [PATCH] Remove modal after closed --- resources/assets/src/scripts/modal.ts | 7 ++++++- resources/assets/tests/scripts/modal.test.ts | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/resources/assets/src/scripts/modal.ts b/resources/assets/src/scripts/modal.ts index 87a2297a..c74e94c8 100644 --- a/resources/assets/src/scripts/modal.ts +++ b/resources/assets/src/scripts/modal.ts @@ -41,6 +41,11 @@ export function showModal(options: ModalOptions = {}): Promise { }), }).$mount(container) - $(instance.$el).modal('show') + $(instance.$el) + .modal('show') + .on('hidden.bs.modal', () => { + instance.$el.remove() + instance.$destroy() + }) }) } diff --git a/resources/assets/tests/scripts/modal.test.ts b/resources/assets/tests/scripts/modal.test.ts index 769db26b..e47e529c 100644 --- a/resources/assets/tests/scripts/modal.test.ts +++ b/resources/assets/tests/scripts/modal.test.ts @@ -1,3 +1,4 @@ +import $ from 'jquery' import { showModal } from '@/scripts/modal' test('show modal', async () => { @@ -9,4 +10,7 @@ test('show modal', async () => { }) const { value } = await showModal() expect(value).toBe('') + + $('.modal').trigger('hidden.bs.modal') + expect(document.querySelector('.modal')).toBeNull() })