From a6be501616f44c2e47f92dc5690500ca405b08f5 Mon Sep 17 00:00:00 2001 From: Jeff Sieu Date: Sat, 8 Oct 2022 16:59:32 +0800 Subject: [PATCH] [questions][ui] add question draft dialog form --- .../questions/ContributeQuestionForm.tsx | 105 ++++++++++++++++++ .../questions/ContributeQuestionModal.tsx | 12 +- ...rdDraftModal.tsx => DiscardDraftModal.tsx} | 0 3 files changed, 113 insertions(+), 4 deletions(-) create mode 100644 apps/portal/src/components/questions/ContributeQuestionForm.tsx rename apps/portal/src/components/questions/{DisacrdDraftModal.tsx => DiscardDraftModal.tsx} (100%) diff --git a/apps/portal/src/components/questions/ContributeQuestionForm.tsx b/apps/portal/src/components/questions/ContributeQuestionForm.tsx new file mode 100644 index 00000000..3e1a0108 --- /dev/null +++ b/apps/portal/src/components/questions/ContributeQuestionForm.tsx @@ -0,0 +1,105 @@ +import type { ChangeEvent } from 'react'; +import { useCallback } from 'react'; +import { useForm } from 'react-hook-form'; +import { + BuildingOffice2Icon, + CalendarDaysIcon, + QuestionMarkCircleIcon, + UserIcon, +} from '@heroicons/react/24/outline'; +import { HorizontalDivider, TextArea, TextInput } from '@tih/ui'; + +export type ContributeQuestionData = { + company: string; + date: Date; + location: string; + position: string; + questionContent: string; + questionType: string; +}; + +export type ContributeQuestionFormProps = { + onSubmit: (data: ContributeQuestionData) => void; +}; + +export default function ContributeQuestionForm({ + onSubmit, +}: ContributeQuestionFormProps) { + const { register: formRegister, handleSubmit } = + useForm(); + + const register = useCallback( + (...args: Parameters) => { + const { onChange, ...rest } = formRegister(...args); + return { + ...rest, + onChange: (value: string, event: ChangeEvent) => { + onChange(event); + }, + }; + }, + [formRegister], + ); + + return ( +
+