export function selectAllText(element: HTMLElement) {
element.focus();
if (element instanceof HTMLTextAreaElement) {
element.select();
} else {
const range = document.createRange();
range.selectNodeContents(element);
window.getSelection()?.removeAllRanges();
window.getSelection()?.addRange(range);
deselectOnClick();
}
}
function deselectOnClick() {
const listener = () => {
window.getSelection()?.removeAllRanges();
window.removeEventListener("click", listener, { capture: true });
};
window.addEventListener("click", listener, { capture: true });
}