From 4e3213860958aaedce52c719bd5dc263671d4a02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Chalifour?= Date: Thu, 3 Sep 2020 18:31:26 +0200 Subject: [PATCH] feat(js): add `destroy` API --- packages/autocomplete-js/src/autocomplete.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/autocomplete-js/src/autocomplete.ts b/packages/autocomplete-js/src/autocomplete.ts index fff2b00e1..ee8b3effa 100644 --- a/packages/autocomplete-js/src/autocomplete.ts +++ b/packages/autocomplete-js/src/autocomplete.ts @@ -64,6 +64,10 @@ export interface AutocompleteApi extends AutocompleteSetters { * Triggers a search to refresh the state. */ refresh(): Promise; + /** + * Cleans up the DOM mutations and event listeners. + */ + destroy(): void; } export function autocomplete({ @@ -235,6 +239,10 @@ export function autocomplete({ root.appendChild(dropdown); containerElement.appendChild(root); + function destroy() { + containerElement.innerHTML = ''; + } + return { setHighlightedIndex: autocomplete.setHighlightedIndex, setQuery: autocomplete.setQuery, @@ -243,5 +251,6 @@ export function autocomplete({ setStatus: autocomplete.setStatus, setContext: autocomplete.setContext, refresh: autocomplete.refresh, + destroy, }; }