about summary refs log tree commit diff
path: root/app/javascript/mastodon/is_mobile.js
diff options
context:
space:
mode:
authorkibigo! <marrus-sh@users.noreply.github.com>2017-11-17 19:16:35 -0800
committerkibigo! <marrus-sh@users.noreply.github.com>2017-11-17 19:29:16 -0800
commite19fc6a9f81e3756e0198006d2eafbc2f3acadb5 (patch)
tree4e91fa8891da88ce1ea25a2b7edcffbe62a7a4d1 /app/javascript/mastodon/is_mobile.js
parent45c44989c8fb6e24badd18bb83ac5f68de0aceaf (diff)
Restore vanilla components
Diffstat (limited to 'app/javascript/mastodon/is_mobile.js')
-rw-r--r--app/javascript/mastodon/is_mobile.js27
1 files changed, 27 insertions, 0 deletions
diff --git a/app/javascript/mastodon/is_mobile.js b/app/javascript/mastodon/is_mobile.js
new file mode 100644
index 000000000..f96df1ebb
--- /dev/null
+++ b/app/javascript/mastodon/is_mobile.js
@@ -0,0 +1,27 @@
+import detectPassiveEvents from 'detect-passive-events';
+
+const LAYOUT_BREAKPOINT = 630;
+
+export function isMobile(width) {
+  return width <= LAYOUT_BREAKPOINT;
+};
+
+const iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
+
+let userTouching = false;
+let listenerOptions = detectPassiveEvents.hasSupport ? { passive: true } : false;
+
+function touchListener() {
+  userTouching = true;
+  window.removeEventListener('touchstart', touchListener, listenerOptions);
+}
+
+window.addEventListener('touchstart', touchListener, listenerOptions);
+
+export function isUserTouching() {
+  return userTouching;
+}
+
+export function isIOS() {
+  return iOS;
+};