|
|
@ -1,5 +1,4 @@
|
|
|
|
import { useState } from 'react';
|
|
|
|
import { useState } from 'react';
|
|
|
|
import { useForm } from 'react-hook-form';
|
|
|
|
|
|
|
|
import {
|
|
|
|
import {
|
|
|
|
BuildingOffice2Icon,
|
|
|
|
BuildingOffice2Icon,
|
|
|
|
CalendarDaysIcon,
|
|
|
|
CalendarDaysIcon,
|
|
|
@ -7,43 +6,28 @@ import {
|
|
|
|
} from '@heroicons/react/24/outline';
|
|
|
|
} from '@heroicons/react/24/outline';
|
|
|
|
import { Button, TextInput } from '@tih/ui';
|
|
|
|
import { Button, TextInput } from '@tih/ui';
|
|
|
|
|
|
|
|
|
|
|
|
import { useFormRegister } from '~/utils/questions/useFormRegister';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import ContributeQuestionDialog from './ContributeQuestionDialog';
|
|
|
|
import ContributeQuestionDialog from './ContributeQuestionDialog';
|
|
|
|
|
|
|
|
|
|
|
|
export type ContributeQuestionData = {
|
|
|
|
export default function ContributeQuestionCard() {
|
|
|
|
company: string;
|
|
|
|
|
|
|
|
date: Date;
|
|
|
|
|
|
|
|
questionContent: string;
|
|
|
|
|
|
|
|
questionType: string;
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export type ContributeQuestionCardProps = {
|
|
|
|
|
|
|
|
onSubmit: (data: ContributeQuestionData) => void;
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export default function ContributeQuestionCard({
|
|
|
|
|
|
|
|
onSubmit,
|
|
|
|
|
|
|
|
}: ContributeQuestionCardProps) {
|
|
|
|
|
|
|
|
const { register: formRegister, handleSubmit } =
|
|
|
|
|
|
|
|
useForm<ContributeQuestionData>();
|
|
|
|
|
|
|
|
const register = useFormRegister(formRegister);
|
|
|
|
|
|
|
|
const [showDraftDialog, setShowDraftDialog] = useState(false);
|
|
|
|
const [showDraftDialog, setShowDraftDialog] = useState(false);
|
|
|
|
|
|
|
|
|
|
|
|
const handleDraftDialogCancel = () => {
|
|
|
|
const handleDraftDialogCancel = () => {
|
|
|
|
setShowDraftDialog(false);
|
|
|
|
setShowDraftDialog(false);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const handleOnFocus = () => {
|
|
|
|
|
|
|
|
(document.activeElement as HTMLElement).blur();
|
|
|
|
|
|
|
|
setShowDraftDialog(true);
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
return (
|
|
|
|
<>
|
|
|
|
<>
|
|
|
|
<form
|
|
|
|
<div className="flex flex-col items-stretch justify-center gap-2 rounded-md border border-slate-300 p-4">
|
|
|
|
className="flex flex-col items-stretch justify-center gap-2 rounded-md border border-slate-300 p-4"
|
|
|
|
|
|
|
|
onSubmit={handleSubmit(onSubmit)}>
|
|
|
|
|
|
|
|
<TextInput
|
|
|
|
<TextInput
|
|
|
|
isLabelHidden={true}
|
|
|
|
isLabelHidden={true}
|
|
|
|
label="Question"
|
|
|
|
label="Question"
|
|
|
|
placeholder="Contribute a question"
|
|
|
|
placeholder="Contribute a question"
|
|
|
|
{...register('questionContent')}
|
|
|
|
onFocus={handleOnFocus}
|
|
|
|
/>
|
|
|
|
/>
|
|
|
|
<div className="flex items-end justify-center gap-x-2">
|
|
|
|
<div className="flex items-end justify-center gap-x-2">
|
|
|
|
<div className="min-w-[150px] flex-1">
|
|
|
|
<div className="min-w-[150px] flex-1">
|
|
|
@ -51,7 +35,7 @@ export default function ContributeQuestionCard({
|
|
|
|
label="Company"
|
|
|
|
label="Company"
|
|
|
|
startAddOn={BuildingOffice2Icon}
|
|
|
|
startAddOn={BuildingOffice2Icon}
|
|
|
|
startAddOnType="icon"
|
|
|
|
startAddOnType="icon"
|
|
|
|
{...register('company')}
|
|
|
|
onFocus={handleOnFocus}
|
|
|
|
/>
|
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div className="min-w-[150px] flex-1">
|
|
|
|
<div className="min-w-[150px] flex-1">
|
|
|
@ -59,7 +43,7 @@ export default function ContributeQuestionCard({
|
|
|
|
label="Question type"
|
|
|
|
label="Question type"
|
|
|
|
startAddOn={QuestionMarkCircleIcon}
|
|
|
|
startAddOn={QuestionMarkCircleIcon}
|
|
|
|
startAddOnType="icon"
|
|
|
|
startAddOnType="icon"
|
|
|
|
{...register('questionType')}
|
|
|
|
onFocus={handleOnFocus}
|
|
|
|
/>
|
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div className="min-w-[150px] flex-1">
|
|
|
|
<div className="min-w-[150px] flex-1">
|
|
|
@ -67,17 +51,17 @@ export default function ContributeQuestionCard({
|
|
|
|
label="Date"
|
|
|
|
label="Date"
|
|
|
|
startAddOn={CalendarDaysIcon}
|
|
|
|
startAddOn={CalendarDaysIcon}
|
|
|
|
startAddOnType="icon"
|
|
|
|
startAddOnType="icon"
|
|
|
|
{...register('date')}
|
|
|
|
onFocus={handleOnFocus}
|
|
|
|
/>
|
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<Button
|
|
|
|
<Button
|
|
|
|
label="Contribute"
|
|
|
|
label="Contribute"
|
|
|
|
type="submit"
|
|
|
|
type="submit"
|
|
|
|
variant="primary"
|
|
|
|
variant="primary"
|
|
|
|
onClick={() => setShowDraftDialog(true)}
|
|
|
|
onClick={handleOnFocus}
|
|
|
|
/>
|
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</form>
|
|
|
|
</div>
|
|
|
|
<ContributeQuestionDialog
|
|
|
|
<ContributeQuestionDialog
|
|
|
|
show={showDraftDialog}
|
|
|
|
show={showDraftDialog}
|
|
|
|
onCancel={handleDraftDialogCancel}
|
|
|
|
onCancel={handleDraftDialogCancel}
|
|
|
|