import React, {useCallback} from 'react' import {View} from 'react-native' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import { type EmbedPlayerSource, embedPlayerSources, externalEmbedLabels, } from '#/lib/strings/embed-player' import {useSetExternalEmbedPref} from '#/state/preferences' import {atoms as a, useBreakpoints, useTheme} from '#/alf' import * as Dialog from '#/components/Dialog' import {Button, ButtonText} from '../Button' import {Text} from '../Typography' export function EmbedConsentDialog({ control, source, onAccept, }: { control: Dialog.DialogControlProps source: EmbedPlayerSource onAccept: () => void }) { const {_} = useLingui() const t = useTheme() const setExternalEmbedPref = useSetExternalEmbedPref() const {gtMobile} = useBreakpoints() const onShowAllPress = useCallback(() => { for (const key of embedPlayerSources) { setExternalEmbedPref(key, 'show') } onAccept() control.close() }, [control, onAccept, setExternalEmbedPref]) const onShowPress = useCallback(() => { setExternalEmbedPref(source, 'show') onAccept() control.close() }, [control, onAccept, setExternalEmbedPref, source]) const onHidePress = useCallback(() => { setExternalEmbedPref(source, 'hide') control.close() }, [control, 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. ) }