diff options
Diffstat (limited to 'src/view/com/util/post-embeds/VideoEmbed.tsx')
-rw-r--r-- | src/view/com/util/post-embeds/VideoEmbed.tsx | 47 |
1 files changed, 24 insertions, 23 deletions
diff --git a/src/view/com/util/post-embeds/VideoEmbed.tsx b/src/view/com/util/post-embeds/VideoEmbed.tsx index 429312d9e..887efac1a 100644 --- a/src/view/com/util/post-embeds/VideoEmbed.tsx +++ b/src/view/com/util/post-embeds/VideoEmbed.tsx @@ -1,21 +1,20 @@ -import React, {useCallback} from 'react' +import React from 'react' import {View} from 'react-native' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' +import {VideoEmbedInnerNative} from 'view/com/util/post-embeds/VideoEmbedInner/VideoEmbedInnerNative' import {atoms as a, useTheme} from '#/alf' import {Button, ButtonIcon} from '#/components/Button' import {Play_Filled_Corner2_Rounded as PlayIcon} from '#/components/icons/Play' +import {VisibilityView} from '../../../../../modules/expo-bluesky-swiss-army' import {useActiveVideoView} from './ActiveVideoContext' -import {VideoEmbedInner} from './VideoEmbedInner' export function VideoEmbed({source}: {source: string}) { const t = useTheme() const {active, setActive} = useActiveVideoView({source}) const {_} = useLingui() - const onPress = useCallback(() => setActive(), [setActive]) - return ( <View style={[ @@ -26,25 +25,27 @@ export function VideoEmbed({source}: {source: string}) { t.atoms.bg_contrast_25, a.my_xs, ]}> - {active ? ( - <VideoEmbedInner - source={source} - // web only - active={active} - setActive={setActive} - onScreen={true} - /> - ) : ( - <Button - style={[a.flex_1, t.atoms.bg_contrast_25]} - onPress={onPress} - label={_(msg`Play video`)} - variant="ghost" - color="secondary" - size="large"> - <ButtonIcon icon={PlayIcon} /> - </Button> - )} + <VisibilityView + enabled={true} + onChangeStatus={isActive => { + if (isActive) { + setActive() + } + }}> + {active ? ( + <VideoEmbedInnerNative /> + ) : ( + <Button + style={[a.flex_1, t.atoms.bg_contrast_25]} + onPress={setActive} + label={_(msg`Play video`)} + variant="ghost" + color="secondary" + size="large"> + <ButtonIcon icon={PlayIcon} /> + </Button> + )} + </VisibilityView> </View> ) } |