import { useState, ChangeEvent, SyntheticEvent } from 'react'; import { connect } from 'react-redux'; import { addApp } from '../../../store/actions'; import { NewApp } from '../../../interfaces/App'; import classes from './AppForm.module.css'; import Icon from '../../UI/Icon/Icon'; interface ComponentProps { modalHandler: Function; addApp: (formData: NewApp) => any; } const AppForm = (props: ComponentProps): JSX.Element => { const [formData, setFormData] = useState({ name: '', url: '', icon: '' }); const _modalHandler = () => { props.modalHandler(); } const inputChangeHandler = (e: ChangeEvent): void => { setFormData({ ...formData, [e.target.name]: e.target.value }) } const formSubmitHandler = (e: SyntheticEvent): void => { e.preventDefault(); props.addApp(formData); setFormData({ name: '', url: '', icon: '' }) } return (
formSubmitHandler(e)}>
inputChangeHandler(e)} />
inputChangeHandler(e)} /> Use URL without protocol
inputChangeHandler(e)} /> Use icon name from MDI. {' '}Click here for reference
) } export default connect(null, { addApp })(AppForm);