diff --git a/frontend/src/components/form/error.tsx b/frontend/src/components/form/error.tsx deleted file mode 100644 index cba24612fde18d6089b5cb108e2c5dd4fdbbd491..0000000000000000000000000000000000000000 --- a/frontend/src/components/form/error.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import styled from '@emotion/styled/macro' - - -const StyledValidationError = styled.span` - color: "red" -` - -export default StyledValidationError \ No newline at end of file diff --git a/frontend/src/components/form/fnr.tsx b/frontend/src/components/form/fnr.tsx deleted file mode 100644 index ee7cd1f2a920bc3b443d11f4c5a084f0321b5065..0000000000000000000000000000000000000000 --- a/frontend/src/components/form/fnr.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import React from 'react' - -import { UseFormReturn } from 'react-hook-form' -import { isValidFnr } from 'utils' - -interface FnrProps extends Partial<Pick<UseFormReturn, 'register'>> { - name: string - errors?: any -} - -function Fnr(props: FnrProps) { - const { register, name, errors } = props - if (register === undefined) { - return <></> - } - - return ( - <> - <input - type="text" - placeholder={name} - // eslint-disable-next-line react/jsx-props-no-spreading - {...register(name, { - required: 'Fnr is required', - validate: isValidFnr, - })} - id="fnr" - /> - {errors.fnr && errors.fnr.message} - {errors.fnr && errors.fnr.type === 'validate' && 'Invalid fnr'} - </> - ) -} - -Fnr.defaultProps = { - errors: {}, -} - -export default Fnr diff --git a/frontend/src/components/form/form.tsx b/frontend/src/components/form/form.tsx deleted file mode 100644 index 2964e7f2591152ec5e6fb2d5e83fe2ac40861538..0000000000000000000000000000000000000000 --- a/frontend/src/components/form/form.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import React from 'react' -import { useForm } from 'react-hook-form' - -interface FormProps { - children: any - onSubmit: any -} - -export default function Form(props: FormProps) { - const { children, onSubmit } = props - const methods = useForm() - const { - handleSubmit, - formState: { errors }, - } = methods - return ( - <form onSubmit={handleSubmit(onSubmit)}> - {React.Children.map(children, (child) => - child.props.name - ? React.createElement(child.type, { - // eslint-disable-next-line react/jsx-props-no-spreading - ...{ - // eslint-disable-next-line react/jsx-props-no-spreading - ...child.props, - control: methods.control, - register: methods.register, - errors, - key: child.props.name, - }, - }) - : child - )} - </form> - ) -} diff --git a/frontend/src/components/form/index.tsx b/frontend/src/components/form/index.tsx deleted file mode 100644 index 1d3d7430ae22ba5e53a288393dc725ec272d84da..0000000000000000000000000000000000000000 --- a/frontend/src/components/form/index.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import Form from './form' -import Input from './input' -import Select from './select' -import Fnr from './fnr' - -export { Fnr, Form, Input, Select } diff --git a/frontend/src/components/form/input.tsx b/frontend/src/components/form/input.tsx deleted file mode 100644 index 4d589d2682b2f7d23945ef150c747bef24c759c0..0000000000000000000000000000000000000000 --- a/frontend/src/components/form/input.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import React from 'react' -import styled from '@emotion/styled/macro' -import { UseFormReturn } from 'react-hook-form' - -interface InputProps - extends Partial<React.InputHTMLAttributes<HTMLInputElement>>, - Partial<UseFormReturn> { - name: string - errors?: any - type?: 'text' | 'email' | 'number' -} - -export const StyledInput = styled.input` - width: 50%; - border: 1px solid; - border-width: 0.013rem; - border-radius: 0.3rem; - border-color: #ccc; - box-shadow: inset 0 0 0 0.013rem #4d4d4d; - padding: 0.625rem; -` - -export const StyledLabel = styled.label` - display: block; - font-size: 1rem; - padding: 0.3rem 0 0.3rem 0; -` -function Input(props: InputProps) { - // eslint-disable-next-line react/jsx-props-no-spreading - const { register, name, errors, type, ...rest } = props - if (register === undefined) { - return <></> - } - // eslint-disable-next-line react/jsx-props-no-spreading - return <StyledInput {...register(name)} {...rest} /> -} - -Input.defaultProps = { - type: 'text', - errors: {}, -} - -export default Input diff --git a/frontend/src/components/form/select.tsx b/frontend/src/components/form/select.tsx deleted file mode 100644 index e5eadbd4a9ce5ad91738f41946c79404eb99132a..0000000000000000000000000000000000000000 --- a/frontend/src/components/form/select.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import React from 'react' -import { UseFormReturn } from 'react-hook-form' - -interface SelectProps extends Partial<Pick<UseFormReturn, 'register'>> { - options: Array<string> - name: string - type?: 'text' | 'email' | 'number' -} - -function Select(props: SelectProps) { - const { register, options, name, ...rest } = props - if (register === undefined) { - return <></> - } - return ( - // eslint-disable-next-line react/jsx-props-no-spreading - <select {...register(name)} {...rest}> - {options.map((value) => ( - <option key={value} value={value}> - {value} - </option> - ))} - </select> - ) -} - -Select.defaultProps = { - type: 'text', -} - -export default Select