import React from 'react'; import { useHistory } from 'react-router'; import axios from 'axios'; import { apiBaseUrl } from '../config'; import { useUserLoggedIn } from '../data/user'; import { validateTimelineName } from '../data/timeline'; import OperationDialog from '../common/OperationDialog'; interface TimelineCreateDialogProps { open: boolean; close: () => void; } const TimelineCreateDialog: React.FC = (props) => { const history = useHistory(); const user = useUserLoggedIn(); let nameSaved: string; return ( { if (name.length === 0) { return 'home.createDialog.noEmpty'; } else if (name.length > 26) { return 'home.createDialog.tooLong'; } else if (!validateTimelineName(name)) { return 'home.createDialog.badFormat'; } else { return null; } }, }, ]} onProcess={([name]) => { nameSaved = name as string; return axios.post(`${apiBaseUrl}/timelines?token=${user.token}`, { name, }); }} onSuccessAndClose={() => { history.push(`timelines/${nameSaved}`); }} failurePrompt={(e) => `${e as string}`} /> ); }; export default TimelineCreateDialog;