import React from 'react' import {StyleSheet, TouchableOpacity, View} from 'react-native' import LinearGradient from 'react-native-linear-gradient' import {s, colors, gradients} from 'lib/styles' import {Text} from '../util/text/Text' import {ScrollView} from './util' import {usePalette} from 'lib/hooks/usePalette' import { EmbedPlayerSource, embedPlayerSources, externalEmbedLabels, } from '#/lib/strings/embed-player' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useModalControls} from '#/state/modals' import {useSetExternalEmbedPref} from '#/state/preferences/external-embeds-prefs' import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' export const snapPoints = [450] export function Component({ onAccept, source, }: { onAccept: () => void source: EmbedPlayerSource }) { const pal = usePalette('default') const {closeModal} = useModalControls() const {_} = useLingui() const setExternalEmbedPref = useSetExternalEmbedPref() const {isMobile} = useWebMediaQueries() const onShowAllPress = React.useCallback(() => { for (const key of embedPlayerSources) { setExternalEmbedPref(key, 'show') } onAccept() closeModal() }, [closeModal, onAccept, setExternalEmbedPref]) const onShowPress = React.useCallback(() => { setExternalEmbedPref(source, 'show') onAccept() closeModal() }, [closeModal, onAccept, setExternalEmbedPref, source]) const onHidePress = React.useCallback(() => { setExternalEmbedPref(source, 'hide') closeModal() }, [closeModal, setExternalEmbedPref, source]) return ( External Media This content is hosted by {externalEmbedLabels[source]}. Do you want to enable external media? External media may allow websites to collect information about you and your device. No information is sent or requested until you press the "play" button. Enable External Media Enable {externalEmbedLabels[source]} only No thanks ) } const styles = StyleSheet.create({ title: { textAlign: 'center', fontWeight: 'bold', fontSize: 24, marginBottom: 12, }, btn: { flexDirection: 'row', alignItems: 'center', justifyContent: 'center', width: '100%', borderRadius: 32, padding: 14, backgroundColor: colors.gray1, }, })