Skip to content

Commit 653c79e

Browse files
committed
feat: inputs trigger options
1 parent 0f1bbc3 commit 653c79e

4 files changed

Lines changed: 54 additions & 36 deletions

File tree

components/Paybutton/PaybuttonTrigger.tsx

Lines changed: 44 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -116,9 +116,9 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => {
116116
} finally {
117117
setClearModal(undefined)
118118
setTimeout(() => {
119-
setSuccess('');
120-
setError('');
121-
}, 3000);
119+
setSuccess('')
120+
setError('')
121+
}, 3000)
122122
}
123123
}
124124
}
@@ -153,9 +153,9 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => {
153153
setError(err.response.data.message)
154154
} finally {
155155
setTimeout(() => {
156-
setSuccess('');
157-
setError('');
158-
}, 3000);
156+
setSuccess('')
157+
setError('')
158+
}, 3000)
159159
}
160160
}
161161
}
@@ -174,7 +174,7 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => {
174174
onSubmit={(e) => {
175175
void handleSubmitPosterTrigger(
176176
getSubmitTriggerHandler('poster')
177-
)(e);
177+
)(e)
178178
}}
179179
method="post"
180180
>
@@ -212,25 +212,30 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => {
212212
<div>&lt;txId&gt;</div>
213213
<div>&lt;opReturn&gt;</div>
214214
<div>&lt;signature&gt;</div>
215+
<div>&lt;inputAddresses&gt;</div>
215216
</div>
216217
</div>
217218
{/* Tooltip */}
218219
<div>
219220
<div className={style.tip}>
220221
{/* Only triggers if payment &gt; X */}
221222
</div>
222-
223+
223224
<div className={style.trigger_btn_row}>
224225

225-
{posterError === undefined || posterError === '' ? null : (
226+
{posterError === undefined || posterError === ''
227+
? null
228+
: (
226229
<div className={style.error_message_}>{posterError}</div>
227-
)}
230+
)}
228231
{posterSuccessText === undefined ||
229-
posterSuccessText === '' ? null : (
232+
posterSuccessText === ''
233+
? null
234+
: (
230235
<div className={style.success_message_}>
231236
{posterSuccessText}
232237
</div>
233-
)}
238+
)}
234239
{currentPosterTriggerId !== undefined && (
235240
<button
236241
type="button"
@@ -239,7 +244,7 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => {
239244
>
240245
Delete
241246
</button>
242-
)}
247+
)}
243248
<button
244249
disabled={disablePosterSubmit}
245250
type="submit"
@@ -249,7 +254,7 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => {
249254
? 'Create Send Request'
250255
: 'Update Send Request'}
251256
</button>
252-
257+
253258
</div>
254259
</div>
255260
</form>
@@ -264,12 +269,11 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => {
264269
onSubmit={(e) => {
265270
void handleSubmitEmailTrigger(getSubmitTriggerHandler('email'))(
266271
e
267-
);
272+
)
268273
}}
269274
method="post"
270275
>
271-
272-
276+
273277
<label htmlFor="emails">Email</label>
274278
<input
275279
{...registerEmailTrigger('emails')}
@@ -278,30 +282,36 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => {
278282
name="emails"
279283
/>
280284
<div className={style.email_credits_info}>
281-
{emailCredits < MAX_DAILY_EMAILS ? (
285+
{emailCredits < MAX_DAILY_EMAILS
286+
? (
282287
<span>
283288
You have sent <b>{MAX_DAILY_EMAILS - emailCredits}</b>{' '}
284289
of a daily maximum of <b>{MAX_DAILY_EMAILS}</b> emails.
285290
</span>
286-
) : (
291+
)
292+
: (
287293
<span>
288294
You may send up to <b>{MAX_DAILY_EMAILS}</b> emails per
289295
day.
290296
</span>
291-
)}
297+
)}
292298
</div>
293-
299+
294300
<div>
295301
<div className={style.trigger_btn_row}>
296-
{emailError === undefined || emailError === '' ? null : (
302+
{emailError === undefined || emailError === ''
303+
? null
304+
: (
297305
<div className={style.error_message_}>{emailError}</div>
298-
)}
306+
)}
299307
{emailSuccessText === undefined ||
300-
emailSuccessText === '' ? null : (
308+
emailSuccessText === ''
309+
? null
310+
: (
301311
<div className={style.success_message_}>
302312
{emailSuccessText}
303313
</div>
304-
)}
314+
)}
305315
{currentEmailTriggerId !== undefined && (
306316
<button
307317
type="button"
@@ -310,7 +320,7 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => {
310320
>
311321
Delete
312322
</button>
313-
)}
323+
)}
314324
<button
315325
disabled={disableEmailSubmit}
316326
type="submit"
@@ -320,14 +330,15 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => {
320330
? 'Create Send Email'
321331
: 'Update Send Email'}
322332
</button>
323-
333+
324334
</div>
325335
</div>
326336
</form>
327337
</div>
328338
</div>
329339
</div>
330-
{clearModal !== undefined ? (
340+
{clearModal !== undefined
341+
? (
331342
<div className={style.form_ctn_outer}>
332343
<div className={style.form_ctn_inner}>
333344
<h4>Clear Payment Trigger?</h4>
@@ -343,15 +354,15 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => {
343354
<div>
344355
<button
345356
onClick={() => {
346-
void getDeleteTriggerHandler(clearModal)();
357+
void getDeleteTriggerHandler(clearModal)()
347358
}}
348359
className={style.delete_confirm_btn}
349360
>
350361
Yes
351362
</button>
352363
<button
353364
onClick={() => {
354-
setClearModal(undefined);
365+
setClearModal(undefined)
355366
}}
356367
className={style.cancel_btn}
357368
>
@@ -362,7 +373,8 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => {
362373
</div>
363374
</div>
364375
</div>
365-
) : null}
376+
)
377+
: null}
366378
</div>
367-
);
379+
)
368380
}

