23 lines
684 B
JavaScript
23 lines
684 B
JavaScript
|
/* Riot WIP, @license MIT */
|
||
|
import $ from 'bianco.query';
|
||
|
import { DOM_COMPONENT_INSTANCE_PROPERTY } from '@riotjs/util';
|
||
|
|
||
|
/**
|
||
|
* Sweet unmounting helper function for the DOM node mounted manually by the user
|
||
|
* @param {string|HTMLElement} selector - query for the selection or a DOM element
|
||
|
* @param {boolean|null} keepRootElement - if true keep the root element
|
||
|
* @returns {Array} list of nodes unmounted
|
||
|
*/
|
||
|
|
||
|
function unmount(selector, keepRootElement) {
|
||
|
return $(selector).map(element => {
|
||
|
if (element[DOM_COMPONENT_INSTANCE_PROPERTY]) {
|
||
|
element[DOM_COMPONENT_INSTANCE_PROPERTY].unmount(keepRootElement);
|
||
|
}
|
||
|
|
||
|
return element;
|
||
|
});
|
||
|
}
|
||
|
|
||
|
export { unmount };
|