packages/@fbcmobile-ui/Components/NuxModal.js (32 lines of code) (raw):

/** * Copyright (c) Facebook, Inc. and its affiliates. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. * * @flow strict-local * @format */ 'use strict'; import type {ImageURISource} from 'react-native/Libraries/Image/ImageSource'; import Modal from 'react-native-modal'; import React from 'react'; import Text from '@fbcmobile/ui/Components/Core/Text'; import fbt from 'fbt'; import {Image, StyleSheet, TouchableOpacity, View} from 'react-native'; type Props = {| +title: string, +image: ImageURISource | number, +onPress: () => void, |}; const NuxModal = ({title, image, onPress}: Props) => { return ( <Modal isVisible={true} backdropOpacity={0.75} propagateSwipe={true}> <TouchableOpacity style={styles.root} onPress={onPress}> <Text style={styles.title} variant="h3" color="light" align="center" weight="medium"> {title} </Text> <View style={styles.image}> <Image source={image} /> </View> <Text variant="h3" color="light" weight="light" align="center"> <fbt desc="Dismiss message on a popup">Got It</fbt> </Text> </TouchableOpacity> </Modal> ); }; const styles = StyleSheet.create({ root: { height: '100%', padding: 23, display: 'flex', alignItems: 'center', }, title: { marginTop: '25%', marginBottom: 30, }, image: { flexGrow: 1, }, }); export default NuxModal;