diff --git a/src/Pages/OptiFiiExpense/ReimbursementRequestView.jsx b/src/Pages/OptiFiiExpense/ReimbursementRequestView.jsx index c6dfb8b..7c460b5 100644 --- a/src/Pages/OptiFiiExpense/ReimbursementRequestView.jsx +++ b/src/Pages/OptiFiiExpense/ReimbursementRequestView.jsx @@ -1,18 +1,18 @@ import { - Box, - Button, - HStack, - VStack, - Icon, - Checkbox, - Tag, - TagLabel, - Text, - Image, - useDisclosure, - Alert, - CloseButton, - AlertDescription, + Box, + Button, + HStack, + VStack, + Icon, + Checkbox, + Tag, + TagLabel, + Text, + Image, + useDisclosure, + Alert, + CloseButton, + AlertDescription, } from "@chakra-ui/react"; import React, { useContext, useEffect, useState } from "react"; import MiniHeader from "../../Components/MiniHeader"; @@ -26,249 +26,319 @@ import { MdOutlineNoFood } from "react-icons/md"; import { OPACITY_ON_LOAD } from "../../Layout/animations"; import { IoMdCheckmark } from "react-icons/io"; import { RxCross2 } from "react-icons/rx"; -import PrimaryButton from "../../Components/Buttons/PrimaryButton" -import SecondaryButton from "../../Components/Buttons/SecondaryButton" +import PrimaryButton from "../../Components/Buttons/PrimaryButton"; +import SecondaryButton from "../../Components/Buttons/SecondaryButton"; +import { TiTick } from "react-icons/ti"; +import { ImCancelCircle } from "react-icons/im"; const ReimbursementRequestView = () => { + const [alertStatus, setAlertStatus] = useState(null); - const [alertStatus, setAlertStatus] = useState(null); + const handleApprove = () => { + setAlertStatus("success"); + }; - const handleApprove = () => { - setAlertStatus('success'); - }; + const handleReject = () => { + setAlertStatus("error"); + }; - const handleReject = () => { - setAlertStatus('error'); - }; + const { employees } = useContext(GlobalStateContext); + const [isLoading, setIsLoading] = useState(false); - const { employees } = useContext(GlobalStateContext); - const [isLoading, setIsLoading] = useState(false); + useEffect(() => { + // Set isLoading to true + setIsLoading(true); - useEffect(() => { - // Set isLoading to true - setIsLoading(true); + // Simulate a 3-second delay + const timer = setTimeout(() => { + setIsLoading(false); // Set isLoading to false after 3 seconds + }, 500); - // Simulate a 3-second delay - const timer = setTimeout(() => { - setIsLoading(false); // Set isLoading to false after 3 seconds - }, 500); + // Cleanup the timer when the component unmounts or when the useEffect re-runs + return () => clearTimeout(timer); + }, []); // Empty dependency array means this effect runs once after the component mounts - // Cleanup the timer when the component unmounts or when the useEffect re-runs - return () => clearTimeout(timer); - }, []); // Empty dependency array means this effect runs once after the component mounts + // ===============================[ Table Header ] + const tableHeadRow = [ + "Sr. No", + "Name", + "Email Address", + "Mobile number", + "Grade", + "Department", + "Role", + "Bills", + "Action", + ]; - // ===============================[ Table Header ] - const tableHeadRow = [ - "Sr. No", - "Name", - "Email Address", - "Mobile number", - "Grade", - "Department", - "Role", - "Action", - ]; + // const extractedArray = reportsHistory.map((item)=>({ })) - // const extractedArray = reportsHistory.map((item)=>({ })) + const extractedArray = employees.map((item, index) => ({ + "Sr. No": ( + + {index + 1} + + ), + Name: item?.Name, + "Email Address": item?.emailAddress, + "Mobile number": item?.mobileNumber, + Grade: item?.Grade, + Department: item?.Department, + Role: item?.Role, + Bills: ( + + + + + + Invoice243 + + + ), + Action: ( + + + + + ), + })); - const extractedArray = employees.map((item, index) => ({ - "Sr. No": ( - - {index + 1} - - ), - Name: item?.Name, - "Email Address": item?.emailAddress, - "Mobile number": item?.mobileNumber, - Grade: item?.Grade, - Department: item?.Department, - Role: item?.Role, - Action: ( - - - - - - Invoice243 - - - ), - })); - - return ( - - - - - - - {/* + {/* */} - {alertStatus === 'success' && ( - - - - - - Approved by giftryt - - - - - )} + {alertStatus === "success" && ( + + + + + + Approved by giftryt + + + + + )} - {alertStatus === 'error' && ( - - - - - - Rejected by giftryt - - - - - )} - - - - - - - Approved - - - - By Sr. Manager - - - - - In progress - - - - - Pending - - - By Sr. Manager - - - - - Pending - - - By Sr. Manager - - - - - Pending - - - By Sr. Manager - - + {alertStatus === "error" && ( + + + + + + Rejected by giftryt + + + + + )} + + + + + + + Approved + + + + By Sr. Manager + + + + + In progress + + + + + Pending + + + By Sr. Manager + + + + + Pending + + + By Sr. Manager + + + + + Pending + + + By Sr. Manager + + + - + + + + Report number : 1254587841 + + + Reimbursement report 2024 + + + + + Amount to be reimbursed + + + ₹ 50,000 + + + - - - - Report number : 1254587841 - - - Reimbursement report 2024 - - - - - Amount to be reimbursed - - - ₹ 50,000 - - - + + + + Submitted by + + + Dan Abramov + + + Pooja Shah + + + poojashah @wdipl.com + + + - - - - Submitted by - - - Dan Abramov - - - Pooja Shah - - - poojashah @wdipl.com - - - + + Duration - 10 June - 28 June + + + + + Pending approval + + + + + Manav sain + + + manavsain@wdipl.com + + + Dan Abramov + + + - - Duration - 10 June - 28 June - - - - - Pending approval - - - - - Manav sain - - - manavsain@wdipl.com - - - Dan Abramov - - - + - - - - - - - - - - - ); + + + + + + + ); }; export default ReimbursementRequestView; diff --git a/src/Pages/OptiFiiGifsAndVouchers/GiftDashboard.jsx b/src/Pages/OptiFiiGifsAndVouchers/GiftDashboard.jsx index bf39624..128964e 100644 --- a/src/Pages/OptiFiiGifsAndVouchers/GiftDashboard.jsx +++ b/src/Pages/OptiFiiGifsAndVouchers/GiftDashboard.jsx @@ -752,43 +752,45 @@ const GiftDashboard = () => { {/* Gift Card */} - - - - - - + + + + + + Apply for gift card - { > - - - + + + + - + {/* Brand Voucher */} - - + { opacity={0.7} > - - + + {/* GPR Card */} { const [isLoading, setIsLoading] = useState(false); const [searchTerm, setSearchTerm] = useState(""); const [users, setusers] = useState(50); + const [selectedRadio, setSelectedRadio] = useState([]); const navigate = useNavigate(); useEffect(() => { @@ -172,6 +173,7 @@ const BenifitOverView = () => { // ===============================[ Table Header ] const dashHeadSecRow = [ + "Sr No", "Wallet Name", "Total employees", "Benefit limit", @@ -180,6 +182,7 @@ const BenifitOverView = () => { ]; const dashSecArr = dash.map((item, index) => ({ + "Sr No": item.id, "Wallet Name": ( {/* @@ -376,6 +379,9 @@ const BenifitOverView = () => { tableHeadRow={dashHeadSecRow} data={dashSecArr} isLoading={isLoading} + showRadioButton={true} + setSelectedRadio={setSelectedRadio} + selectedRadio={selectedRadio} />