import * as React from 'react'; import FormControl from '@mui/joy/FormControl'; import FormLabel from '@mui/joy/FormLabel'; import FormHelperText from '@mui/joy/FormHelperText'; import Input from '@mui/joy/Input'; import Button from '@mui/joy/Button'; export default function InputSubscription() { const [data, setData] = React.useState<{ email: string; status: 'initial' | 'loading' | 'failure' | 'sent'; }>({ email: '', status: 'initial', }); const handleSubmit = (event: React.FormEvent) => { event.preventDefault(); setData((current) => ({ ...current, status: 'loading' })); try { // Replace timeout with real backend operation setTimeout(() => { setData({ email: '', status: 'sent' }); }, 1500); } catch (error) { setData((current) => ({ ...current, status: 'failure' })); } }; return (
({ '--FormLabel-color': theme.vars.palette.primary.plainColor, })} > MUI Newsletter setData({ email: event.target.value, status: 'initial' }) } error={data.status === 'failure'} endDecorator={ } /> {data.status === 'failure' && ( ({ color: theme.vars.palette.danger[400] })} > Oops! something went wrong, please try again later. )} {data.status === 'sent' && ( ({ color: theme.vars.palette.primary[400] })} > You are all set! )}
); }