import { ReactNode } from 'react'; import { ColorProps } from '@shopify/restyle'; import isUndefined from 'lodash/isUndefined'; import { AppIcon, IconName } from '../..'; import { AppButton } from '../../buttons/AppButton'; import { AppBox } from '../../layout/AppBox'; import { AppText } from '../../text/AppText'; import { AppTheme, useAppTheme } from '~/view/theme'; export type BaseSheetProps = { title: string; subTitle?: string; subTitleColor?: ColorProps['color']; icon?: IconName; subContent?: ReactNode; positiveButtonTitle?: string; negativeButtonTitle?: string; onPositivePress?: () => void; onNegativePress?: () => void; positiveButton?: ReactNode; negativeButton?: ReactNode; }; export const BaseSheet = ({ positiveButton, positiveButtonTitle, negativeButton, negativeButtonTitle, onNegativePress, onPositivePress, title, subTitle, subContent, subTitleColor = 'onSurface', icon }: BaseSheetProps) => { const { spacing } = useAppTheme(); const showPositive = !isUndefined(positiveButton) || !isUndefined(positiveButtonTitle); return ( {title} {icon && } {subTitle && ( {subTitle} )} {subContent} {showPositive && (positiveButton ? positiveButton : positiveButtonTitle && ( ))} {negativeButton ? ( negativeButton ) : ( )} ); };