work in progress
This commit is contained in:
parent
4adcee4af7
commit
9f250364e4
4 changed files with 76 additions and 50 deletions
|
|
@ -45,12 +45,12 @@ const FileInput: React.FC<FileInputProps> = ({ label, ...props }) => {
|
||||||
{label}
|
{label}
|
||||||
<RequiredAsterisk required={required} />
|
<RequiredAsterisk required={required} />
|
||||||
</label>
|
</label>
|
||||||
<div className="drop-area" onClick={handleClick} onDrop={handleDrop} onDragOver={(e) => e.preventDefault()}>
|
<div className="border border-grey-500 rounded-md p-4 flex flex-col items-center gap-4" onClick={handleClick} onDrop={handleDrop} onDragOver={(e) => e.preventDefault()}>
|
||||||
<div>
|
<div className="border border-grey-500 border-dashed flex flex-col gap-4 items-center justify-center rounded-md py-9 w-full">
|
||||||
<FontAwesomeIcon icon={faFile} />
|
<FontAwesomeIcon icon={faFile} className="text-amber-500 h-5 w-5" />
|
||||||
<h4>Drag & Drop Here or Browse</h4>
|
<h4 className="">Drag & Drop Here or <span className="font-bold">Browse</span></h4>
|
||||||
</div>
|
</div>
|
||||||
<button type="button">Upload Manifest</button>
|
<button type="button" className="text-white px-12 py-2 rounded-md bg-blue-950 w-fit">Upload Manifest</button>
|
||||||
</div>
|
</div>
|
||||||
<input type="file" className="hidden" ref={fileInputRef} onChange={handleChange} />
|
<input type="file" className="hidden" ref={fileInputRef} onChange={handleChange} />
|
||||||
<ErrorMessage touched={meta.touched} error={meta.error} />
|
<ErrorMessage touched={meta.touched} error={meta.error} />
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,10 @@ export const initialValues: FormValues = {
|
||||||
manifestFile: null,
|
manifestFile: null,
|
||||||
splitSchedule: "",
|
splitSchedule: "",
|
||||||
client: "",
|
client: "",
|
||||||
testingCenter: "",
|
testingCenter1: "",
|
||||||
|
testingCenter2: "",
|
||||||
|
testingCenter3: "",
|
||||||
|
testingCenter4: "",
|
||||||
toleranceWindow: false,
|
toleranceWindow: false,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -17,6 +20,9 @@ export const validationSchema = Yup.object({
|
||||||
manifestFile: Yup.mixed().required("A file is required").nullable(), // Allows for null values
|
manifestFile: Yup.mixed().required("A file is required").nullable(), // Allows for null values
|
||||||
splitSchedule: Yup.string().required("This field is required").oneOf(["Yes", "No"], "Invalid Option"),
|
splitSchedule: Yup.string().required("This field is required").oneOf(["Yes", "No"], "Invalid Option"),
|
||||||
client: Yup.string().required("Client selection is required").oneOf(["Single", "Multiple"], "Invalid Client Type"),
|
client: Yup.string().required("Client selection is required").oneOf(["Single", "Multiple"], "Invalid Client Type"),
|
||||||
testingCenter: Yup.string().required("Testing center selection is required"), // Assuming a selection is required
|
testingCenter1: Yup.string().required("Testing center selection is required"), // Assuming a selection is required
|
||||||
|
testingCenter2: Yup.string().required("Testing center selection is required"), // Assuming a selection is required
|
||||||
|
testingCenter3: Yup.string().required("Testing center selection is required"), // Assuming a selection is required
|
||||||
|
testingCenter4: Yup.string().required("Testing center selection is required"), // Assuming a selection is required
|
||||||
toleranceWindow: Yup.boolean().required("Tolerance window selection is required"), // Assuming this is a boolean represented by a toggle
|
toleranceWindow: Yup.boolean().required("Tolerance window selection is required"), // Assuming this is a boolean represented by a toggle
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -37,13 +37,14 @@ const FormComponent: React.FC = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
<>
|
||||||
<Formik
|
<Formik
|
||||||
initialValues={initialValues}
|
initialValues={initialValues}
|
||||||
validationSchema={validationSchema}
|
validationSchema={validationSchema}
|
||||||
onSubmit={async (values, { setSubmitting }) => {
|
onSubmit={async (values, { setSubmitting }) => {
|
||||||
|
console.log("Form values:", values); // Log form values on submit
|
||||||
try {
|
try {
|
||||||
console.log(values)
|
//await submitForm(values)
|
||||||
await submitForm(values)
|
|
||||||
setFormSubmitted(true)
|
setFormSubmitted(true)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error submitting form:", error)
|
console.error("Error submitting form:", error)
|
||||||
|
|
@ -52,7 +53,11 @@ const FormComponent: React.FC = () => {
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{(formik) => (
|
{(formik) => {
|
||||||
|
console.log("Form errors:", formik.errors); // Log form errors on every render
|
||||||
|
console.log("Form values:", formik.values); // Log current form values on every render
|
||||||
|
|
||||||
|
return (
|
||||||
<Form>
|
<Form>
|
||||||
<div className="flex flex-col gap-4 lg:flex-row lg:gap-16">
|
<div className="flex flex-col gap-4 lg:flex-row lg:gap-16">
|
||||||
<div className="flex grow flex-col lg:max-w-[500px]">
|
<div className="flex grow flex-col lg:max-w-[500px]">
|
||||||
|
|
@ -64,7 +69,7 @@ const FormComponent: React.FC = () => {
|
||||||
</option>
|
</option>
|
||||||
))}
|
))}
|
||||||
</SelectInput>
|
</SelectInput>
|
||||||
<FileInput label="Select a manifest that you'd like to import" name="manifestFile" required />
|
{/* <FileInput label="Select a manifest that you'd like to import" name="manifestFile" required /> */}
|
||||||
<StatusField label="Elapse Data Checking:" statusLabel="No Elapsed Dates!" statusColor="text-green-500" />
|
<StatusField label="Elapse Data Checking:" statusLabel="No Elapsed Dates!" statusColor="text-green-500" />
|
||||||
<ToggleField key="toleranceWindow" name="toleranceWindow" required={true}>
|
<ToggleField key="toleranceWindow" name="toleranceWindow" required={true}>
|
||||||
Tolerance Window:
|
Tolerance Window:
|
||||||
|
|
@ -83,12 +88,23 @@ const FormComponent: React.FC = () => {
|
||||||
<ClientField testingCenters={data.testingCenterOptions} clients={data.clientsOptions} />
|
<ClientField testingCenters={data.testingCenterOptions} clients={data.clientsOptions} />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<button className="mx-auto mt-4" type="submit" disabled={formik.isSubmitting}>
|
<button
|
||||||
Submit
|
className="mx-auto mt-4 flex items-center justify-center rounded-full py-3 px-9 text-center text-md font-bold shadow-xs transition-all bg-blue-950 text-white"
|
||||||
|
type="submit"
|
||||||
|
disabled={formik.isSubmitting}
|
||||||
|
>
|
||||||
|
Continue Import
|
||||||
|
{formik.isSubmitting && <div className="ml-3 h-5 w-5 animate-spin rounded-full border-x-2 border-b-2"></div>}
|
||||||
</button>
|
</button>
|
||||||
</Form>
|
</Form>
|
||||||
)}
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
</Formik>
|
</Formik>
|
||||||
|
{formSubmitted && <div>Success</div>}
|
||||||
|
</>
|
||||||
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,12 @@
|
||||||
export interface FormValues {
|
export interface FormValues {
|
||||||
importName: string
|
importName: string;
|
||||||
manifestFile: File | null
|
manifestFile: File | null;
|
||||||
splitSchedule: string
|
splitSchedule: string;
|
||||||
client: string
|
client: string;
|
||||||
testingCenter: string
|
testingCenter1: string;
|
||||||
toleranceWindow: boolean
|
testingCenter2: string;
|
||||||
|
testingCenter3: string;
|
||||||
|
testingCenter4: string;
|
||||||
|
toleranceWindow: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue