From d3f04451afdd4b3f5e3cd9afedb61fcf433c447c Mon Sep 17 00:00:00 2001 From: Mo Date: Tue, 1 Nov 2022 14:06:06 -0500 Subject: [PATCH] Revert "fix(mobile): viewport size on keyboard focus (#1925)" This reverts commit e0b75946f6e99f7ac7b40a456e629d84d5d8337e. --- packages/web/src/javascripts/App.tsx | 1 + .../setViewportHeightWithFallback.tsx | 19 ++++++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/packages/web/src/javascripts/App.tsx b/packages/web/src/javascripts/App.tsx index ea00622f2..3e8e7b92a 100644 --- a/packages/web/src/javascripts/App.tsx +++ b/packages/web/src/javascripts/App.tsx @@ -60,6 +60,7 @@ const startApplication: StartApplication = async function startApplication( const setupViewportHeightListeners = () => { if (!isDesktop) { + setViewportHeightWithFallback() window.addEventListener('orientationchange', setViewportHeightWithFallback) window.addEventListener('resize', setViewportHeightWithFallback) } diff --git a/packages/web/src/javascripts/setViewportHeightWithFallback.tsx b/packages/web/src/javascripts/setViewportHeightWithFallback.tsx index 5497178c1..5f6d0d6a8 100644 --- a/packages/web/src/javascripts/setViewportHeightWithFallback.tsx +++ b/packages/web/src/javascripts/setViewportHeightWithFallback.tsx @@ -2,15 +2,24 @@ import { log, LoggingDomain } from './Logging' export const ViewportHeightKey = '--viewport-height' +export const setViewportHeightWithFallback = () => { + const newValue = visualViewport && visualViewport.height > 0 ? visualViewport.height : window.innerHeight + + if (!newValue) { + setCustomViewportHeight('100', 'vh') + return + } + + setCustomViewportHeight(String(newValue), 'px') +} + /** * @param forceTriggerResizeEvent On iPad at least, setProperty(ViewportHeightKey) does not trigger a resize event */ -export const setCustomViewportHeight = (height: number, suffix: 'px' | 'vh', forceTriggerResizeEvent = false) => { - const value = `${height}${suffix}` +export const setCustomViewportHeight = (height: string, suffix: 'px' | 'vh', forceTriggerResizeEvent = false) => { + log(LoggingDomain.Viewport, `setCustomViewportHeight: ${height}`) - log(LoggingDomain.Viewport, `setCustomViewportHeight: ${value}`) - - document.documentElement.style.setProperty(ViewportHeightKey, value) + document.documentElement.style.setProperty(ViewportHeightKey, `${height}${suffix}`) if (forceTriggerResizeEvent) { window.dispatchEvent(new Event('resize'))