import React, { useEffect, useState } from "react"; import { Box, Button, TextField, Typography } from "@mui/material"; import CustomTable, { Column } from "../../components/CustomTable"; import { useDispatch, useSelector } from "react-redux"; import { RootState, AppDispatch } from "../../redux/store/store"; import { useForm } from "react-hook-form"; import { addBooking, bookingList } from "../../redux/slices/bookSlice"; import AddBookingModal from "../../components/AddBookingModal"; export default function ManagerList() { const [addModalOpen, setAddModalOpen] = useState(false); const [editModalOpen, setEditModalOpen] = useState(false); const [editRow, setEditRow] = useState(null); const { reset } = useForm(); const [deleteModal, setDeleteModal] = useState(false); const [viewModal, setViewModal] = useState(false); const [rowData, setRowData] = useState(null); const [searchTerm, setSearchTerm] = useState(""); const dispatch = useDispatch(); const bookings = useSelector( (state: RootState) => state?.bookReducer.bookings ); const users = useSelector((state: RootState) => state?.profileReducer.user); useEffect(() => { dispatch(bookingList()); }, [dispatch]); const handleClickOpen = () => { setRowData(null); setAddModalOpen(true); }; const handleCloseModal = () => { setAddModalOpen(false); setEditModalOpen(false); setRowData(null); reset(); }; const handleAddBooking = async (data: { stationId: string; date: string; startTime: string; endTime: string; }) => { try { await dispatch(addBooking(data)); await dispatch(bookingList()); handleCloseModal(); // Close the modal } catch (error) { console.error("Error adding manager", error); } }; const categoryColumns: Column[] = [ { id: "srno", label: "Sr No" }, { id: "name", label: "User Name" }, // { id: "stationName", label: "Station Name" }, // { id: "registeredAddress", label: "Station Location" }, { id: "stationId", label: "Station Id" }, { id: "date", label: "Date" }, { id: "startTime", label: "Start Time" }, { id: "endTime", label: "End Time" }, { id: "action", label: "Action", align: "center" }, ]; const categoryRows = bookings?.length ? bookings?.map(function ( booking: { id: number; name: string; stationId: string; date: string; startTime: string; endTime: string; }, index: number ) { return { id: booking?.id ?? "NA", srno: index + 1, name: users?.name ?? "NA", stationId: booking?.stationId ?? "NA", date: booking?.date ?? "NA", startTime: booking?.startTime ?? "NA", endTime: booking?.endTime ?? "NA", }; }) : []; // console.log("Rowa", categoryRows); return ( <> setEditModalOpen(true)} tableType="booking" handleClickOpen={handleClickOpen} /> {/* Add Manager Modal */} ); }