@@ -5,6 +5,7 @@ import { Rnd } from "react-rnd";
5
5
import {
6
6
defaultWidthHeight ,
7
7
isMobile ,
8
+ onChangeInput ,
8
9
textInputWidget ,
9
10
textWidget
10
11
} from "../../constant/Utils" ;
@@ -66,9 +67,7 @@ const changeDateToMomentFormat = (format) => {
66
67
}
67
68
} ;
68
69
69
- // const getDefaultdate = (selectedDate) => {
70
- // return selectedDate ? new Date(selectedDate) : new Date();
71
- // };
70
+ //function to get default date
72
71
const getDefaultdate = ( selectedDate , format = "dd-MM-yyyy" ) => {
73
72
let date ;
74
73
if ( format && format === "dd-MM-yyyy" ) {
@@ -83,17 +82,12 @@ const getDefaultdate = (selectedDate, format = "dd-MM-yyyy") => {
83
82
const value = date ;
84
83
return value ;
85
84
} ;
85
+ //function to get default format
86
86
const getDefaultFormat = ( dateFormat ) => dateFormat || "MM/dd/yyyy" ;
87
87
88
88
function Placeholder ( props ) {
89
89
const [ isDraggingEnabled , setDraggingEnabled ] = useState ( true ) ;
90
90
const [ isShowDateFormat , setIsShowDateFormat ] = useState ( false ) ;
91
- // const [selectDate, setSelectDate] = useState({
92
- // date: moment(
93
- // getDefaultdate(props?.pos?.options?.response).getTime()
94
- // ).format(changeDateToMomentFormat(props.pos?.options?.validation?.format)),
95
- // format: getDefaultFormat(props.pos?.options?.validation?.format)
96
- // });
97
91
const [ selectDate , setSelectDate ] = useState ( {
98
92
date : moment (
99
93
getDefaultdate (
@@ -104,10 +98,6 @@ function Placeholder(props) {
104
98
format : getDefaultFormat ( props . pos ?. options ?. validation ?. format )
105
99
} ) ;
106
100
const [ dateFormat , setDateFormat ] = useState ( [ ] ) ;
107
- const [ saveDateFormat , setSaveDateFormat ] = useState ( "" ) ;
108
- // const [startDate, setStartDate] = useState(
109
- // getDefaultdate(props?.pos?.options?.response)
110
- // );
111
101
const [ startDate , setStartDate ] = useState (
112
102
getDefaultdate (
113
103
props ?. pos ?. options ?. response ,
@@ -126,36 +116,6 @@ function Placeholder(props) {
126
116
"DD MMMM, YYYY"
127
117
] ;
128
118
129
- //useEffect for to set date and date format for all flow (signyour-self, request-sign,placeholder,template)
130
- //checking if already have data and set else set new date
131
- // useEffect(() => {
132
- // console.log('go here')
133
- // //set default current date and default format MM/dd/yyyy
134
- // const defaultFormat = props.pos?.options?.validation?.format;
135
- // const updateDate = props?.pos?.options?.response
136
- // ? new Date(props?.pos?.options?.response)
137
- // : new Date();
138
- // //DD-mm-YYYY
139
- // const dateFormat = defaultFormat && defaultFormat;
140
- // // const isMomentType = dateFormat && dateFormat === "MM/dd/YYYY";
141
- // // const selectMomentFormat = isMomentType ? "MM/DD/YYYY" : dateFormat;
142
- // const selectMomentFormat = changeDateToMomentFormat(dateFormat);
143
-
144
- // // const isFormatType = dateFormat && dateFormat === "MM/dd/YYYY";
145
- // const getFormat = dateFormat || "MM/dd/yyyy";
146
- // const milliseconds = updateDate.getTime();
147
- // const newDate = moment(milliseconds).format(selectMomentFormat);
148
- // // console.log('new date',newDate)
149
- // const dateObj = {
150
- // date: newDate,
151
- // format: getFormat
152
- // };
153
- // console.log("dateobj selectdate useEffect", dateObj);
154
- // setSelectDate(dateObj);
155
- // setStartDate(updateDate);
156
- // // eslint-disable-next-line react-hooks/exhaustive-deps
157
- // }, []);
158
-
159
119
//function change format array list with selected date and format
160
120
const changeDateFormat = ( ) => {
161
121
const updateDate = [ ] ;
@@ -178,15 +138,14 @@ function Placeholder(props) {
178
138
setDateFormat ( updateDate ) ;
179
139
} ;
180
140
181
- // console.log("selected date", selectDate);
182
141
useEffect ( ( ) => {
183
142
if ( props . isPlaceholder || props . isSignYourself ) {
184
- // console.log("selected date useEffect", selectDate);
185
143
selectDate && changeDateFormat ( ) ;
186
144
}
187
145
// eslint-disable-next-line react-hooks/exhaustive-deps
188
146
} , [ selectDate ] ) ;
189
- //handle to close drop down menu onclick screen
147
+
148
+ //it detect outside click of date dropdown menu
190
149
useEffect ( ( ) => {
191
150
const closeMenuOnOutsideClick = ( e ) => {
192
151
if ( isShowDateFormat && ! e . target . closest ( "#menu-container" ) ) {
@@ -271,6 +230,7 @@ function Placeholder(props) {
271
230
}
272
231
} ;
273
232
233
+ //function to set state value of onclick on widget's setting icon
274
234
const handleWidgetsOnclick = ( ) => {
275
235
if ( props . pos . type === "radio" ) {
276
236
props . setIsRadio ( true ) ;
@@ -289,6 +249,7 @@ function Placeholder(props) {
289
249
props . setWidgetType ( props . pos . type ) ;
290
250
props . setCurrWidgetsDetails ( props . pos ) ;
291
251
} ;
252
+ //function ro set state value of onclick on widget's copy icon
292
253
const handleCopyPlaceholder = ( e ) => {
293
254
if ( props . data && props ?. pos ?. type !== textWidget ) {
294
255
props . setSignerObjId ( props ?. data ?. signerObjId ) ;
@@ -303,6 +264,35 @@ function Placeholder(props) {
303
264
props . setSignKey ( props . pos . key ) ;
304
265
} ;
305
266
267
+ //function to save date and format on local array onchange date and onclick format
268
+ const handleSaveDate = ( data , isDateChange ) => {
269
+ let updateDate = data . date ;
270
+ //check if date change by user
271
+ if ( isDateChange ) {
272
+ //`changeDateToMomentFormat` is used to convert date as per required to moment package
273
+ updateDate = moment ( data . date ) . format (
274
+ changeDateToMomentFormat ( data . format )
275
+ ) ;
276
+ }
277
+ //using moment package is used to change date as per the format provided in selectDate obj e.g. - MM/dd/yyyy -> 03/12/2024
278
+ //`getDefaultdate` is used to convert update date in new Date() format
279
+ const date = moment (
280
+ getDefaultdate ( updateDate , data ?. format ) . getTime ( )
281
+ ) . format ( changeDateToMomentFormat ( data ?. format ) ) ;
282
+
283
+ //`onChangeInput` is used to save data related to date in a placeholder field
284
+ onChangeInput (
285
+ date ,
286
+ props . pos . key ,
287
+ props . xyPostion ,
288
+ props . index ,
289
+ props . setXyPostion ,
290
+ props . data && props . data . Id ,
291
+ false ,
292
+ data ?. format
293
+ ) ;
294
+ setSelectDate ( { date : date , format : data ?. format } ) ;
295
+ } ;
306
296
const PlaceholderIcon = ( ) => {
307
297
return (
308
298
props . isShowBorder && (
@@ -439,10 +429,12 @@ function Placeholder(props) {
439
429
e . stopPropagation ( ) ;
440
430
setIsShowDateFormat ( ! isShowDateFormat ) ;
441
431
setSelectDate ( data ) ;
432
+ handleSaveDate ( data ) ;
442
433
} }
443
434
onClick = { ( ) => {
444
435
setIsShowDateFormat ( ! isShowDateFormat ) ;
445
436
setSelectDate ( data ) ;
437
+ handleSaveDate ( data ) ;
446
438
} }
447
439
className = "dropdown-item itemColor"
448
440
style = { { fontSize : "12px" } }
@@ -695,11 +687,10 @@ function Placeholder(props) {
695
687
isNeedSign = { props . isNeedSign }
696
688
setSelectDate = { setSelectDate }
697
689
selectDate = { selectDate }
698
- setSaveDateFormat = { setSaveDateFormat }
699
- saveDateFormat = { saveDateFormat }
700
690
setValidateAlert = { props . setValidateAlert }
701
691
setStartDate = { setStartDate }
702
692
startDate = { startDate }
693
+ handleSaveDate = { handleSaveDate }
703
694
/>
704
695
</ div >
705
696
) : (
@@ -722,11 +713,10 @@ function Placeholder(props) {
722
713
isNeedSign = { props . isNeedSign }
723
714
setSelectDate = { setSelectDate }
724
715
selectDate = { selectDate }
725
- setSaveDateFormat = { setSaveDateFormat }
726
- saveDateFormat = { saveDateFormat }
727
716
setValidateAlert = { props . setValidateAlert }
728
717
setStartDate = { setStartDate }
729
718
startDate = { startDate }
719
+ handleSaveDate = { handleSaveDate }
730
720
/>
731
721
</ >
732
722
) }
0 commit comments