import React from 'react' import {StyleProp, View, ViewStyle} from 'react-native' import {AppBskyEmbedImages} from '@atproto/api' import {PostEmbedViewContext} from '#/view/com/util/post-embeds/types' import {atoms as a, useBreakpoints} from '#/alf' import {GalleryItem} from './Gallery' interface ImageLayoutGridProps { images: AppBskyEmbedImages.ViewImage[] onPress?: (index: number) => void onLongPress?: (index: number) => void onPressIn?: (index: number) => void style?: StyleProp viewContext?: PostEmbedViewContext } export function ImageLayoutGrid({style, ...props}: ImageLayoutGridProps) { const {gtMobile} = useBreakpoints() const gap = props.viewContext === PostEmbedViewContext.FeedEmbedRecordWithMedia ? gtMobile ? a.gap_xs : a.gap_2xs : gtMobile ? a.gap_sm : a.gap_xs const count = props.images.length const aspectRatio = count === 2 ? 2 : count === 3 ? 1.5 : 1 return ( ) } interface ImageLayoutGridInnerProps { images: AppBskyEmbedImages.ViewImage[] onPress?: (index: number) => void onLongPress?: (index: number) => void onPressIn?: (index: number) => void viewContext?: PostEmbedViewContext gap: {gap: number} } function ImageLayoutGridInner(props: ImageLayoutGridInnerProps) { const gap = props.gap const count = props.images.length switch (count) { case 2: return ( ) case 3: return ( ) case 4: return ( <> ) default: return null } }