From 2ae2b12267bac1117d12a923db23de5d8f2b0218 Mon Sep 17 00:00:00 2001 From: YasinShaikh123 <123150391+YasinShaikh123@users.noreply.github.com> Date: Mon, 8 Jul 2024 12:23:26 +0530 Subject: [PATCH 1/7] stash commit --- src/Components/DataTable/DataTable.jsx | 2 +- src/Pages/IO_Management/CreateIO/CreateIO.jsx | 2 +- .../IO_Management/CreateIO/IOArtifacts.jsx | 4 +- .../IO_Management/CreateIO/KeyMerits.jsx | 5 +- src/Pages/IO_Management/IOArtifactsAdd.jsx | 140 ++++++++++++++++ src/Pages/IO_Management/KeyMeritsAdd.jsx | 150 ++++++++++++++++++ 6 files changed, 297 insertions(+), 6 deletions(-) create mode 100644 src/Pages/IO_Management/IOArtifactsAdd.jsx create mode 100644 src/Pages/IO_Management/KeyMeritsAdd.jsx diff --git a/src/Components/DataTable/DataTable.jsx b/src/Components/DataTable/DataTable.jsx index f8864ed..db0537a 100644 --- a/src/Components/DataTable/DataTable.jsx +++ b/src/Components/DataTable/DataTable.jsx @@ -27,7 +27,7 @@ const DataTable = ({ const { slideFromRight } = useContext(GlobalStateContext); return ( - + {data?.length === 0 ? ( ) : ( diff --git a/src/Pages/IO_Management/CreateIO/CreateIO.jsx b/src/Pages/IO_Management/CreateIO/CreateIO.jsx index bd37bb4..d8b9266 100644 --- a/src/Pages/IO_Management/CreateIO/CreateIO.jsx +++ b/src/Pages/IO_Management/CreateIO/CreateIO.jsx @@ -151,7 +151,7 @@ const CreateIO = () => { { label: "Investors", content: , - isDisabled: true, + isDisabled: false, }, { label: "IO Cash Details", diff --git a/src/Pages/IO_Management/CreateIO/IOArtifacts.jsx b/src/Pages/IO_Management/CreateIO/IOArtifacts.jsx index 938afff..12607f2 100644 --- a/src/Pages/IO_Management/CreateIO/IOArtifacts.jsx +++ b/src/Pages/IO_Management/CreateIO/IOArtifacts.jsx @@ -7,7 +7,6 @@ import { useDisclosure, } from "@chakra-ui/react"; import React, { useContext, useEffect, useRef, useState } from "react"; -import InvestmentDocuments from "../InvestmentDocuments"; import DataTable from "../../../Components/DataTable/DataTable"; import CustomAlertDialog from "../../../Components/CustomAlertDialog"; import GlobalStateContext from "../../../Contexts/GlobalStateContext"; @@ -20,6 +19,7 @@ import { EditIcon, ViewIcon, } from "@chakra-ui/icons"; +import IOArtifactsAdd from "../IOArtifactsAdd"; const IOArtifacts = () => { const { iOArtifacts, setIOArtifacts, slideFromRight } = @@ -220,7 +220,7 @@ const IOArtifacts = () => { > Add - { const { keyMerits, setKeyMerits,slideFromRight} = @@ -132,7 +133,7 @@ const KeyMerits = () => { rounded={"sm"} size={"xs"} > - + { > Add - { + const [file, setFile] = useState(""); + const [fileName, setFileName] = useState(""); + const [alert, setAlert] = useState(false); + + const { + control, + handleSubmit, + formState: { errors }, + } = useForm({ + resolver: yupResolver(investmentDoct), + }); + + + + const onSubmit = (data) => { + console.log(data); + setSponser([ + { + ...data, + status: true, + id: uuidv4(), + createdAt: new Date().toISOString(), + }, + ...investmentDoct, + ]); + }; + + const handleSave = () => { + console.log({ + fileName: fileName, + file:file + }); + setAlert(false) + onClose() + + } + + return ( + <> + + + + + IO Artifacts + + + + + File Name + setFileName(e.target.value)} + fontSize={"sm"} + type="text" + size={"sm"} + /> + + + Document + setFile(e.target.value)} + fontSize={"sm"} + type="file" + className="form-control" + size={"sm"} + /> + + + + + + + + + + + setAlert(false)} + alertHandler={handleSave} + message={"Are you sure you want to add this document?"} + /> + + ); + }; + + export default IOArtifactsAdd; + \ No newline at end of file diff --git a/src/Pages/IO_Management/KeyMeritsAdd.jsx b/src/Pages/IO_Management/KeyMeritsAdd.jsx new file mode 100644 index 0000000..2de28e9 --- /dev/null +++ b/src/Pages/IO_Management/KeyMeritsAdd.jsx @@ -0,0 +1,150 @@ +import { + Box, + Button, + Drawer, + DrawerBody, + DrawerCloseButton, + DrawerContent, + DrawerFooter, + DrawerHeader, + DrawerOverlay, + FormControl, + FormLabel, + Input, + InputGroup, + Stack, + } from "@chakra-ui/react"; + import * as yup from "yup"; + import React, { useContext, useEffect, useRef, useState } from "react"; + import FormInputMain from "../../Components/FormInputMain"; + import { useForm } from "react-hook-form"; + import { yupResolver } from "@hookform/resolvers/yup"; + import CustomAlertDialog from "../../Components/CustomAlertDialog"; + + export const investmentDoct = yup.object().shape({ + type: yup.string().required("Sponser name is required"), + document: yup.string().required("Sponser name is required"), + fileName: yup.string().required("Mobile no is required"), + }); + + const KeyMeritsAdd = ({ id, isOpen, onClose, firstField }) => { + const [file, setFile] = useState(""); + const [fileName, setFileName] = useState(""); + const [alert, setAlert] = useState(false); + + const { + control, + handleSubmit, + formState: { errors }, + } = useForm({ + resolver: yupResolver(investmentDoct), + }); + + + + const onSubmit = (data) => { + console.log(data); + setSponser([ + { + ...data, + status: true, + id: uuidv4(), + createdAt: new Date().toISOString(), + }, + ...investmentDoct, + ]); + }; + + const handleSave = () => { + console.log({ + fileName: fileName, + file:file + }); + setAlert(false) + onClose() + + } + + return ( + <> + + + + + Key Merits + + + + + Title + setFileName(e.target.value)} + fontSize={"sm"} + type="text" + size={"sm"} + /> + + + Sub Title + setFileName(e.target.value)} + fontSize={"sm"} + type="textarea" + size={"sm"} + /> + + + Icon + setFile(e.target.value)} + fontSize={"sm"} + type="file" + className="form-control" + size={"sm"} + /> + + + + + + + + + + + setAlert(false)} + alertHandler={handleSave} + message={"Are you sure you want to add this document?"} + /> + + ); + }; + + export default KeyMeritsAdd; + \ No newline at end of file From c3893d843bf86e7c297a35dc7e5bcf41aaee3e7c Mon Sep 17 00:00:00 2001 From: rockyeverlast Date: Mon, 8 Jul 2024 20:14:34 +0530 Subject: [PATCH 2/7] CreatViewIO header menu and EditViewIO modal --- package-lock.json | 114 ++++++- src/Components/FormInputMain.jsx | 43 +-- src/Pages/IO_Management/EditIO/EditIO.jsx | 282 ++++++++++++++++++ src/Pages/IO_Management/EditIO/EditIOForm.jsx | 65 ++++ .../ViewIO/HeaderModal/AmountInvested.jsx | 32 ++ .../HeaderModal/DistributionInvestor.jsx | 68 +++++ .../HeaderModal/DistributionSponsor.jsx | 68 +++++ .../ViewIO/HeaderModal/FeesExpenses.jsx | 69 +++++ .../ViewIO/HeaderModal/UpdateIONav.jsx | 68 +++++ .../ViewIO/HeaderModal/UpdateIOStatus.jsx | 68 +++++ src/Pages/IO_Management/ViewIO/ViewIOdata.jsx | 18 +- .../IO_Management/ViewIO/ViewIOdataHeader.jsx | 161 +++++++++- 12 files changed, 1025 insertions(+), 31 deletions(-) create mode 100644 src/Pages/IO_Management/EditIO/EditIO.jsx create mode 100644 src/Pages/IO_Management/EditIO/EditIOForm.jsx create mode 100644 src/Pages/IO_Management/ViewIO/HeaderModal/AmountInvested.jsx create mode 100644 src/Pages/IO_Management/ViewIO/HeaderModal/DistributionInvestor.jsx create mode 100644 src/Pages/IO_Management/ViewIO/HeaderModal/DistributionSponsor.jsx create mode 100644 src/Pages/IO_Management/ViewIO/HeaderModal/FeesExpenses.jsx create mode 100644 src/Pages/IO_Management/ViewIO/HeaderModal/UpdateIONav.jsx create mode 100644 src/Pages/IO_Management/ViewIO/HeaderModal/UpdateIOStatus.jsx diff --git a/package-lock.json b/package-lock.json index 4b3e017..a7dc44f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,6 +19,7 @@ "framer-motion": "^11.1.5", "js-cookie": "^3.0.5", "react": "^18.2.0", + "react-beautiful-dnd": "^13.1.1", "react-dom": "^18.2.0", "react-hook-form": "^7.51.3", "react-icons": "^5.1.0", @@ -27,7 +28,7 @@ "react-router-dom": "^6.22.3", "redux-persist": "^6.0.0", "redux-persist-transform-encrypt": "^5.1.1", - "uuid": "^9.0.1", + "uuid": "^10.0.0", "xlsx": "^0.18.5", "yup": "^1.4.0" }, @@ -2464,6 +2465,15 @@ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", "dev": true }, + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", + "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", + "dependencies": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, "node_modules/@types/lodash": { "version": "4.17.0", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.0.tgz", @@ -2485,8 +2495,7 @@ "node_modules/@types/prop-types": { "version": "15.7.12", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", - "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", - "devOptional": true + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" }, "node_modules/@types/quill": { "version": "1.3.10", @@ -2500,7 +2509,6 @@ "version": "18.2.79", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.79.tgz", "integrity": "sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w==", - "devOptional": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -2515,6 +2523,25 @@ "@types/react": "*" } }, + "node_modules/@types/react-redux": { + "version": "7.1.33", + "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.33.tgz", + "integrity": "sha512-NF8m5AjWCkert+fosDsN3hAlHzpjSiXlVy9EgQEmLoBhaNXbmyeGs/aj5dQzKuF+/q+S7JQagorGDW8pJ28Hmg==", + "dependencies": { + "@types/hoist-non-react-statics": "^3.3.0", + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0", + "redux": "^4.0.0" + } + }, + "node_modules/@types/react-redux/node_modules/redux": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", + "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", + "dependencies": { + "@babel/runtime": "^7.9.2" + } + }, "node_modules/@types/use-sync-external-store": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", @@ -4626,6 +4653,11 @@ "loose-envify": "cli.js" } }, + "node_modules/memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -5042,6 +5074,11 @@ "node": ">=0.10" } }, + "node_modules/raf-schd": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.3.tgz", + "integrity": "sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==" + }, "node_modules/react": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", @@ -5053,6 +5090,61 @@ "node": ">=0.10.0" } }, + "node_modules/react-beautiful-dnd": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/react-beautiful-dnd/-/react-beautiful-dnd-13.1.1.tgz", + "integrity": "sha512-0Lvs4tq2VcrEjEgDXHjT98r+63drkKEgqyxdA7qD3mvKwga6a5SscbdLPO2IExotU1jW8L0Ksdl0Cj2AF67nPQ==", + "dependencies": { + "@babel/runtime": "^7.9.2", + "css-box-model": "^1.2.0", + "memoize-one": "^5.1.1", + "raf-schd": "^4.0.2", + "react-redux": "^7.2.0", + "redux": "^4.0.4", + "use-memo-one": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.8.5 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.5 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-beautiful-dnd/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/react-beautiful-dnd/node_modules/react-redux": { + "version": "7.2.9", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.9.tgz", + "integrity": "sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ==", + "dependencies": { + "@babel/runtime": "^7.15.4", + "@types/react-redux": "^7.1.20", + "hoist-non-react-statics": "^3.3.2", + "loose-envify": "^1.4.0", + "prop-types": "^15.7.2", + "react-is": "^17.0.2" + }, + "peerDependencies": { + "react": "^16.8.3 || ^17 || ^18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/react-beautiful-dnd/node_modules/redux": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", + "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", + "dependencies": { + "@babel/runtime": "^7.9.2" + } + }, "node_modules/react-clientside-effect": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/react-clientside-effect/-/react-clientside-effect-1.2.6.tgz", @@ -5913,6 +6005,14 @@ } } }, + "node_modules/use-memo-one": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.3.tgz", + "integrity": "sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/use-sidecar": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", @@ -5943,9 +6043,9 @@ } }, "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" diff --git a/src/Components/FormInputMain.jsx b/src/Components/FormInputMain.jsx index ee67c64..2edef3d 100644 --- a/src/Components/FormInputMain.jsx +++ b/src/Components/FormInputMain.jsx @@ -5,28 +5,29 @@ import { OPACITY_ON_LOAD } from "../Layout/animations"; import { ArrowBackIcon } from "@chakra-ui/icons"; const FormInputMain = ({ + register, groupedFields, control, errors, onSubmit, children, - onCancle, + onCancle, submitTitle, p, - w + w, }) => { return (
{Object.entries(groupedFields).map(([section, fields], index) => ( - - + + {/* */} {section} ( @@ -83,22 +84,24 @@ const FormInputMain = ({ ))} {children} - - - - {onCancle && } + + + + {onCancle && ( + + )} + + + + + + + ); +}; + +export default EditIO; diff --git a/src/Pages/IO_Management/EditIO/EditIOForm.jsx b/src/Pages/IO_Management/EditIO/EditIOForm.jsx new file mode 100644 index 0000000..1ec9669 --- /dev/null +++ b/src/Pages/IO_Management/EditIO/EditIOForm.jsx @@ -0,0 +1,65 @@ +import React from "react"; +import { + Box, + Input, + Select, + Textarea, + FormControl, + FormLabel, + FormErrorMessage, +} from "@chakra-ui/react"; + +const FormField = ({ field, register, errors }) => { + const { label, name, type, placeHolder, options, width } = field; + + return ( + + + {label} + {type === "text" && ( + + )} + {type === "textarea" && ( +