From 7d79e1f31c02ea1e1d742aff8b00f45a1ba0e67b Mon Sep 17 00:00:00 2001 From: Yamagishi Kazutoshi Date: Sun, 29 Sep 2019 21:30:58 +0900 Subject: [Glitch] Do not add margin light when opening modal on mobile Port 0a49b26793d467589be09305e15ff9cc97cdd200 to glitch-soc Signed-off-by: Thibaut Girka --- app/javascript/flavours/glitch/util/scrollbar.js | 36 ++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 app/javascript/flavours/glitch/util/scrollbar.js (limited to 'app/javascript/flavours/glitch/util') diff --git a/app/javascript/flavours/glitch/util/scrollbar.js b/app/javascript/flavours/glitch/util/scrollbar.js new file mode 100644 index 000000000..6529b7906 --- /dev/null +++ b/app/javascript/flavours/glitch/util/scrollbar.js @@ -0,0 +1,36 @@ +import { isMobile } from 'flavours/glitch/util/is_mobile'; + +/** @type {number | null} */ +let cachedScrollbarWidth = null; + +/** + * @return {number} + */ +const getActualScrollbarWidth = () => { + const outer = document.createElement('div'); + outer.style.visibility = 'hidden'; + outer.style.overflow = 'scroll'; + document.body.appendChild(outer); + + const inner = document.createElement('div'); + outer.appendChild(inner); + + const scrollbarWidth = outer.offsetWidth - inner.offsetWidth; + outer.parentNode.removeChild(outer); + + return scrollbarWidth; +}; + +/** + * @return {number} + */ +export const getScrollbarWidth = () => { + if (cachedScrollbarWidth !== null) { + return cachedScrollbarWidth; + } + + const scrollbarWidth = isMobile(window.innerWidth) ? 0 : getActualScrollbarWidth(); + cachedScrollbarWidth = scrollbarWidth; + + return scrollbarWidth; +}; -- cgit From 0fbe36e3fb4644945eeb0c142045a003e2793b19 Mon Sep 17 00:00:00 2001 From: Thibaut Girka Date: Sat, 5 Oct 2019 23:21:28 +0200 Subject: Partially revert scrollbar handling on mobile, since its width-based and wrong Have to investigate as to whether it was actually needed on mobile, doesn't seem to be the case from Firefox's Responsive Design Mode --- app/javascript/flavours/glitch/util/scrollbar.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'app/javascript/flavours/glitch/util') diff --git a/app/javascript/flavours/glitch/util/scrollbar.js b/app/javascript/flavours/glitch/util/scrollbar.js index 6529b7906..929b036d6 100644 --- a/app/javascript/flavours/glitch/util/scrollbar.js +++ b/app/javascript/flavours/glitch/util/scrollbar.js @@ -1,5 +1,3 @@ -import { isMobile } from 'flavours/glitch/util/is_mobile'; - /** @type {number | null} */ let cachedScrollbarWidth = null; @@ -29,7 +27,7 @@ export const getScrollbarWidth = () => { return cachedScrollbarWidth; } - const scrollbarWidth = isMobile(window.innerWidth) ? 0 : getActualScrollbarWidth(); + const scrollbarWidth = getActualScrollbarWidth(); cachedScrollbarWidth = scrollbarWidth; return scrollbarWidth; -- cgit