import React, { FC } from 'react'; import { v4 as uuid } from 'uuid'; import { RouterProps } from 'react-router'; import classNames from 'classnames'; import NoMenuLayout from '../common/NoMenuLayout'; import { StateFlagTimeout } from '../utils/helpers/hooks'; import { ServerForm } from './helpers/ServerForm'; import { ImportServersBtnProps } from './helpers/ImportServersBtn'; import { ServerData, ServerWithId } from './data'; import './CreateServer.scss'; const SHOW_IMPORT_MSG_TIME = 4000; interface CreateServerProps extends RouterProps { createServer: (server: ServerWithId) => void; } const Result: FC<{ type: 'success' | 'error' }> = ({ children, type }) => (
{children}
); const CreateServer = (ImportServersBtn: FC, useStateFlagTimeout: StateFlagTimeout) => ( { createServer, history: { push } }: CreateServerProps, ) => { const [ serversImported, setServersImported ] = useStateFlagTimeout(false, SHOW_IMPORT_MSG_TIME); const [ errorImporting, setErrorImporting ] = useStateFlagTimeout(false, SHOW_IMPORT_MSG_TIME); const handleSubmit = (serverData: ServerData) => { const id = uuid(); createServer({ ...serverData, id }); push(`/server/${id}/list-short-urls/1`); }; return ( {serversImported && Servers properly imported. You can now select one from the list :)} {errorImporting && The servers could not be imported. Make sure the format is correct.} ); }; export default CreateServer;