ask-query>medicaldetailsform>index.tsx
// import { FormProvider, UseFormReturn } from "react-hook-form";
// import { useNavigate } from "react-router-dom";
// import { useRef } from "react";
// import {
// DietPayloadI,
// MedicalPayloadI,
// useSubmitQuery,
// } from "../../../api/hooks/corporate-benfits/second-opinion/submit-second-medical-details";
// import { margin } from "@ebh/capsule/theme";
// import FormFields from "./partials/form-fields";
// import DietFormFields from "./partials/diet-and-nutrition-form-fields";
// import { ASK_QUERY_ROUTES } from "../../../routes";
// import { useSecondOpinionContext } from "../../../context/second-opinion-context";
// import PatientInfoCard from "../../second-opinion/second-medical-patient-detail/partials/patient-info-card";
// import SubmitFooter from "../../second-opinion/second-medical-patient-detail/partials/submit-footer";
// import { SECOND_MEDICAL_OPINION_DETAILS } from "../../../constants";
// import { Cookies } from "react-cookie";
// import { useSecondOpinionForm } from "./partials/second-opinion-form";
// interface DietFormType {
// prescriptionDetails: {
// heightFt: string;
// heightIn: string;
// weight: string;
// eatinghabits: string;
// dietdetails: string;
// query: string;
// };
// }
// interface MedicalFormType {
// prescriptionDetails: {
// symptoms: string;
// treatment: string;
// medicine: string;
// question: string;
// };
// }
// const cookies = new Cookies();
// type FormData = DietFormType | MedicalFormType;
// type SubmitPayload = DietPayloadI | MedicalPayloadI;
// type QuerySubmitFn = (
// payload: SubmitPayload,
// options: {
// onSuccess: () => void;
// onError: (err: Error) => void;
// }
// ) => void;
// const handleSubmitConsultationAPI = (
// payload: SubmitPayload,
// QuerySubmit: QuerySubmitFn,
// navigate: (to: string) => void
// ) => {
// QuerySubmit(payload, {
// onSuccess: () => {
// setTimeout(() => {
// navigate(ASK_QUERY_ROUTES.Review_Details);
// }, 100);
// },
// onError: (err: Error) => console.error("Query submission failed", err),
// });
// };
// const getDietPayload = (
// data: DietFormType,
// type: string,
// speciality: string,
// slug: string
// ) => {
// const heightInInches =
// Number(data.prescriptionDetails.heightFt || 0) * 12 +
// Number(data.prescriptionDetails.heightIn || 0);
// return {
// query_type: type,
// clinical_speciality: speciality,
// patient_slug: (slug ||
// cookies.get(SECOND_MEDICAL_OPINION_DETAILS.SMO_PATIENT_SLUG) ||
// "") as string,
// height_weight: `${heightInInches},${data.prescriptionDetails.weight ?? ""}`,
// eating_habits: (data.prescriptionDetails.eatinghabits ?? "") as string,
// diet_details: data.prescriptionDetails.dietdetails ?? "",
// ask_query: data.prescriptionDetails.query ?? "",
// };
// };
// const getMedicalPayload = (
// data: MedicalFormType,
// type: string,
// speciality: string,
// slug: string
// ) => ({
// query_type: type,
// clinical_speciality: speciality,
// patient_slug:
// slug || cookies.get(SECOND_MEDICAL_OPINION_DETAILS.SMO_PATIENT_SLUG),
// symptoms: data.prescriptionDetails.symptoms ?? "",
// treatment: data.prescriptionDetails.treatment ?? "",
// medication: data.prescriptionDetails.medicine ?? "",
// ask_query: data.prescriptionDetails.question ?? "",
// });
// export default function MedicalDetails() {
// const {
// queryType,
// clinicalSpeciality,
// slug,
// setAskQueryDetails,
// setClinicalQueryDetails,
// } = useSecondOpinionContext();
// const navigate = useNavigate();
// const { mutate: QuerySubmit } = useSubmitQuery();
// // const {
// // DIET_STORAGE_KEY,
// // MEDICAL_STORAGE_KEY,
// // dietOpinionMethods,
// // medicalOpinionMethods
// // // dietOpinionControl,
// // // medicalOpinionControl,
// // // watchDietOpinion,
// // // watchMedicalOpinion,
// // // dietOpinionFormState,
// // // medicalOpinionFormState,
// // // dietOpinionRegister,
// // // medicalOpinionRegister,
// // // dietOpinionSubmit,
// // // medicalOpinionSubmit,
// // } = useSecondOpinionForm();
// const { dietOpinionMethods, medicalOpinionMethods } = useSecondOpinionForm();
// // const isDiet = clinicalSpeciality === "Diet and Nutrition";
// const isDiet = clinicalSpeciality === "Diet and Nutrition";
// const formWasSubmitted = useRef(false);
// const onDietSubmit = (formData: DietFormType) => {
// formWasSubmitted.current = true;
// const dietData = formData as DietFormType;
// const payload = getDietPayload(
// dietData,
// queryType ?? "",
// clinicalSpeciality ?? "",
// slug ?? ""
// );
// setAskQueryDetails({
// heightWeight: payload.height_weight,
// eatingHabits: payload.eating_habits,
// dietDetails: payload.diet_details,
// askQuery: payload.ask_query,
// });
// QuerySubmit(payload);
// handleSubmitConsultationAPI(
// payload,
// QuerySubmit as QuerySubmitFn,
// navigate
// );
// };
// const onMedicalSubmit = (formData: MedicalFormType) => {
// console.log("onMedicalSubmit called with formData:", formData);
// formWasSubmitted.current = true;
// const medData = formData as MedicalFormType;
// const payload = getMedicalPayload(
// medData,
// queryType ?? "",
// clinicalSpeciality ?? "",
// slug ?? ""
// );
// setClinicalQueryDetails({
// symptoms: payload.symptoms,
// treatment: payload.treatment,
// medication: payload.medication,
// askQuery: payload.ask_query,
// });
// QuerySubmit(payload);
// handleSubmitConsultationAPI(
// payload,
// QuerySubmit as QuerySubmitFn,
// navigate
// );
// };
// // const watchedDietDetails = watchDietOpinion(
// // "prescriptionDetails.dietdetails"
// // );
// // const watchedQuery = watchDietOpinion("prescriptionDetails.query");
// // const watchedQuestion = watchMedicalOpinion("prescriptionDetails.question");
// // const handleSubmit = isDiet
// // ? dietOpinionSubmit(onDietSubmit)
// // : medicalOpinionSubmit(onMedicalSubmit);
// const watchedDietDetails = dietOpinionMethods.watch(
// "prescriptionDetails.dietdetails"
// );
// const watchedQuery = dietOpinionMethods.watch("prescriptionDetails.query");
// const watchedQuestion = medicalOpinionMethods.watch(
// "prescriptionDetails.question"
// );
// // const handleSubmit = isDiet
// // ? dietOpinionMethods.handleSubmit(onDietSubmit)
// // : medicalOpinionMethods.handleSubmit(onMedicalSubmit);
// const handleSubmit = isDiet
// ? dietOpinionMethods.handleSubmit((data) => {
// onDietSubmit(data);
// })
// : medicalOpinionMethods.handleSubmit((data) => {
// onMedicalSubmit(data);
// });
// // const methods = isDiet ? dietOpinionControl : medicalOpinionControl;
// const methods = isDiet
// ? (dietOpinionMethods as UseFormReturn<DietFormType>)
// : (medicalOpinionMethods as UseFormReturn<MedicalFormType>);
// return (
// <FormProvider {...(methods as UseFormReturn<FormData>)}>
// <form onSubmit={handleSubmit} css={[margin(20, "bottom")]}>
// <PatientInfoCard />
// {isDiet ? (
// <DietFormFields
// // control={dietOpinionControl}
// // errors={dietOpinionFormState.errors}
// // register={dietOpinionRegister}
// control={dietOpinionMethods.control}
// errors={dietOpinionMethods.formState.errors}
// register={dietOpinionMethods.register}
// watchedDietDetails={watchedDietDetails}
// watchedQuery={watchedQuery}
// />
// ) : (
// <FormFields
// // control={medicalOpinionControl}
// // errors={medicalOpinionFormState.errors}
// // register={medicalOpinionRegister}
// control={medicalOpinionMethods.control}
// errors={medicalOpinionMethods.formState.errors}
// register={medicalOpinionMethods.register}
// watchedQuestion={watchedQuestion}
// />
// )}
// <SubmitFooter />
// </form>
// </FormProvider>
// );
// }
Comments
Post a Comment