diff options
Diffstat (limited to 'src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx')
-rw-r--r-- | src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx | 59 |
1 files changed, 49 insertions, 10 deletions
diff --git a/src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx b/src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx index 111867fc6..a1e509ef4 100644 --- a/src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx +++ b/src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx @@ -25,9 +25,11 @@ import {NavigationProp} from '#/lib/routes/types' import {EmbedPlayerParams, getPlayerAspect} from '#/lib/strings/embed-player' import {isNative} from '#/platform/detection' import {useExternalEmbedsPrefs} from '#/state/preferences' -import {atoms as a} from '#/alf' +import {atoms as a, useTheme} from '#/alf' import {useDialogControl} from '#/components/Dialog' import {EmbedConsentDialog} from '#/components/dialogs/EmbedConsent' +import {Fill} from '#/components/Fill' +import {MediaInsetBorder} from '#/components/MediaInsetBorder' import {PlayButtonIcon} from '#/components/video/PlayButtonIcon' import {EventStopper} from '../EventStopper' @@ -106,6 +108,16 @@ function Player({ style={styles.webview} setSupportMultipleWindows={false} // Prevent any redirects from opening a new window (ads) /> + + <MediaInsetBorder + opaque + style={[ + { + borderBottomLeftRadius: 0, + borderBottomRightRadius: 0, + }, + ]} + /> </EventStopper> ) } @@ -118,6 +130,7 @@ export function ExternalPlayer({ link: AppBskyEmbedExternal.ViewExternal params: EmbedPlayerParams }) { + const t = useTheme() const navigation = useNavigation<NavigationProp>() const insets = useSafeAreaInsets() const windowDims = useWindowDimensions() @@ -211,13 +224,38 @@ export function ExternalPlayer({ onAccept={onAcceptConsent} /> - <Animated.View ref={viewRef} collapsable={false} style={[aspect]}> + <Animated.View + ref={viewRef} + collapsable={false} + style={[aspect, a.rounded_sm]}> {link.thumb && (!isPlayerActive || isLoading) && ( - <Image - style={[a.flex_1, styles.topRadius]} - source={{uri: link.thumb}} - accessibilityIgnoresInvertColors - /> + <> + <Image + style={[a.flex_1, styles.topRadius]} + source={{uri: link.thumb}} + accessibilityIgnoresInvertColors + /> + <Fill + style={[ + a.rounded_sm, + t.name === 'light' ? t.atoms.bg_contrast_975 : t.atoms.bg, + { + borderBottomLeftRadius: 0, + borderBottomRightRadius: 0, + opacity: 0.3, + }, + ]} + /> + <MediaInsetBorder + opaque + style={[ + { + borderBottomLeftRadius: 0, + borderBottomRightRadius: 0, + }, + ]} + /> + </> )} <PlaceholderOverlay isLoading={isLoading} @@ -236,14 +274,13 @@ export function ExternalPlayer({ const styles = StyleSheet.create({ topRadius: { - borderTopLeftRadius: 6, - borderTopRightRadius: 6, + borderTopLeftRadius: 8, + borderTopRightRadius: 8, }, overlayContainer: { flex: 1, justifyContent: 'center', alignItems: 'center', - backgroundColor: 'rgba(0,0,0,0.5)', }, overlayLayer: { zIndex: 2, @@ -252,6 +289,8 @@ const styles = StyleSheet.create({ zIndex: 3, }, webview: { + borderTopRightRadius: 8, + borderTopLeftRadius: 8, backgroundColor: 'transparent', }, gifContainer: { |