From d98468d140eddee4be66270981902668dce46c83 Mon Sep 17 00:00:00 2001 From: Doctorwu <44631608+Doctor-wu@users.noreply.github.com> Date: Thu, 9 Nov 2023 22:41:21 +0800 Subject: [PATCH] fix(useSortable): prevent from creating multi instances (#3501) --- packages/integrations/useSortable/index.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/integrations/useSortable/index.ts b/packages/integrations/useSortable/index.ts index a9f9e6bb0b2..bc47ed9dda0 100644 --- a/packages/integrations/useSortable/index.ts +++ b/packages/integrations/useSortable/index.ts @@ -39,7 +39,7 @@ export function useSortable( list: MaybeRefOrGetter, options: UseSortableOptions = {}, ): UseSortableReturn { - let sortable: Sortable + let sortable: Sortable | undefined const { document = defaultDocument, ...resetOptions } = options @@ -51,12 +51,15 @@ export function useSortable( const start = () => { const target = (typeof el === 'string' ? document?.querySelector(el) : unrefElement(el)) - if (!target) + if (!target || sortable !== undefined) return sortable = new Sortable(target as HTMLElement, { ...defaultOptions, ...resetOptions }) } - const stop = () => sortable?.destroy() + const stop = () => { + sortable?.destroy() + sortable = undefined + } const option = (name: K, value?: Options[K]) => { if (value !== undefined)