import React, { ReactNode } from 'react';
import { theme } from '../../theme/theme';
import { Icon } from './Icon';
import type { AlertTypes } from './alert';
import { Text } from '../Text';
import { Box, BoxProps } from '../Box';
import { TouchableComponent } from '../TouchableComponent';
import { ToastAction } from './components/ToastAction';
export interface IAlertComponentProps {
message: string | JSX.Element;
subMessage?: string | JSX.Element;
icon?: JSX.Element;
data?: {
subTitle?: string | JSX.Element;
labelButton?: string;
closeToast?: () => void;
onPressButton?: () => void;
};
type?: AlertTypes;
onPress?: () => void;
}
type ContainerProps = { children: ReactNode; onPress?: () => void } & BoxProps;
const Container = ({ children, ...props }: ContainerProps) =>
props.onPress ? (
{children}
) : (
{children}
);
export const AlertTop = ({
message,
subMessage,
icon,
type,
data,
onPress,
}: IAlertComponentProps) => {
const { fonts } = theme;
const { subTitle, labelButton, closeToast, onPressButton } = data || {};
const isToastAction = type === 'action';
if (isToastAction) {
return (
);
}
return (
{(!!icon || type) && }
{message}
{subMessage && (
{subMessage}
)}
);
};