diff options
author | Samuel Newman <mozzius@protonmail.com> | 2024-06-04 04:05:46 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-04 02:05:46 +0100 |
commit | da96fb1ef5a37018b6a238c3614e9b845d8e2686 (patch) | |
tree | 31022f17c172635beedade3597e48035993e6144 /src/components/dialogs/GifSelect.shared.tsx | |
parent | b02445883ab5abd7daa80c3a27cf06ffaf539ff3 (diff) | |
download | voidsky-da96fb1ef5a37018b6a238c3614e9b845d8e2686.tar.zst |
Native `formSheet` for GIF select on iOS (#4328)
* native formsheet for gif select * trigger confirm discard if have gif * give modal a background color * fix web top bar - unrelated but I cba to make a separate PR
Diffstat (limited to 'src/components/dialogs/GifSelect.shared.tsx')
-rw-r--r-- | src/components/dialogs/GifSelect.shared.tsx | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/components/dialogs/GifSelect.shared.tsx b/src/components/dialogs/GifSelect.shared.tsx new file mode 100644 index 000000000..90b2abaa8 --- /dev/null +++ b/src/components/dialogs/GifSelect.shared.tsx @@ -0,0 +1,53 @@ +import React, {useCallback} from 'react' +import {Image} from 'expo-image' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {logEvent} from '#/lib/statsig/statsig' +import {Gif} from '#/state/queries/tenor' +import {atoms as a, useBreakpoints, useTheme} from '#/alf' +import {Button} from '../Button' + +export function GifPreview({ + gif, + onSelectGif, +}: { + gif: Gif + onSelectGif: (gif: Gif) => void +}) { + const {gtTablet} = useBreakpoints() + const {_} = useLingui() + const t = useTheme() + + const onPress = useCallback(() => { + logEvent('composer:gif:select', {}) + onSelectGif(gif) + }, [onSelectGif, gif]) + + return ( + <Button + label={_(msg`Select GIF "${gif.title}"`)} + style={[a.flex_1, gtTablet ? {maxWidth: '33%'} : {maxWidth: '50%'}]} + onPress={onPress}> + {({pressed}) => ( + <Image + style={[ + a.flex_1, + a.mb_sm, + a.rounded_sm, + {aspectRatio: 1, opacity: pressed ? 0.8 : 1}, + t.atoms.bg_contrast_25, + ]} + source={{ + uri: gif.media_formats.tinygif.url, + }} + contentFit="cover" + accessibilityLabel={gif.title} + accessibilityHint="" + cachePolicy="none" + accessibilityIgnoresInvertColors + /> + )} + </Button> + ) +} |