diff --git a/src/view/com/composer/photos/Gallery.tsx b/src/view/com/composer/photos/Gallery.tsx index 7ff1b7b9ab..652b4f9b90 100644 --- a/src/view/com/composer/photos/Gallery.tsx +++ b/src/view/com/composer/photos/Gallery.tsx @@ -1,5 +1,5 @@ -import React, {useState} from 'react' -import {ImageStyle, Keyboard, LayoutChangeEvent} from 'react-native' +import React from 'react' +import {Keyboard} from 'react-native' import {StyleSheet, TouchableOpacity, View} from 'react-native' import {Image} from 'expo-image' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' @@ -7,14 +7,13 @@ import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {observer} from 'mobx-react-lite' +import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' +import {colors, s} from '#/lib/styles' +import {isNative} from '#/platform/detection' import {useModalControls} from '#/state/modals' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {Dimensions} from 'lib/media/types' -import {colors, s} from 'lib/styles' -import {isNative} from 'platform/detection' -import {GalleryModel} from 'state/models/media/gallery' -import {Text} from 'view/com/util/text/Text' -import {useTheme} from '#/alf' +import {GalleryModel} from '#/state/models/media/gallery' +import {Text} from '#/view/com/util/text/Text' +import {atoms as a, useTheme} from '#/alf' const IMAGE_GAP = 8 @@ -22,52 +21,12 @@ interface GalleryProps { gallery: GalleryModel } -export const Gallery = (props: GalleryProps) => { - const [containerInfo, setContainerInfo] = useState() - - const onLayout = (evt: LayoutChangeEvent) => { - const {width, height} = evt.nativeEvent.layout - setContainerInfo({ - width, - height, - }) - } - - return ( - - {containerInfo ? ( - - ) : undefined} - - ) -} - -interface GalleryInnerProps extends GalleryProps { - containerInfo: Dimensions -} - -const GalleryInner = observer(function GalleryImpl({ - gallery, - containerInfo, -}: GalleryInnerProps) { +export const Gallery = observer(function GalleryImpl({gallery}: GalleryProps) { const {_} = useLingui() const {isMobile} = useWebMediaQueries() const {openModal} = useModalControls() const t = useTheme() - let side: number - - if (gallery.size === 1) { - side = 250 - } else { - side = (containerInfo.width - IMAGE_GAP * (gallery.size - 1)) / gallery.size - } - - const imageStyle = { - height: side, - width: side, - } - const isOverflow = isMobile && gallery.size > 2 const altTextControlStyle = isOverflow @@ -113,7 +72,9 @@ const GalleryInner = observer(function GalleryImpl({ <> {gallery.images.map(image => ( - +