From f4de901a6add9f71cb3c453557bf2c9ba8d2b18b Mon Sep 17 00:00:00 2001 From: priyanshuvish Date: Mon, 14 Oct 2024 17:43:13 +0530 Subject: [PATCH] complete three steps --- src/App.css | 3 + src/Components/RupeeSlider/RupeeSlider.jsx | 5 +- .../OptiFiiExpense/wallet/BenifitStepOne.jsx | 70 ++++++---- .../wallet/BenifitStepThree.jsx | 88 ++++++++++++ .../OptiFiiExpense/wallet/BenifitStepTwo.jsx | 57 ++++++++ .../wallet/CreateBenefitWalletModal.jsx | 125 ++++++++++-------- 6 files changed, 263 insertions(+), 85 deletions(-) create mode 100644 src/Pages/OptiFiiExpense/wallet/BenifitStepThree.jsx create mode 100644 src/Pages/OptiFiiExpense/wallet/BenifitStepTwo.jsx diff --git a/src/App.css b/src/App.css index 547a3ff..5635b66 100644 --- a/src/App.css +++ b/src/App.css @@ -561,4 +561,7 @@ a.active { } .css-ylpnre { gap: 0 !important; +} +.css-90e3v4[data-status=complete] { + background: #3725EA !important; } \ No newline at end of file diff --git a/src/Components/RupeeSlider/RupeeSlider.jsx b/src/Components/RupeeSlider/RupeeSlider.jsx index afbdf08..3d696f1 100644 --- a/src/Components/RupeeSlider/RupeeSlider.jsx +++ b/src/Components/RupeeSlider/RupeeSlider.jsx @@ -33,9 +33,10 @@ const RupeeSlider = () => { textAlign='center' bg='#efeefe' color='#3725EA' - mt='-14' - ml='-7' + mt='-12' + ml='-45px' p={2} + w={90} fontSize={"xs"} fontWeight={600} rounded={"md"} diff --git a/src/Pages/OptiFiiExpense/wallet/BenifitStepOne.jsx b/src/Pages/OptiFiiExpense/wallet/BenifitStepOne.jsx index 79a4897..9480232 100644 --- a/src/Pages/OptiFiiExpense/wallet/BenifitStepOne.jsx +++ b/src/Pages/OptiFiiExpense/wallet/BenifitStepOne.jsx @@ -1,16 +1,29 @@ import React, { useState } from 'react'; import { - Box, Text, Input, Select, Stack, - InputGroup, - InputLeftElement, - HStack, - Divider, + Box, Text, Input, Select, Stack, + InputGroup, + InputLeftElement, + HStack, + Divider, + Tag, } from "@chakra-ui/react"; import { MdCurrencyRupee } from "react-icons/md"; import { HiOutlineExclamationCircle } from "react-icons/hi2"; import RupeeSlider from '../../../Components/RupeeSlider/RupeeSlider'; const BenifitStepOne = () => { + + const transactionRules = [ + { + ruleText: "Either of them", + tags: ["Food", "Fuel"] + }, + { + ruleText: "None of them", + tags: ["Electronics", "Clothing"] + } + ]; + return ( {/* Your form fields */} @@ -83,26 +96,33 @@ const BenifitStepOne = () => { Merchant transaction rule - - - Transaction rule - - - Either of them - - - - - - Transaction rule - - - Merchant category - - - - - + {transactionRules.map((rule, index) => ( + + {/* Transaction rule: Dynamic content */} + + Transaction rule + + + {rule.ruleText} {/* Dynamic text from the rule */} + + + + + + {/* Dynamic Tags */} + + Merchant category + + {rule.tags.map((tag, tagIndex) => ( + + {tag} + + ))} + + + + ))} + diff --git a/src/Pages/OptiFiiExpense/wallet/BenifitStepThree.jsx b/src/Pages/OptiFiiExpense/wallet/BenifitStepThree.jsx new file mode 100644 index 0000000..cc7b640 --- /dev/null +++ b/src/Pages/OptiFiiExpense/wallet/BenifitStepThree.jsx @@ -0,0 +1,88 @@ +import React, { useState } from 'react'; +import { + Box, Text, Input, Select, Stack, + InputGroup, + InputLeftElement, + HStack, + Divider, + Radio, + RadioGroup, +} from "@chakra-ui/react"; +import { MdCurrencyRupee } from "react-icons/md"; +import { HiOutlineExclamationCircle } from "react-icons/hi2"; +import RupeeSlider from '../../../Components/RupeeSlider/RupeeSlider'; + +const BenifitStepThree = () => { + return ( + + {/* Your form fields */} + + + Create submission policy + + + + + 1. Requirement of receipt + + + + + Required + + + Not required + + + + + + + Required for + + + + + All transaction + + + + Transaction above + + + + + + + + + + + + + + + + 2. what nature of receipt/memo + + + + + Printed + + + Hand written + + + Both + + + + + + + + ) +} + +export default BenifitStepThree \ No newline at end of file diff --git a/src/Pages/OptiFiiExpense/wallet/BenifitStepTwo.jsx b/src/Pages/OptiFiiExpense/wallet/BenifitStepTwo.jsx new file mode 100644 index 0000000..957b7c9 --- /dev/null +++ b/src/Pages/OptiFiiExpense/wallet/BenifitStepTwo.jsx @@ -0,0 +1,57 @@ +import React, { useState } from 'react'; +import { + Box, Text, Input, Select, Stack, + InputGroup, + InputLeftElement, + HStack, + Divider, +} from "@chakra-ui/react"; +import { MdCurrencyRupee } from "react-icons/md"; +import { HiOutlineExclamationCircle } from "react-icons/hi2"; +import RupeeSlider from '../../../Components/RupeeSlider/RupeeSlider'; + +const BenifitStepTwo = () => { + return ( + + {/* Your form fields */} + + + Create approval policy + Add up to 5 policy per approver flow + + + {/* + Description + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut et massa mi. Aliquam in hendrerit urna. Pellentesque sit amet sapien fringilla, mattis ligula consectetur, ultrices mauris. Maecenas vitae mattis tellus. + + + */} + + + + + +{/* + + + Select transaction type + + + */} + + + + + Set amount limit + + + + + ) +} + +export default BenifitStepTwo \ No newline at end of file diff --git a/src/Pages/OptiFiiExpense/wallet/CreateBenefitWalletModal.jsx b/src/Pages/OptiFiiExpense/wallet/CreateBenefitWalletModal.jsx index 314b7f0..823da94 100644 --- a/src/Pages/OptiFiiExpense/wallet/CreateBenefitWalletModal.jsx +++ b/src/Pages/OptiFiiExpense/wallet/CreateBenefitWalletModal.jsx @@ -1,8 +1,6 @@ import React, { useState } from 'react'; import { Box, Modal, ModalOverlay, ModalContent, ModalHeader, ModalBody, ModalCloseButton, Text, Input, Select, Stack, - InputGroup, - InputLeftElement, HStack, Divider, Button @@ -11,17 +9,16 @@ import { Step, StepIndicator, StepSeparator, - StepStatus, StepTitle, Stepper, } from '@chakra-ui/react'; -import { IoIosCheckmark } from "react-icons/io"; -import { MdCurrencyRupee } from "react-icons/md"; -import { HiOutlineExclamationCircle } from "react-icons/hi2"; -import PrimaryButton from "../../../../src/Components/Buttons/PrimaryButton" +import { IoCheckmark } from "react-icons/io5"; +import PrimaryButton from "../../../../src/Components/Buttons/PrimaryButton"; import RupeeSlider from '../../../Components/RupeeSlider/RupeeSlider'; import BenifitStepOne from './BenifitStepOne'; - +import BenifitStepTwo from './BenifitStepTwo'; +import BenifitStepThree from './BenifitStepThree'; + const CreateBenefitWalletModal = ({ isOpen, onClose }) => { // Define steps const steps = [ @@ -55,48 +52,66 @@ const CreateBenefitWalletModal = ({ isOpen, onClose }) => { Create Benefit Wallet - {/* Stepper Component */} - - {steps.map((step, index) => ( - - - - {index < activeStep ? ( - - ) : ( - {index + 1} + {/* Stepper Component with 130% width, custom scrollbar and horizontal scroll */} + + {/* Set the stepper width to 130% */} + + {steps.map((step, index) => ( + + + + {index < activeStep ? ( + + ) : ( + {index + 1} + )} + + + + + + + {step.title} + + + + + {index !== steps.length - 1 && ( + )} - - - - - - - {step.title} - - - - - {index !== steps.length - 1 && ( - - )} - - ))} - + + ))} + + + {/* Conditionally render form fields based on active step */} @@ -109,18 +124,12 @@ const CreateBenefitWalletModal = ({ isOpen, onClose }) => { {/* Step 2 Content: Approval Policy */} {activeStep === 1 && ( - - Approval Policy - This is step 2 content. - + )} {/* Step 3 Content: Submission Policy */} {activeStep === 2 && ( - - Submission Policy - This is step 3 content. - + )} {/* Step 4 Content: Define Budget */} @@ -132,7 +141,7 @@ const CreateBenefitWalletModal = ({ isOpen, onClose }) => { )} {/* Stepper Controls */} - +