import React from 'react' import { StyleSheet, useWindowDimensions, View } from 'react-native' import Animated, { FadeIn, FadeOut, LayoutAnimationConfig, ReduceMotion, } from 'react-native-reanimated' import { useSafeAreaInsets } from 'react-native-safe-area-context' import { useReduceMotion, useTheme } from '../../hooks' import { ConversationWarning } from '../../types' import { MAX_FONT_SIZE_MULTIPLIER_LANDMARK } from '../../utils' import { Banner } from './banner' import { Button } from './button' import { IconString } from './icon' import { Text } from './text' export const ActionButton = ({ visible = true, disabled = false, onPress, title, infoText, buttonIconNameLeft, secondaryButton, loading = false, warnings = [], }: { visible?: boolean disabled?: boolean onPress: () => void title: string infoText?: string buttonIconNameLeft?: IconString secondaryButton?: React.ReactNode loading?: boolean warnings?: ConversationWarning[] }) => { const styles = useStyles() const reduceMotion = useReduceMotion() ? ReduceMotion.Always : ReduceMotion.Never return ( {visible && ( {warnings.length > 0 && ( {warnings.map((warning, index) => ( ))} )} {Boolean(infoText) && ( {infoText} )} {secondaryButton}