[questions][ui] update ContributeQuestionForm

pull/411/head
Jeff Sieu 3 years ago
parent e3115f772d
commit 9c1e179347

@ -60,14 +60,14 @@ export default function ContributeQuestionDialog({
leave="ease-in duration-200" leave="ease-in duration-200"
leaveFrom="opacity-100 translate-y-0 sm:scale-100" leaveFrom="opacity-100 translate-y-0 sm:scale-100"
leaveTo="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"> leaveTo="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95">
<Dialog.Panel className="relative max-w-5xl transform overflow-hidden rounded-lg bg-white text-left shadow-xl transition-all sm:my-8 sm:w-full"> <Dialog.Panel className="relative max-w-5xl transform overflow-hidden rounded-lg bg-white text-left shadow-xl transition-all sm:my-8 w-full">
<div className="bg-white p-6 pt-5 sm:pb-4"> <div className="bg-white p-6 pt-5 sm:pb-4">
<div className="flex flex-1 items-stretch"> <div className="flex flex-1 items-stretch">
<div className="mt-3 w-full sm:mt-0 sm:text-left"> <div className="mt-3 w-full sm:mt-0 sm:text-left">
<Dialog.Title <Dialog.Title
as="h3" as="h3"
className="text-lg font-medium leading-6 text-gray-900"> className="text-lg font-medium leading-6 text-gray-900">
Question Draft Contribute question
</Dialog.Title> </Dialog.Title>
<div className="w-full"> <div className="w-full">
<HorizontalDivider /> <HorizontalDivider />

@ -3,7 +3,14 @@ import { useState } from 'react';
import { Controller, useForm } from 'react-hook-form'; import { Controller, useForm } from 'react-hook-form';
import { CalendarDaysIcon, UserIcon } from '@heroicons/react/24/outline'; import { CalendarDaysIcon, UserIcon } from '@heroicons/react/24/outline';
import type { QuestionsQuestionType } from '@prisma/client'; import type { QuestionsQuestionType } from '@prisma/client';
import { Button, CheckboxInput, Select, TextArea, TextInput } from '@tih/ui'; import {
Button,
CheckboxInput,
HorizontalDivider,
Select,
TextArea,
TextInput,
} from '@tih/ui';
import { QUESTION_TYPES } from '~/utils/questions/constants'; import { QUESTION_TYPES } from '~/utils/questions/constants';
import { import {
@ -52,17 +59,9 @@ export default function ContributeQuestionForm({
}; };
return ( return (
<form <form
className=" flex flex-1 flex-col items-stretch justify-center pb-[50px]" className="flex flex-1 flex-col items-stretch justify-center gap-y-4"
onSubmit={handleSubmit(onSubmit)}> onSubmit={handleSubmit(onSubmit)}>
<TextArea <div className="min-w-[113px] max-w-[113px] flex-1">
label="Question Prompt"
placeholder="Contribute a question"
required={true}
rows={5}
{...register('questionContent')}
/>
<div className="mt-3 mb-1 flex flex-wrap items-end gap-2">
<div className="mr-2 min-w-[113px] max-w-[113px] flex-1">
<Select <Select
defaultValue="coding" defaultValue="coding"
label="Type" label="Type"
@ -71,28 +70,35 @@ export default function ContributeQuestionForm({
{...selectRegister('questionType')} {...selectRegister('questionType')}
/> />
</div> </div>
<div className="min-w-[150px] max-w-[300px] flex-1"> <TextArea
<Controller label="Question Prompt"
control={control} placeholder="Contribute a question"
name="company" required={true}
render={({ field }) => ( rows={5}
<CompaniesTypeahead {...register('questionContent')}
onSelect={({ id }) => {
field.onChange(id);
}}
/> />
)} <HorizontalDivider />
<h2 className="text-md text-primary-800 font-semibold">
Additional information
</h2>
<div className="flex flex-col flex-wrap items-stretch gap-2 sm:flex-row sm:items-end">
<div className="flex-1 sm:min-w-[150px] sm:max-w-[300px]">
<TextInput
label="Location"
required={true}
startAddOn={CalendarDaysIcon}
startAddOnType="icon"
{...register('location')}
/> />
</div> </div>
<div className="flex-1 sm:min-w-[150px] sm:max-w-[300px]">
<div className="min-w-[150px] max-w-[300px] flex-1">
<Controller <Controller
control={control} control={control}
name="date" name="date"
render={({ field }) => ( render={({ field }) => (
<MonthYearPicker <MonthYearPicker
value={{ value={{
month: (field.value.getMonth() + 1) as Month, month: ((field.value.getMonth() as number) + 1) as Month,
year: field.value.getFullYear(), year: field.value.getFullYear(),
}} }}
onChange={({ month, year }) => onChange={({ month, year }) =>
@ -103,17 +109,21 @@ export default function ContributeQuestionForm({
/> />
</div> </div>
</div> </div>
<div className="justify-left flex flex-wrap items-end gap-2"> <div className="flex flex-col flex-wrap items-stretch gap-2 sm:flex-row sm:items-end">
<div className="min-w-[150px] max-w-[300px] flex-1"> <div className="flex-1 sm:min-w-[150px] sm:max-w-[300px]">
<TextInput <Controller
label="Location" control={control}
required={true} name="company"
startAddOn={CalendarDaysIcon} render={({ field }) => (
startAddOnType="icon" <CompaniesTypeahead
{...register('location')} onSelect={({ id }) => {
field.onChange(id);
}}
/>
)}
/> />
</div> </div>
<div className="min-w-[150px] max-w-[200px] flex-1"> <div className="flex-1 sm:min-w-[150px] sm:max-w-[200px]">
<TextInput <TextInput
label="Role" label="Role"
required={true} required={true}
@ -142,15 +152,20 @@ export default function ContributeQuestionForm({
}} }}
/> />
</div> */} </div> */}
<div className="bg-primary-50 fixed bottom-0 left-0 w-full px-4 py-3 sm:flex sm:flex-row sm:justify-between sm:px-6"> <div
<div className="mb-1 flex"> className="bg-primary-50 flex w-full flex-col gap-y-2 py-3 shadow-[0_0_0_100vmax_theme(colors.primary.50)] sm:flex-row sm:justify-between"
style={{
// Hack to make the background bleed outside the container
clipPath: 'inset(0 -100vmax)',
}}>
<div className="my-2 flex sm:my-0">
<CheckboxInput <CheckboxInput
label="I have checked that my question is new" label="I have checked that my question is new"
value={canSubmit} value={canSubmit}
onChange={handleCheckSimilarQuestions} onChange={handleCheckSimilarQuestions}
/> />
</div> </div>
<div className=" flex gap-x-2"> <div className="flex gap-x-2">
<button <button
className="inline-flex w-full justify-center rounded-md border border-gray-300 bg-white px-4 py-2 text-base font-medium text-gray-700 shadow-sm hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 sm:mt-0 sm:ml-3 sm:w-auto sm:text-sm" className="inline-flex w-full justify-center rounded-md border border-gray-300 bg-white px-4 py-2 text-base font-medium text-gray-700 shadow-sm hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 sm:mt-0 sm:ml-3 sm:w-auto sm:text-sm"
type="button" type="button"

Loading…
Cancel
Save