1
- import React , { useState } from "react" ;
1
+ import React , { useState , useEffect } from "react" ;
2
2
import "../../styles/AddUser.css" ;
3
- import { getFileName } from "../../constant/Utils" ;
3
+ import { checkIsSubscribed , getFileName } from "../../constant/Utils" ;
4
+ import PremiumAlertHeader from "../../primitives/PremiumAlertHeader" ;
5
+ import Upgrade from "../../primitives/Upgrade" ;
6
+ import { isEnableSubscription } from "../../constant/const" ;
4
7
// import SelectFolder from "../../premitives/SelectFolder";
5
8
6
9
const EditTemplate = ( { template, onSuccess } ) => {
@@ -9,9 +12,21 @@ const EditTemplate = ({ template, onSuccess }) => {
9
12
Name : template ?. Name || "" ,
10
13
Note : template ?. Note || "" ,
11
14
Description : template ?. Description || "" ,
12
- SendinOrder : template ?. SendinOrder ? `${ template ?. SendinOrder } ` : "false"
15
+ SendinOrder : template ?. SendinOrder ? `${ template ?. SendinOrder } ` : "false" ,
16
+ AutomaticReminders : template ?. AutomaticReminders || false ,
17
+ RemindOnceInEvery : template ?. RemindOnceInEvery || 5
13
18
} ) ;
14
-
19
+ const [ isSubscribe , setIsSubscribe ] = useState ( false ) ;
20
+ useEffect ( ( ) => {
21
+ fetchSubscription ( ) ;
22
+ // eslint-disable-next-line react-hooks/exhaustive-deps
23
+ } , [ ] ) ;
24
+ const fetchSubscription = async ( ) => {
25
+ if ( isEnableSubscription ) {
26
+ const getIsSubscribe = await checkIsSubscribed ( ) ;
27
+ setIsSubscribe ( getIsSubscribe ) ;
28
+ }
29
+ } ;
15
30
const handleStrInput = ( e ) => {
16
31
setFormData ( { ...formData , [ e . target . name ] : e . target . value } ) ;
17
32
} ;
@@ -25,12 +40,26 @@ const EditTemplate = ({ template, onSuccess }) => {
25
40
e . preventDefault ( ) ;
26
41
e . stopPropagation ( ) ;
27
42
const isChecked = formData . SendinOrder === "true" ? true : false ;
28
- const data = { ...formData , SendinOrder : isChecked } ;
43
+ const AutoReminder = formData ?. AutomaticReminders || false ;
44
+
45
+ let reminderDate = { } ;
46
+ if ( AutoReminder ) {
47
+ const RemindOnceInEvery = parseInt ( formData ?. RemindOnceInEvery ) ;
48
+ const ReminderDate = new Date ( template ?. createdAt ) ;
49
+ ReminderDate . setDate ( ReminderDate . getDate ( ) + RemindOnceInEvery ) ;
50
+ reminderDate = { NextReminderDate : ReminderDate } ;
51
+ }
52
+ const data = { ...formData , SendinOrder : isChecked , ...reminderDate } ;
29
53
onSuccess ( data ) ;
30
54
} ;
31
-
55
+ const handleAutoReminder = ( ) => {
56
+ setFormData ( ( prev ) => ( {
57
+ ...prev ,
58
+ AutomaticReminders : ! formData . AutomaticReminders
59
+ } ) ) ;
60
+ } ;
32
61
return (
33
- < div className = "addusercontainer " >
62
+ < div className = "max-h-[300px] md:max-h-[400px] overflow-y-scroll p-[10px] " >
34
63
< div className = "form-wrapper" >
35
64
< form onSubmit = { handleSubmit } >
36
65
< div >
@@ -128,6 +157,57 @@ const EditTemplate = ({ template, onSuccess }) => {
128
157
< div style = { { fontSize : 12 } } > No</ div >
129
158
</ div >
130
159
</ div >
160
+ < div className = "text-xs mt-2" >
161
+ { ! isEnableSubscription && (
162
+ < PremiumAlertHeader
163
+ message = {
164
+ "Disable Auto reminder is free in beta, this feature will incur a fee later."
165
+ }
166
+ />
167
+ ) }
168
+ < span
169
+ className = {
170
+ isSubscribe || ! isEnableSubscription
171
+ ? "font-semibold"
172
+ : "font-semibold text-gray-300"
173
+ }
174
+ >
175
+ Auto reminder{ " " }
176
+ { ! isSubscribe && isEnableSubscription && < Upgrade /> }
177
+ </ span >
178
+ < label
179
+ className = { `${
180
+ isSubscribe || ! isEnableSubscription
181
+ ? "cursor-pointer "
182
+ : "pointer-events-none opacity-50"
183
+ } relative block items-center mb-0`}
184
+ >
185
+ < input
186
+ checked = { formData . AutomaticReminders }
187
+ onChange = { handleAutoReminder }
188
+ type = "checkbox"
189
+ value = ""
190
+ className = "sr-only peer"
191
+ />
192
+ < div className = "w-9 h-5 bg-gray-200 peer-focus:outline-none peer-focus:ring-1 peer-focus:ring-black rounded-full peer dark:bg-gray-700 peer-checked:after:translate-x-full rtl:peer-checked:after:-translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:start-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-4 after:w-4 after:transition-all dark:border-black peer-checked:bg-blue-600 mt-2" > </ div >
193
+ </ label >
194
+ </ div >
195
+ { isSubscribe && formData ?. AutomaticReminders === true && (
196
+ < div className = "text-xs mt-2" >
197
+ < label className = "block" >
198
+ Remind once in every (Days)
199
+ < span className = "text-red-500 text-[13px]" > *</ span >
200
+ </ label >
201
+ < input
202
+ type = "number"
203
+ value = { formData . RemindOnceInEvery }
204
+ name = "RemindOnceInEvery"
205
+ className = "px-3 py-2 w-full border-[1px] border-gray-300 rounded focus:outline-none text-xs"
206
+ onChange = { handleStrInput }
207
+ required
208
+ />
209
+ </ div >
210
+ ) }
131
211
{ /* <SelectFolder onSuccess={handleFolder} folderCls={"contracts_Template"} /> */ }
132
212
< div className = "buttoncontainer" >
133
213
< button type = "submit" className = "submitbutton" >
0 commit comments