Close active elements on state change (#677)
parent
09bb2f5208
commit
656baa7239
|
@ -21,6 +21,9 @@ interface Img {
|
||||||
|
|
||||||
export const Lightbox = observer(function Lightbox() {
|
export const Lightbox = observer(function Lightbox() {
|
||||||
const store = useStores()
|
const store = useStores()
|
||||||
|
|
||||||
|
const onClose = useCallback(() => store.shell.closeLightbox(), [store.shell])
|
||||||
|
|
||||||
if (!store.shell.isLightboxActive) {
|
if (!store.shell.isLightboxActive) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
@ -29,8 +32,6 @@ export const Lightbox = observer(function Lightbox() {
|
||||||
const initialIndex =
|
const initialIndex =
|
||||||
activeLightbox instanceof models.ImagesLightbox ? activeLightbox.index : 0
|
activeLightbox instanceof models.ImagesLightbox ? activeLightbox.index : 0
|
||||||
|
|
||||||
const onClose = () => store.shell.closeLightbox()
|
|
||||||
|
|
||||||
let imgs: Img[] | undefined
|
let imgs: Img[] | undefined
|
||||||
if (activeLightbox instanceof models.ProfileImageLightbox) {
|
if (activeLightbox instanceof models.ProfileImageLightbox) {
|
||||||
const opts = activeLightbox
|
const opts = activeLightbox
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import React from 'react'
|
import React, {useEffect} from 'react'
|
||||||
import {observer} from 'mobx-react-lite'
|
import {observer} from 'mobx-react-lite'
|
||||||
import {View, StyleSheet, TouchableOpacity} from 'react-native'
|
import {View, StyleSheet, TouchableOpacity} from 'react-native'
|
||||||
import {useStores} from 'state/index'
|
import {useStores} from 'state/index'
|
||||||
|
@ -14,11 +14,21 @@ import {RoutesContainer, FlatNavigator} from '../../Navigation'
|
||||||
import {DrawerContent} from './Drawer'
|
import {DrawerContent} from './Drawer'
|
||||||
import {useWebMediaQueries} from '../../lib/hooks/useWebMediaQueries'
|
import {useWebMediaQueries} from '../../lib/hooks/useWebMediaQueries'
|
||||||
import {BottomBarWeb} from './bottom-bar/BottomBarWeb'
|
import {BottomBarWeb} from './bottom-bar/BottomBarWeb'
|
||||||
|
import {useNavigation} from '@react-navigation/native'
|
||||||
|
import {NavigationProp} from 'lib/routes/types'
|
||||||
|
|
||||||
const ShellInner = observer(() => {
|
const ShellInner = observer(() => {
|
||||||
const store = useStores()
|
const store = useStores()
|
||||||
const {isDesktop} = useWebMediaQueries()
|
const {isDesktop} = useWebMediaQueries()
|
||||||
|
|
||||||
|
const navigator = useNavigation<NavigationProp>()
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
navigator.addListener('state', () => {
|
||||||
|
store.shell.closeAnyActiveElement()
|
||||||
|
})
|
||||||
|
}, [navigator, store.shell])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<View style={s.hContentRegion}>
|
<View style={s.hContentRegion}>
|
||||||
|
|
Loading…
Reference in New Issue