From 232f11d14286be68602f177693a2d55dd2355d39 Mon Sep 17 00:00:00 2001 From: deepvasoya Date: Fri, 23 May 2025 13:38:06 +0530 Subject: [PATCH] feat: cr changes and improvements --- .../mainLayout/components/sideBarConfig.js | 88 ++++---- src/layouts/mainLayout/index.jsx | 2 +- src/routes/index.js | 2 + .../component/GeneralInformation.jsx | 6 +- src/views/ClinicDetails/index.jsx | 6 +- src/views/ClinicsList/index.jsx | 18 +- .../Dashboard/Tiles/SuperAdminTotals.jsx | 26 +-- .../Dashboard/components/PaymentConfig.jsx | 6 +- src/views/Dashboard/components/SuperAdmin.jsx | 4 +- src/views/Dashboard/index.jsx | 2 +- src/views/Signup/YourDetailsForm.jsx | 198 ++++++++++-------- src/views/SignupCharges/index.jsx | 33 +++ .../SignupCharges/signupChargesStyles.js | 119 +++++++++++ 13 files changed, 341 insertions(+), 169 deletions(-) create mode 100644 src/views/SignupCharges/index.jsx create mode 100644 src/views/SignupCharges/signupChargesStyles.js diff --git a/src/layouts/mainLayout/components/sideBarConfig.js b/src/layouts/mainLayout/components/sideBarConfig.js index 1592774..d1098b0 100644 --- a/src/layouts/mainLayout/components/sideBarConfig.js +++ b/src/layouts/mainLayout/components/sideBarConfig.js @@ -1,94 +1,102 @@ // MUI Icons imports -import HomeOutlinedIcon from '@mui/icons-material/HomeOutlined'; -import HomeIcon from '@mui/icons-material/Home'; -import LocalHospitalOutlinedIcon from '@mui/icons-material/LocalHospitalOutlined'; -import LocalHospitalIcon from '@mui/icons-material/LocalHospital'; -import PeopleOutlineIcon from '@mui/icons-material/PeopleOutline'; -import PeopleIcon from '@mui/icons-material/People'; -import SettingsOutlinedIcon from '@mui/icons-material/SettingsOutlined'; -import SettingsIcon from '@mui/icons-material/Settings'; -import ArticleIcon from '@mui/icons-material/Article'; -import ArticleOutlinedIcon from '@mui/icons-material/ArticleOutlined'; -import PaymentIcon from '@mui/icons-material/Payment'; -import PaymentOutlinedIcon from '@mui/icons-material/PaymentOutlined'; -import { USER_ROLES } from '../../../constants'; +import HomeOutlinedIcon from "@mui/icons-material/HomeOutlined"; +import HomeIcon from "@mui/icons-material/Home"; +import LocalHospitalOutlinedIcon from "@mui/icons-material/LocalHospitalOutlined"; +import LocalHospitalIcon from "@mui/icons-material/LocalHospital"; +import PeopleOutlineIcon from "@mui/icons-material/PeopleOutline"; +import PeopleIcon from "@mui/icons-material/People"; +import SettingsOutlinedIcon from "@mui/icons-material/SettingsOutlined"; +import SettingsIcon from "@mui/icons-material/Settings"; +import ArticleIcon from "@mui/icons-material/Article"; +import ArticleOutlinedIcon from "@mui/icons-material/ArticleOutlined"; +import PaymentIcon from "@mui/icons-material/Payment"; +import PaymentOutlinedIcon from "@mui/icons-material/PaymentOutlined"; +import { USER_ROLES } from "../../../constants"; // Define the sidebar configuration with proper permission fields export const SIDEBAR_CONFIG = [ { - text: 'Dashboard', - path: '', + text: "Dashboard", + path: "", icon: HomeOutlinedIcon, activeIcon: HomeIcon, // Dashboard is accessible to all roles - roles: [USER_ROLES.SUPER_ADMIN, USER_ROLES.CLINIC_ADMIN] + roles: [USER_ROLES.SUPER_ADMIN, USER_ROLES.CLINIC_ADMIN], }, { - text: 'Clinics List', - path: 'clinics', + text: "Clinics", + path: "clinics", icon: LocalHospitalOutlinedIcon, activeIcon: LocalHospitalIcon, // Only super admin can access clinics list - roles: [USER_ROLES.SUPER_ADMIN] + roles: [USER_ROLES.SUPER_ADMIN], }, { - text: 'Admin Staff Management', - path: 'admin', + text: "Admin Staff Management", + path: "admin", icon: PeopleOutlineIcon, activeIcon: PeopleIcon, // Only super admin can access admin staff management - roles: [USER_ROLES.SUPER_ADMIN] + roles: [USER_ROLES.SUPER_ADMIN], }, { - text: 'Master Data Management', - path: 'masterData', + text: "Master Data Management", + path: "masterData", icon: SettingsOutlinedIcon, activeIcon: SettingsIcon, // Only super admin can access admin staff management - roles: [USER_ROLES.SUPER_ADMIN] + roles: [USER_ROLES.SUPER_ADMIN], }, { - text: 'Payment Management', - path: 'payment-management', + text: "Payment Management", + path: "payment-management", icon: PaymentOutlinedIcon, activeIcon: PaymentIcon, // Only super admin can access payment management - roles: [USER_ROLES.SUPER_ADMIN] + roles: [USER_ROLES.SUPER_ADMIN], }, { - text: 'Doctor/Nurse Management', - path: 'doctor', + text: "Signup Charges", + path: "signup-charges", + icon: PaymentOutlinedIcon, + activeIcon: PaymentIcon, + // Only super admin can access payment management + roles: [USER_ROLES.SUPER_ADMIN], + }, + { + text: "Doctor/Nurse Management", + path: "doctor", requireSaprateApp: false, icon: PeopleOutlineIcon, activeIcon: PeopleIcon, // Clinic admin can access user management - roles: [USER_ROLES.CLINIC_ADMIN] + roles: [USER_ROLES.CLINIC_ADMIN], }, { - text: 'Clinic Setup', - path: 'clinicSetup', + text: "Clinic Setup", + path: "clinicSetup", requireSaprateApp: false, icon: SettingsOutlinedIcon, activeIcon: SettingsIcon, // Clinic admin can access clinic setup - roles: [USER_ROLES.CLINIC_ADMIN] + roles: [USER_ROLES.CLINIC_ADMIN], }, { - text: 'Call Transcripts', - path: 'transcripts', + text: "Call Transcripts", + path: "transcripts", requireSaprateApp: false, icon: ArticleOutlinedIcon, activeIcon: ArticleIcon, // Clinic admin can access call transcripts - roles: [USER_ROLES.CLINIC_ADMIN] + roles: [USER_ROLES.CLINIC_ADMIN], }, { - text: 'Clinic Documents', - path: 'docs', + text: "Clinic Documents", + path: "docs", requireSaprateApp: false, icon: ArticleOutlinedIcon, activeIcon: ArticleIcon, // Clinic admin can access call transcripts - roles: [USER_ROLES.CLINIC_ADMIN] + roles: [USER_ROLES.CLINIC_ADMIN], }, ]; diff --git a/src/layouts/mainLayout/index.jsx b/src/layouts/mainLayout/index.jsx index c238f48..bb674c2 100644 --- a/src/layouts/mainLayout/index.jsx +++ b/src/layouts/mainLayout/index.jsx @@ -141,7 +141,7 @@ function MainLayout() { className={classes.functionalityNotAvailableText} variant="h4" > - This section will launch soon. + This section will accessible after approval { Uploaded:{' '} - {clinicData?.updatedAt - ? format(new Date(clinicData?.createdAt), 'dd MMM yyyy') + {clinicData?.update_time + ? format(new Date(clinicData?.update_time), 'dd MMM yyyy') : ''} @@ -92,7 +92,7 @@ const GeneralInformation = ({ clinicData, clinicAdminData }) => { {clinicAdminData?.designation - ? clinicAdminData?.designation + ? clinicAdminData?.designation.toUpperCase() : NOT_AVAILABLE_TEXT} diff --git a/src/views/ClinicDetails/index.jsx b/src/views/ClinicDetails/index.jsx index b44de18..2895798 100644 --- a/src/views/ClinicDetails/index.jsx +++ b/src/views/ClinicDetails/index.jsx @@ -80,7 +80,7 @@ function ClinicDetails() { path: "/", }, { - label: "Clinic List", + label: "Clinics", path: "/clinics", query: { tab: queryParams.get("tab") || "UNREGISTERED" }, }, @@ -363,7 +363,7 @@ function ClinicDetails() { {/* ..........on hold Button..... */} - + */} {/* ......accept button...... */} - - ), - }} - /> - - Note: This will be your login ID. - - - {/* mobile numer grid */} @@ -846,7 +803,6 @@ function YourDetailsForm() { onChange={formik.handleChange} onBlur={formik.handleBlur} inputRef={fieldRefs.mobilePrefix} - defaultValue={"61"} > {mobilePrefixOptions.map((option) => ( {option.name} @@ -879,6 +835,53 @@ function YourDetailsForm() { /> + {/* email id grid */} + + + Your Official Email ID* + + + + + ), + }} + /> + + Note: This will be your login ID. + + + {/* otp verification grid */} {otpField && ( @@ -894,10 +897,17 @@ function YourDetailsForm() { value={otp} onChange={(e) => setOtp(e.target.value)} onBlur={formik.handleBlur} + disabled={otpVerified} InputProps={{ type: "text", pattern: "[0-9]*", - endAdornment: ( + endAdornment: otpVerified ? ( + + + + ) : ( + - + I agree to{" "} {" "} diff --git a/src/views/SignupCharges/index.jsx b/src/views/SignupCharges/index.jsx new file mode 100644 index 0000000..d5685cf --- /dev/null +++ b/src/views/SignupCharges/index.jsx @@ -0,0 +1,33 @@ +import { Box } from "@mui/system"; +import React from "react"; +import { useStyles } from "./signupChargesStyles"; +import PageHeader from "../../components/PageHeader"; +import PaymentConfig from "../Dashboard/components/PaymentConfig"; + +const SignupCharges = () => { + const classes = useStyles(); + + const breadcrumbs = [ + { + label: "Dashboard", + path: "/", + }, + { + label: "Signup Charges", + path: "/signup-charges", + }, + ]; + + return ( + + + + + + + + + ); +}; + +export default SignupCharges; diff --git a/src/views/SignupCharges/signupChargesStyles.js b/src/views/SignupCharges/signupChargesStyles.js new file mode 100644 index 0000000..a2a130e --- /dev/null +++ b/src/views/SignupCharges/signupChargesStyles.js @@ -0,0 +1,119 @@ +import makeStyles from '@mui/styles/makeStyles'; +import { pxToRem } from '../../theme/typography'; + +export const useStyles = makeStyles((theme) => ({ + chipClass: { + height: 'fit-content', + minHeight: '30px', + padding: '2px', + alignItems: 'center', + }, + statusColor: { + color: theme.palette.primary.main, + fontSize: pxToRem(10), + }, + tabsBox: { + display: 'flex', + justifyContent: ' space-around', + // width: '55%', + marginTop: theme.spacing(0.5), + marginRight: theme.spacing(5.0), + alignItems: 'center', + }, + secondaryButton: { + width: '200px', + height: '46px', + borderRadius: '8px', + justifyContent: 'space-evenly', + fontSize: pxToRem(16), + }, + tableActionIcons: { + marginRight: theme.spacing(1.4), + width: '15px', + }, + companyNameTableColumn: { + display: 'flex', + alignItems: 'center', + }, + companyName: { + marginLeft: theme.spacing(1), + fontSize: pxToRem(14), + objectFit: 'contain', + width: '260px', + }, + companyNameLink: { + textDecoration: 'none', + color: theme.palette.grey[10], + '&:hover': { + color: theme.palette.info.main, + textDecoration: 'underline', + }, + }, + companyWebsiteLabel: { + fontSize: pxToRem(12), + }, + companyNameLogo: { + height: '40px', + width: '40px', + borderRadius: theme.shape.borderRadiusComponent, + objectFit: 'contain', + }, + sendEmailStatus: { + fontSize: pxToRem(14), + color: theme.palette.primary.main, + }, + sendEmailLastSentMailDate: { + fontSize: pxToRem(12), + }, + addDiscountCodeLink: { + fontSize: pxToRem(12), + color: theme.palette.primary.main, + }, + addDiscountCodeLabel: { + fontSize: pxToRem(14), + backgroundColor: theme.palette.common.white, + color: theme.palette.common.black, + }, + customModel: { + display: 'flex', + flexDirection: 'column', + justifyContent: 'center', + alignItems: 'center', + height: '100%', + }, + customModelBox: { + paddingLeft: theme.spacing(5), + paddingRight: theme.spacing(5), + textAlign: 'center', + display: 'flex', + flexDirection: 'column', + justifyContent: 'center', + alignItems: 'center', + // height: '100%', + border: 'none', + }, + newPlanTitleText: { + fontSize: pxToRem(28), + fontFamily: theme.fontFamily.bold, + }, + newPlanSubTitleText: { + fontSize: pxToRem(18), + padding: theme.spacing(1), + }, + addPlanSuccessIcon: { + padding: theme.spacing(2), + paddingTop: theme.spacing(1), + }, + planAddedText: { + fontSize: pxToRem(12), + color: theme.palette.grey[54], + display: 'flex', + alignItems: 'center', + alignSelf: 'center', + }, + verifyIcon: { + marginLeft: theme.spacing(0.3), + fontSize: pxToRem(12), + color: theme.palette.grey[54], + }, +}));