constants/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,8 @@ export const TRIGGER_POST_VARIABLES = [
232232
'<opReturn>',
233233
'<signature>',
234234
'<timestamp>',
235-
'<txId>'
235+
'<txId>',
236+
'<inputAddresses>'
236237
]
237238

238239
export const PAYBUTTON_TRANSACTIONS_FILE_HEADERS = {

services/triggerService.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,8 @@ export async function executeAddressTriggers (broadcastTxData: BroadcastTxData,
241241
timestamp,
242242
paymentId,
243243
message,
244-
rawMessage
244+
rawMessage,
245+
inputAddresses
245246
} = tx
246247

247248
const addressTriggers = await fetchTriggersForAddress(address)
@@ -264,7 +265,8 @@ export async function executeAddressTriggers (broadcastTxData: BroadcastTxData,
264265
message,
265266
rawMessage
266267
}
267-
: EMPTY_OP_RETURN
268+
: EMPTY_OP_RETURN,
269+
inputAddresses
268270
}
269271
await postDataForTrigger(trigger, postDataParameters)
270272
}))
@@ -393,6 +395,7 @@ export interface PostDataParameters {
393395
buttonName: string
394396
address: string
395397
opReturn: OpReturnData
398+
inputAddresses?: Array<string | undefined>
396399
}
397400

398401
async function postDataForTrigger (trigger: TriggerWithPaybutton, postDataParameters: PostDataParameters): Promise<void> {

utils/validators.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@ export function parseTriggerPostData ({ userId, postData, postDataParameters }:
272272
.replace('<timestamp>', postDataParameters.timestamp.toString())
273273
.replace('<opReturn>', opReturn)
274274
.replace('<signature>', `${JSON.stringify(signature, undefined, 2)}`)
275+
.replace('<inputAddresses>', `${JSON.stringify(postDataParameters.inputAddresses, undefined, 2)}`)
275276
const parsedResultingData = JSON.parse(resultingData)
276277
return parsedResultingData
277278
} catch (err: any) {
@@ -314,7 +315,8 @@ export const parsePaybuttonTriggerPOSTRequest = function (params: PaybuttonTrigg
314315
buttonName: '',
315316
address: '',
316317
timestamp: 0,
317-
opReturn: EMPTY_OP_RETURN
318+
opReturn: EMPTY_OP_RETURN,
319+
inputAddresses: ['']
318320
}
319321
const parsed = parseTriggerPostData({
320322
userId: params.userId,

0 commit comments

Comments
 (0)