Skip to content

Commit 82eeffa

Browse files
fix: reset button not working in forms
1 parent 266c246 commit 82eeffa

File tree

2 files changed

+41
-6
lines changed

2 files changed

+41
-6
lines changed

apps/OpenSign/src/components/shared/fields/SelectFolder.js

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import CreateFolder from "./CreateFolder";
44
import ModalUi from "../../../primitives/ModalUi";
55
import Tooltip from "../../../primitives/Tooltip";
66

7-
const SelectFolder = ({ required, onSuccess, folderCls }) => {
7+
const SelectFolder = ({ required, onSuccess, folderCls, isReset }) => {
88
const [isOpen, SetIsOpen] = useState(false);
99
const [clickFolder, setClickFolder] = useState("");
1010
const [selectFolder, setSelectedFolder] = useState({});
@@ -23,6 +23,21 @@ const SelectFolder = ({ required, onSuccess, folderCls }) => {
2323
}
2424
// eslint-disable-next-line
2525
}, [isOpen]);
26+
// below useEffect is used to reset folder selection if user pass isReset = true from parent component
27+
useEffect(() => {
28+
if (isReset == true) {
29+
handleReset();
30+
}
31+
}, [isReset]);
32+
const handleReset = () => {
33+
setFolderPath({});
34+
setSelectedFolder("");
35+
setClickFolder("");
36+
setIsAdd(false);
37+
setFolderList([]);
38+
setTabList([]);
39+
};
40+
// `fetchFolder` is used to fetch of folder list created by user on basis of folderPtr or without folderPtr
2641
const fetchFolder = async (folderPtr) => {
2742
setIsLoader(true);
2843
try {
@@ -48,6 +63,8 @@ const SelectFolder = ({ required, onSuccess, folderCls }) => {
4863
setIsLoader(false);
4964
}
5065
};
66+
67+
// `handleSelect` is used to save pointer of folder selected by user and it's path in state
5168
const handleSelect = (item) => {
5269
setFolderList([]);
5370
setClickFolder({ ObjectId: item.objectId, Name: item.Name });
@@ -74,6 +91,7 @@ const SelectFolder = ({ required, onSuccess, folderCls }) => {
7491
}
7592
};
7693

94+
// `handleSubmit` is used to pass folderPtr to parent component
7795
const handleSubmit = () => {
7896
let url = "Root";
7997
tabList.forEach((t) => {
@@ -86,13 +104,16 @@ const SelectFolder = ({ required, onSuccess, folderCls }) => {
86104
}
87105
SetIsOpen(false);
88106
};
107+
108+
// `handleCancel` is used to clear list of folder, close popup and folderUrl
89109
const handleCancel = () => {
90110
SetIsOpen(false);
91111
setClickFolder({});
92112
setFolderList([]);
93113
setTabList([]);
94114
};
95115

116+
// `handleCancel` is call when user click on folder name from path/tab in popup
96117
const removeTabListItem = async (e, i) => {
97118
e.preventDefault();
98119
// setEditable(false);
@@ -122,9 +143,11 @@ const SelectFolder = ({ required, onSuccess, folderCls }) => {
122143
fetchFolder(folderPtr);
123144
}
124145
};
146+
// `handleCreate` is used to open folder creation form in popup
125147
const handleCreate = () => {
126148
setIsAdd(!isAdd);
127149
};
150+
// `handleAddFolder` is call when user folder created successfully and it fetch folder list on the basis of folderPtr or without folderPtr
128151
const handleAddFolder = () => {
129152
setFolderList([]);
130153
if (clickFolder && clickFolder.ObjectId) {

apps/OpenSign/src/pages/Form.js

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { useState } from "react";
1+
import React, { useEffect, useState } from "react";
22
import { useNavigate, useParams } from "react-router-dom";
33
import { formJson } from "../json/FormJson";
44
import AddUser from "../components/AddUser";
@@ -11,6 +11,7 @@ import SignersInput from "../components/shared/fields/SignersInput";
1111
import Title from "../components/Title";
1212
import PageNotFound from "./PageNotFound";
1313

14+
// `Form` render all type of Form on this basis of their provided in path
1415
function Form() {
1516
const { id } = useParams();
1617

@@ -40,13 +41,16 @@ const Forms = (props) => {
4041
const [fileupload, setFileUpload] = useState([]);
4142
const [fileload, setfileload] = useState(false);
4243
const [percentage, setpercentage] = useState(0);
44+
const [isFolderReset, setIsFolderReset] = useState(false);
4345
const [isAlert, setIsAlert] = useState(false);
4446
const [isSubmit, setIsSubmit] = useState(false);
4547
const [isErr, setIsErr] = useState("");
4648
const handleStrInput = (e) => {
4749
setFormData({ ...formData, [e.target.name]: e.target.value });
4850
};
49-
51+
useEffect(() => {
52+
handleReset();
53+
}, [props.title]);
5054
const handleFileInput = (e) => {
5155
setpercentage(0);
5256
try {
@@ -222,15 +226,19 @@ const Forms = (props) => {
222226
};
223227

224228
const handleReset = () => {
229+
setIsFolderReset(true);
225230
setSigners([]);
226231
setFolder({ ObjectId: "", Name: "" });
227232
setFormData({
228233
Name: "",
229234
Description: "",
230-
Note: ""
235+
Note: "Please review and sign this document",
236+
TimeToCompleteDays: 15,
237+
SendinOrder: "false"
231238
});
232239
setFileUpload([]);
233240
setpercentage(0);
241+
setTimeout(() => setIsFolderReset(false), 50);
234242
};
235243
return (
236244
<div className="shadow-md rounded my-2 p-3 bg-[#ffffff] md:border-[1px] md:border-gray-600/50">
@@ -347,7 +355,11 @@ const Forms = (props) => {
347355
required
348356
/>
349357
</div>
350-
<SelectFolder onSuccess={handleFolder} folderCls={props.Cls} />
358+
<SelectFolder
359+
onSuccess={handleFolder}
360+
folderCls={props.Cls}
361+
isReset={isFolderReset}
362+
/>
351363

352364
{props.title === "Request Signatures" && (
353365
<div className="text-xs mt-2">
@@ -402,7 +414,7 @@ const Forms = (props) => {
402414
Submit
403415
</button>
404416
<div
405-
className="bg-[#188ae2] rounded-sm shadow-md text-[13px] font-semibold uppercase text-white py-1.5 px-2.5 text-center ml-[2px] focus:outline-none"
417+
className="cursor-pointer bg-[#188ae2] rounded-sm shadow-md text-[13px] font-semibold uppercase text-white py-1.5 px-2.5 text-center ml-[2px] focus:outline-none"
406418
onClick={() => handleReset()}
407419
>
408420
Reset

0 commit comments

Comments
 (0)