summaryrefslogtreecommitdiff
path: root/apps/web/src/lib/utils.ts
diff options
context:
space:
mode:
Diffstat (limited to 'apps/web/src/lib/utils.ts')
-rw-r--r--apps/web/src/lib/utils.ts19
1 files changed, 19 insertions, 0 deletions
diff --git a/apps/web/src/lib/utils.ts b/apps/web/src/lib/utils.ts
index fd47cc13..8d2ee03a 100644
--- a/apps/web/src/lib/utils.ts
+++ b/apps/web/src/lib/utils.ts
@@ -44,6 +44,25 @@ export function generateUUID(): string {
);
}
+export function isDOMElement(el: any): el is HTMLElement {
+ return !!el && (el instanceof Element || el instanceof HTMLElement);
+}
+
+export function isTypableElement(el: HTMLElement): boolean {
+ // If content editable, then it is editable
+ if (el.isContentEditable) return true;
+
+ // If element is an input and the input is enabled, then it is typable
+ if (el.tagName === "INPUT") {
+ return !(el as HTMLInputElement).disabled;
+ }
+ // If element is a textarea and the input is enabled, then it is typable
+ if (el.tagName === "TEXTAREA") {
+ return !(el as HTMLTextAreaElement).disabled;
+ }
+
+ return false;
+}
export function isAppleDevice() {
return /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);
}