diff --git a/src/constants/index.js b/src/constants/index.js index a59b301..99928cd 100644 --- a/src/constants/index.js +++ b/src/constants/index.js @@ -42,6 +42,7 @@ export const CLINIC_STATUS = { APPROVED: 'APPROVED', APPROVAL_PENDING_DOCUMENT_RESUBMITTED: 'APPROVAL_PENDING_DOCUMENT_RESUBMITTED', + INACTIVE: 'inactive', }; export const CLINIC_DOCUMENT_STATUS = { diff --git a/src/services/clinics.service.js b/src/services/clinics.service.js index 5262a71..6ca1361 100644 --- a/src/services/clinics.service.js +++ b/src/services/clinics.service.js @@ -16,8 +16,6 @@ import { clinicsData, registeredClinicsData } from "../mock/clinics"; // }; export const getClinics = (params) => { - console.log(params); - let searchParams = new URLSearchParams(); searchParams.append("size", params?.pagination?.pageSize ?? 10); searchParams.append("page", params?.pagination.pageIndex ?? 0); diff --git a/src/services/dashboard.services.js b/src/services/dashboard.services.js index 6dc7718..407682e 100644 --- a/src/services/dashboard.services.js +++ b/src/services/dashboard.services.js @@ -12,7 +12,7 @@ export const getDashboardStats = () => { export const getSignupMasterPricing = () => { - const url = '/dashboard/signup-pricing-master/'; + const url = '/dashboard/signup-pricing-master'; return new Promise((resolve, reject) => { axiosInstance .get(url) @@ -23,7 +23,7 @@ export const getSignupMasterPricing = () => { export const setSignupMasterPricing = (data) => { - const url = '/dashboard/signup-pricing-master/'; + const url = '/dashboard/signup-pricing-master'; return new Promise((resolve, reject) => { axiosInstance .post(url, data) diff --git a/src/views/ClinicsList/index.jsx b/src/views/ClinicsList/index.jsx index 924ab9a..7b1cf23 100644 --- a/src/views/ClinicsList/index.jsx +++ b/src/views/ClinicsList/index.jsx @@ -1,49 +1,63 @@ import React, { useState, useMemo, useEffect, useRef } from "react"; import { useTheme } from "@emotion/react"; -import { useLocation, useNavigate,Link } from "react-router-dom"; -import StoreIcon from '@mui/icons-material/Store'; -import DescriptionIcon from '@mui/icons-material/Description'; -import { Box, Chip,Tab, Tabs } from '@mui/material'; -import { differenceInDays, format } from 'date-fns'; -import { LoadingButton } from '@mui/lab'; -import FileDownloadIcon from '@mui/icons-material/FileDownload'; +import { useLocation, useNavigate, Link } from "react-router-dom"; +import StoreIcon from "@mui/icons-material/Store"; +import BlockIcon from "@mui/icons-material/Block"; +import { + Box, + Chip, + Tab, + Tabs, + Dialog, + DialogActions, + DialogContent, + DialogTitle, + Button, + Typography, + IconButton, +} from "@mui/material"; +import { differenceInDays, format } from "date-fns"; +import { LoadingButton } from "@mui/lab"; +import FileDownloadIcon from "@mui/icons-material/FileDownload"; +import CloseIcon from "@mui/icons-material/Close"; import { useStyles } from "./clinicListStyles"; -import { CLINIC_STATUS, CLINIC_TYPE, NOT_AVAILABLE_TEXT, PLAN_STATUS_TYPE } from "../../constants"; -import { getClinics } from "../../services/clinics.service"; +import { + CLINIC_STATUS, + CLINIC_TYPE, + NOT_AVAILABLE_TEXT, + NOTIFICATION, + PLAN_STATUS_TYPE, +} from "../../constants"; +import { getClinics, updateClinicStatus } from "../../services/clinics.service"; import CustomBreadcrumbs from "../../components/CustomBreadcrumbs"; import Table from "../../components/Table"; import TableSelect from "../../components/TableSelect"; -import PageHeader from '../../components/PageHeader'; - +import PageHeader from "../../components/PageHeader"; +import { pushNotification } from "../../utils/notification"; const ClinicsList = () => { const theme = useTheme(); const ref = useRef(null); const classes = useStyles(); const params = useLocation(); - const navigate = useNavigate(); const queryParams = new URLSearchParams(params.search); const [type, setType] = useState( queryParams.get("tab") ?? CLINIC_TYPE.UNREGISTERED ); - const showNewPlanAddedModel = - Boolean(queryParams.get("isPlanCreated")) ?? false; const [isDownloading, setIsDownloading] = useState(false); - const[totalActive, setTotalActive] = useState(0); - const[totalInactive, setTotalInactive] = useState(0); - const [showModel, setShowModel] = useState(false); - const [modelType, setModelType] = useState(""); - const [rowActionData, setRowActionData] = useState(""); - const [isEmailSentPopupOpen, setIsEmailSentPopupOpen] = useState(false); - const emailList = useRef(); + const [totalActive, setTotalActive] = useState(0); + const [totalInactive, setTotalInactive] = useState(0); + // State for freeze clinic confirmation dialog + const [freezeDialogOpen, setFreezeDialogOpen] = useState(false); + const [clinicToFreeze, setClinicToFreeze] = useState(null); const UNREGISTERED_CLINIC_STATUS_OPTIONS = [ - { id: 1, name: CLINIC_STATUS.NOT_REVIEWED, showName: 'Approval Pending' }, + { id: 1, name: CLINIC_STATUS.NOT_REVIEWED, showName: "Approval Pending" }, { id: 2, name: CLINIC_STATUS.APPROVAL_PENDING_DOCUMENT_RESUBMITTED }, - { id: 3, name: CLINIC_STATUS.ON_HOLD, showName: 'On Hold' }, - { id: 4, name: CLINIC_STATUS.REJECTED, showName: 'Rejected' }, + { id: 3, name: CLINIC_STATUS.ON_HOLD, showName: "On Hold" }, + { id: 4, name: CLINIC_STATUS.REJECTED, showName: "Rejected" }, ]; const columnsUnregistered = useMemo( @@ -79,7 +93,11 @@ const ClinicsList = () => { <>