summaryrefslogtreecommitdiffstats
path: root/client/lib/utils.js
diff options
context:
space:
mode:
authorLiming Xie <liming.xie@gmail.com>2015-12-17 14:23:35 +0800
committerLiming Xie <liming.xie@gmail.com>2015-12-17 14:23:35 +0800
commit354eff9f7bf550f83d55ef2e96b10aab1a70162d (patch)
tree34cba5531d56d4ca51ed5346a5f26e480c4a33c7 /client/lib/utils.js
parent0954cff5b470712210275a9c0699d85d6579ab54 (diff)
downloadwekan-354eff9f7bf550f83d55ef2e96b10aab1a70162d.tar.gz
wekan-354eff9f7bf550f83d55ef2e96b10aab1a70162d.tar.bz2
wekan-354eff9f7bf550f83d55ef2e96b10aab1a70162d.zip
add: support compact mode for mobile web, auto adapt to small screen/window
Diffstat (limited to 'client/lib/utils.js')
-rw-r--r--client/lib/utils.js17
1 files changed, 17 insertions, 0 deletions
diff --git a/client/lib/utils.js b/client/lib/utils.js
index 6bdd5822..4f772a60 100644
--- a/client/lib/utils.js
+++ b/client/lib/utils.js
@@ -22,6 +22,17 @@ Utils = {
return string.charAt(0).toUpperCase() + string.slice(1);
},
+ windowResizeDep: new Tracker.Dependency(),
+
+ // in fact, what we really care is screen size
+ // large mobile device like iPad or android Pad has a big screen, it should also behave like a desktop
+ // in a small window (even on desktop), Wekan run in compact mode.
+ // we can easily debug with a small window of desktop broswer. :-)
+ isMiniScreen() {
+ this.windowResizeDep.depend();
+ return $(window).width() <= 800;
+ },
+
// Determine the new sort index
calculateIndex(prevCardDomElement, nextCardDomElement, nCards = 1) {
let base, increment;
@@ -54,3 +65,9 @@ Utils = {
};
},
};
+
+// A simple tracker dependency that we invalidate every time the window is
+// resized. This is used to reactively re-calculate the popup position in case
+// of a window resize. This is the equivalent of a "Signal" in some other
+// programming environments (eg, elm).
+$(window).on('resize', () => Utils.windowResizeDep.changed());