import * as React from 'react'; import { useForm, SubmitHandler } from 'react-hook-form'; import I18n from 'i18n-js'; import Button from '../../common/Button'; import padStart from '../../../helpers/padStart'; interface Props { mode: 'create' | 'update'; id?: number; name?: string; color?: string; handleCreate?( name: string, color: string, onSuccess: Function, ): void; handleUpdate?( id: number, name: string, color: string, ): void; } interface IPostStatusForm { name: string; color: string; } const PostStatusForm = ({ mode, id, name, color, handleCreate, handleUpdate, }: Props) => { const getRandomColor = () => '#' + padStart((Math.random() * 0xFFFFFF << 0).toString(16), 6, '0'); const { register, handleSubmit, reset, formState: { isValid }, } = useForm({ mode: 'onChange', defaultValues: { name: name || '', color: color || getRandomColor(), }, }); const onSubmit: SubmitHandler = data => { if (mode === 'create') { handleCreate( data.name, data.color, () => reset({ name: '', color: getRandomColor() }) ); } else { handleUpdate(id, data.name, data.color); } } return (
); } export default PostStatusForm;