diff --git a/sites/shared/components/wrappers/modal.mjs b/sites/shared/components/wrappers/modal.mjs
index 1607843d260..3a0bdaaf1bd 100644
--- a/sites/shared/components/wrappers/modal.mjs
+++ b/sites/shared/components/wrappers/modal.mjs
@@ -1,6 +1,8 @@
+import { useState, useEffect } from 'react'
+
export const ModalWrapper = ({
app,
- children,
+ children = null,
flex = 'row',
justify = 'center',
items = 'center',
@@ -8,17 +10,27 @@ export const ModalWrapper = ({
bgOpacity = '100 lg:bg-opacity-95',
bare = false,
keepOpenOnClick = false,
-}) => (
-
{
+ const [animate, setAnimate] = useState(true)
+
+ useEffect(() => {
+ if (animate) setAnimate(false)
+ }, [children, animate])
+
+ return (
+
app.updateState('modal', false)}
- >
- {bare ? (
- children
- ) : (
-
{children}
- )}
-
-)
+ onClick={keepOpenOnClick ? null : () => app.updateState('modal', false)}
+ >
+ {bare ? (
+ children
+ ) : (
+
{children}
+ )}
+
+ )
+}
diff --git a/sites/shared/components/wrappers/page.mjs b/sites/shared/components/wrappers/page.mjs
index e01d32d4de1..26cfbba7f4d 100644
--- a/sites/shared/components/wrappers/page.mjs
+++ b/sites/shared/components/wrappers/page.mjs
@@ -9,6 +9,7 @@ import { LayoutWrapper, ns as layoutNs } from 'site/components/wrappers/layout.m
import { DocsLayout, ns as docsNs } from 'site/components/layouts/docs.mjs'
import { Feeds } from 'site/components/feeds.mjs'
import { Spinner } from 'shared/components/spinner.mjs'
+import { ModalMenu } from 'site/components/navigation/modal-menu.mjs'
export const ns = [...new Set([...layoutNs, ...docsNs])]
@@ -33,8 +34,8 @@ export const PageWrapper = ({
* Swipe handling for the entire site
*/
const swipeHandlers = useSwipeable({
- onSwipedLeft: () => (app.state?.menu?.main ? app.updateState('menu.main', false) : null),
- onSwipedRight: () => (app.state?.menu?.main ? null : app.updateState('menu.main', true)),
+ onSwipedLeft: () => app.setModal(false),
+ onSwipedRight: () => app.setModal(),
trackMouse: true,
})