fix: clinic doc update

This commit is contained in:
deepvasoya 2025-05-28 11:51:06 +05:30
parent 24c600ac32
commit fbcdf3fccc
8 changed files with 126 additions and 99 deletions

View File

@ -481,12 +481,6 @@ const CustomFileUpload = forwardRef(function CustomFileUpload(
</Grid>
</Grid>
<Grid container>
<Grid item md={12} className={classes.previewFileTitle}>
<Typography color="white">{imageName}</Typography>
</Grid>
</Grid>
<Grid xs={12} className={classes.previewImageGrid}>
{!oldUploadedFileUrl ? (
<>

View File

@ -49,6 +49,16 @@ export const updateClinicStatus = (data) => {
});
};
export const getClinicDocs = (id) => {
const url = `/clinics/verified-files/${id}`;
return new Promise((resolve, reject) => {
axiosInstance
.get(url)
.then((response) => resolve(response))
.catch((err) => reject(err));
});
};
export const updateClinicDocs = (id, data) => {
const url = `/clinics/${id}`;
return new Promise((resolve, reject) => {

View File

@ -92,7 +92,7 @@ const GeneralInformation = ({ clinicData, clinicAdminData }) => {
<Box>
<Typography className={classes.companyUserDetailsTitle}>
{clinicAdminData?.designation
? clinicAdminData?.designation.toUpperCase()
? clinicAdminData?.designation?.toUpperCase()?.replace(/_/g, ' ')
: NOT_AVAILABLE_TEXT}
</Typography>
<Typography className={classes.companyUserDetailsSubTitle}>

View File

@ -5,34 +5,64 @@ import CustomFileUpload from "../../components/CustomFileUpload";
import { useFormik } from "formik";
import * as Yup from "yup";
import { MAX_FILE_SIZE_IN_MB, MAX_FILES } from "../../constants";
import { updateClinicDocs } from "../../services/clinics.service";
import {
getClinicDocs,
updateClinicDocs,
} from "../../services/clinics.service";
import { useNavigate } from "react-router-dom";
import { useSelector } from "react-redux";
const ClinicDocUpdater = () => {
const navigate = useNavigate();
const user = useSelector((state) => state.login.user);
// Use state instead of ref for initial form data
const [initialFormData, setInitialFormData] = useState({
companyABNImage: "",
contract: "",
logo: "",
clinicId: "",
isABNVerified: false,
isContractVerified: false,
isLogoVerified: false,
});
// Track if data is loaded
const [isDataLoaded, setIsDataLoaded] = useState(false);
const _getClinicDocs = async () => {
try {
const response = await getClinicDocs(user.created_clinics[0].id);
const files = response?.data?.data?.clinic_files;
const clinic = response?.data?.data?.clinic;
setInitialFormData({
...initialFormData,
clinicId: user.created_clinics[0].id,
companyABNImage: clinic?.abn_doc,
contract: clinic?.contract_doc,
logo: clinic?.logo,
isABNVerified: files?.abn_doc_is_verified ?? false,
isContractVerified: files?.contract_doc_is_verified ?? false,
isLogoVerified: files?.logo_is_verified ?? false,
});
} catch (error) {
console.error("Error getting clinic docs:", error);
}
};
useEffect(() => {
// Load user data from localStorage
try {
const user = JSON.parse(localStorage.getItem("user"));
if (user && user.created_clinics ) {
if (user && user.created_clinics) {
setInitialFormData({
companyABNImage: user.created_clinics.abn_doc || "",
contract: user.created_clinics.contract_doc || "",
logo: user.created_clinics.logo || "",
clinicId: user.created_clinics.id || "",
});
} else {
_getClinicDocs();
}
} catch (error) {
console.error("Error loading user data:", error);
@ -48,12 +78,11 @@ const ClinicDocUpdater = () => {
});
const handleFormSubmit = async () => {
console.log("Form values:", formik.values);
const payload = {
abn_doc: formik.values.companyABNImage,
contract_doc: formik.values.contract,
logo: formik.values.logo,
}
};
const resp = await updateClinicDocs(formik.values.clinicId, payload);
console.log(resp);
@ -78,13 +107,8 @@ const ClinicDocUpdater = () => {
// Set uploaded file URL
const setUploadedFileUrl = (documentName, fileUrl) => {
console.log("Document Name:", documentName);
console.log("File URL:", fileUrl);
console.log("File URL Type:", typeof fileUrl);
if (documentName && fileUrl !== undefined) {
formik.setFieldValue(documentName, fileUrl);
console.log("After setting value:", formik.values[documentName]);
} else {
console.error("Invalid parameters for setUploadedFileUrl:", {
documentName,
@ -106,83 +130,83 @@ const ClinicDocUpdater = () => {
}}
>
<Typography variant="h6" component="div">
Clinic Docs
Clinic Documents
</Typography>
</Box>
{isDataLoaded ? (
<form onSubmit={formik.handleSubmit}>
<Box
sx={{
p: 2,
display: "flex",
gap: 2,
flexWrap: "wrap",
alignItems: "center",
}}
>
<Grid
container
spacing={5}
// padding={`0 ${theme.spacing(3.2)}`}
// className={classes.formRoot}
// sx={{ display: "flex" }}
<form onSubmit={formik.handleSubmit}>
<Box
sx={{
p: 2,
display: "flex",
gap: 2,
flexWrap: "wrap",
alignItems: "center",
}}
>
<Grid item md={4} sm={12} xs={12}>
<CustomFileUpload
label="Add ABN/ACN Image*"
documentName="companyABNImage"
onUploadDone={setUploadedFileUrl}
maxFileSizeInMb={MAX_FILE_SIZE_IN_MB}
maxFiles={MAX_FILES}
uploadedFileUrl={formik.values.companyABNImage}
errorMessage={
formik.errors.companyABNImage &&
formik.touched.companyABNImage
? formik.errors.companyABNImage
: ""
}
/>
<Grid
container
spacing={5}
>
<Grid item md={4} sm={12} xs={12}>
<CustomFileUpload
label="Add ABN/ACN Image*"
documentName="companyABNImage"
onUploadDone={setUploadedFileUrl}
maxFileSizeInMb={MAX_FILE_SIZE_IN_MB}
maxFiles={MAX_FILES}
uploadedFileUrl={formik.values.companyABNImage}
errorMessage={
formik.errors.companyABNImage &&
formik.touched.companyABNImage
? formik.errors.companyABNImage
: ""
}
isDisabled={formik.values.isABNVerified}
/>
</Grid>
<Grid item md={4} sm={12} xs={12}>
<CustomFileUpload
label="Add Contract*"
documentName="contract"
onUploadDone={setUploadedFileUrl}
maxFileSizeInMb={MAX_FILE_SIZE_IN_MB}
maxFiles={MAX_FILES}
uploadedFileUrl={formik.values.contract}
errorMessage={
formik.errors.contract && formik.touched.contract
? formik.errors.contract
: ""
}
isDisabled={formik.values.isContractVerified}
/>
</Grid>
<Grid item md={4} sm={12} xs={12}>
<CustomFileUpload
label="Add Logo*"
documentName="logo"
onUploadDone={setUploadedFileUrl}
maxFileSizeInMb={MAX_FILE_SIZE_IN_MB}
maxFiles={MAX_FILES}
uploadedFileUrl={formik.values.logo}
errorMessage={
formik.errors.logo && formik.touched.logo
? formik.errors.logo
: ""
}
isDisabled={formik.values.isLogoVerified}
/>
</Grid>
</Grid>
<Grid item md={4} sm={12} xs={12}>
<CustomFileUpload
label="Add Contract*"
documentName="contract"
onUploadDone={setUploadedFileUrl}
maxFileSizeInMb={MAX_FILE_SIZE_IN_MB}
maxFiles={MAX_FILES}
uploadedFileUrl={formik.values.contract}
errorMessage={
formik.errors.contract && formik.touched.contract
? formik.errors.contract
: ""
}
/>
</Grid>
<Grid item md={4} sm={12} xs={12}>
<CustomFileUpload
label="Add Logo*"
documentName="logo"
onUploadDone={setUploadedFileUrl}
maxFileSizeInMb={MAX_FILE_SIZE_IN_MB}
maxFiles={MAX_FILES}
uploadedFileUrl={formik.values.logo}
errorMessage={
formik.errors.logo && formik.touched.logo
? formik.errors.logo
: ""
}
/>
</Grid>
</Grid>
<Button
onClick={handleSubmit}
variant="contained"
color="primary"
>
Submit
</Button>
</Box>
</form>
<Button
onClick={handleSubmit}
variant="contained"
color="primary"
>
Submit
</Button>
</Box>
</form>
) : (
<Box sx={{ p: 2 }}>
<Typography>Loading clinic documents...</Typography>

View File

@ -265,7 +265,7 @@ const PaymentManagement = () => {
showFilters: true,
}}
showAction={true}
searchText="Staff"
searchText="Payments"
showSearchBox={true}
actions={[
{

View File

@ -374,7 +374,7 @@ function YourDetailsForm() {
};
const handleFormSubmit = async () => {
dispatch(updateFormDetails(formik.values));
// dispatch(updateFormDetails(formik.values));
if (!otpField) {
pushNotification("Please Request OTP first", NOTIFICATION.ERROR);

View File

@ -39,7 +39,6 @@ const updateFormDetails = (state, payload) => ({
...payload,
});
const resetFormData = (state) => ({
...state,
...initialState,
});

View File

@ -103,7 +103,7 @@ const ThankYou = ({ canClose = true, setShowPopup }) => {
</Typography>
</Grid>
</Grid>
{faqData.map((faq, index) => (
{/* {faqData.map((faq, index) => (
<Accordion key={index}>
<AccordionSummary
expandIcon={<ExpandMoreIcon />}
@ -120,7 +120,7 @@ const ThankYou = ({ canClose = true, setShowPopup }) => {
</Typography>
</AccordionDetails>
</Accordion>
))}
))} */}
</Box>
) : (
<Box className={classes.thankYouTitle}>
@ -143,13 +143,13 @@ const ThankYou = ({ canClose = true, setShowPopup }) => {
Please wait while 24x7 AIHR team is verifying your details.
</Typography>
</Box>
<Box>
{/*<Box>
<Typography className={classes.description}>
After verification we will send you a link on your
registered Email Address.
</Typography>
</Box>
<LoadingButton
</Box>*/}
{/* <LoadingButton
className={classes.faqButton}
size="small"
type="submit"
@ -157,7 +157,7 @@ const ThankYou = ({ canClose = true, setShowPopup }) => {
onClick={() => setShowFqaSection(true)}
>
FAQs
</LoadingButton>
</LoadingButton> */}
</Box>
)}
</Box>