diff --git a/web/index.js b/web/index.js
index 921c591..1e5c625 100644
--- a/web/index.js
+++ b/web/index.js
@@ -16,6 +16,7 @@ let HOMESERVER_URL = "https://matrix-client.matrix.org"
const makeThumbnailURL = mxc => `${HOMESERVER_URL}/_matrix/media/r0/thumbnail/${mxc.substr(6)}?height=128&width=128&method=scale`
// We need to detect iOS webkit because it has a bug related to scrolling non-fixed divs
+// This is also used to fix scrolling to sections on Element iOS
const isMobileSafari = navigator.userAgent.match(/(iPod|iPhone|iPad)/) && navigator.userAgent.match(/AppleWebKit/)
class App extends Component {
@@ -119,8 +120,17 @@ class App extends Component {
}
}
+// By default we just let the browser handle scrolling to sections, but webviews on Element iOS
+// open the link in the browser instead of just scrolling there, so we need to scroll manually:
+const scrollToSection = (evt, id) => {
+ const pack = document.getElementById(`pack-${id}`)
+ pack.scrollIntoView({ block: "start", behavior: "instant" })
+ evt.preventDefault()
+}
+
const NavBarItem = ({ pack }) => html`
-
+ scrollToSection(evt, pack.id)) : undefined}>