Newer
Older
gnexus-ui-kit / src / js / components / input-patterns.js
let initialized = false;

function init(root = document) {
	if(root === document && initialized) {
		return;
	}

	root.addEventListener("click", event => {
		const clearButton = event.target.closest("[data-input-clear]");

		if(!clearButton) {
			return;
		}

		const group = clearButton.closest(".input-group");
		const input = group?.querySelector("input, textarea");

		if(!input) {
			return;
		}

		input.value = "";
		input.dispatchEvent(new Event("input", { bubbles: true }));
		input.focus();
	});

	if(root === document) {
		initialized = true;
	}
}

export default {
	init
};