From 653c79ee4a5a012ad267a4e68b44b0a5d4f0d060 Mon Sep 17 00:00:00 2001 From: lissavxo Date: Tue, 14 Jan 2025 19:08:03 -0300 Subject: [PATCH 1/2] feat: inputs trigger options --- components/Paybutton/PaybuttonTrigger.tsx | 76 +++++++++++++---------- constants/index.ts | 3 +- services/triggerService.ts | 7 ++- utils/validators.ts | 4 +- 4 files changed, 54 insertions(+), 36 deletions(-) diff --git a/components/Paybutton/PaybuttonTrigger.tsx b/components/Paybutton/PaybuttonTrigger.tsx index ae524a5f4..56c5d7e41 100644 --- a/components/Paybutton/PaybuttonTrigger.tsx +++ b/components/Paybutton/PaybuttonTrigger.tsx @@ -116,9 +116,9 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => { } finally { setClearModal(undefined) setTimeout(() => { - setSuccess(''); - setError(''); - }, 3000); + setSuccess('') + setError('') + }, 3000) } } } @@ -153,9 +153,9 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => { setError(err.response.data.message) } finally { setTimeout(() => { - setSuccess(''); - setError(''); - }, 3000); + setSuccess('') + setError('') + }, 3000) } } } @@ -174,7 +174,7 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => { onSubmit={(e) => { void handleSubmitPosterTrigger( getSubmitTriggerHandler('poster') - )(e); + )(e) }} method="post" > @@ -212,6 +212,7 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => {
<txId>
<opReturn>
<signature>
+
<inputAddresses>
{/* Tooltip */} @@ -219,18 +220,22 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => {
{/* Only triggers if payment > X */}
- +
- {posterError === undefined || posterError === '' ? null : ( + {posterError === undefined || posterError === '' + ? null + : (
{posterError}
- )} + )} {posterSuccessText === undefined || - posterSuccessText === '' ? null : ( + posterSuccessText === '' + ? null + : (
{posterSuccessText}
- )} + )} {currentPosterTriggerId !== undefined && ( - )} + )} - +
@@ -264,12 +269,11 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => { onSubmit={(e) => { void handleSubmitEmailTrigger(getSubmitTriggerHandler('email'))( e - ); + ) }} method="post" > - - + { name="emails" />
- {emailCredits < MAX_DAILY_EMAILS ? ( + {emailCredits < MAX_DAILY_EMAILS + ? ( You have sent {MAX_DAILY_EMAILS - emailCredits}{' '} of a daily maximum of {MAX_DAILY_EMAILS} emails. - ) : ( + ) + : ( You may send up to {MAX_DAILY_EMAILS} emails per day. - )} + )}
- +
- {emailError === undefined || emailError === '' ? null : ( + {emailError === undefined || emailError === '' + ? null + : (
{emailError}
- )} + )} {emailSuccessText === undefined || - emailSuccessText === '' ? null : ( + emailSuccessText === '' + ? null + : (
{emailSuccessText}
- )} + )} {currentEmailTriggerId !== undefined && ( - )} + )} - +
- {clearModal !== undefined ? ( + {clearModal !== undefined + ? (

Clear Payment Trigger?

@@ -343,7 +354,7 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => {
- ) : null} + ) + : null} - ); + ) } diff --git a/constants/index.ts b/constants/index.ts index c9088b9d8..925966603 100644 --- a/constants/index.ts +++ b/constants/index.ts @@ -232,7 +232,8 @@ export const TRIGGER_POST_VARIABLES = [ '', '', '', - '' + '', + '' ] export const PAYBUTTON_TRANSACTIONS_FILE_HEADERS = { diff --git a/services/triggerService.ts b/services/triggerService.ts index b09cec3f0..b7049917c 100644 --- a/services/triggerService.ts +++ b/services/triggerService.ts @@ -241,7 +241,8 @@ export async function executeAddressTriggers (broadcastTxData: BroadcastTxData, timestamp, paymentId, message, - rawMessage + rawMessage, + inputAddresses } = tx const addressTriggers = await fetchTriggersForAddress(address) @@ -264,7 +265,8 @@ export async function executeAddressTriggers (broadcastTxData: BroadcastTxData, message, rawMessage } - : EMPTY_OP_RETURN + : EMPTY_OP_RETURN, + inputAddresses } await postDataForTrigger(trigger, postDataParameters) })) @@ -393,6 +395,7 @@ export interface PostDataParameters { buttonName: string address: string opReturn: OpReturnData + inputAddresses?: Array } async function postDataForTrigger (trigger: TriggerWithPaybutton, postDataParameters: PostDataParameters): Promise { diff --git a/utils/validators.ts b/utils/validators.ts index 6b3b3e69e..bf015da55 100644 --- a/utils/validators.ts +++ b/utils/validators.ts @@ -272,6 +272,7 @@ export function parseTriggerPostData ({ userId, postData, postDataParameters }: .replace('', postDataParameters.timestamp.toString()) .replace('', opReturn) .replace('', `${JSON.stringify(signature, undefined, 2)}`) + .replace('', `${JSON.stringify(postDataParameters.inputAddresses, undefined, 2)}`) const parsedResultingData = JSON.parse(resultingData) return parsedResultingData } catch (err: any) { @@ -314,7 +315,8 @@ export const parsePaybuttonTriggerPOSTRequest = function (params: PaybuttonTrigg buttonName: '', address: '', timestamp: 0, - opReturn: EMPTY_OP_RETURN + opReturn: EMPTY_OP_RETURN, + inputAddresses: [''] } const parsed = parseTriggerPostData({ userId: params.userId, From 5ede2924e33520f518d5b1130820b2345ffde06f Mon Sep 17 00:00:00 2001 From: lissavxo Date: Mon, 20 Jan 2025 16:05:51 -0300 Subject: [PATCH 2/2] refactor: clean code --- services/triggerService.ts | 2 +- utils/validators.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/services/triggerService.ts b/services/triggerService.ts index b7049917c..5ce6dc08a 100644 --- a/services/triggerService.ts +++ b/services/triggerService.ts @@ -395,7 +395,7 @@ export interface PostDataParameters { buttonName: string address: string opReturn: OpReturnData - inputAddresses?: Array + inputAddresses?: string[] } async function postDataForTrigger (trigger: TriggerWithPaybutton, postDataParameters: PostDataParameters): Promise { diff --git a/utils/validators.ts b/utils/validators.ts index bf015da55..98cd6d571 100644 --- a/utils/validators.ts +++ b/utils/validators.ts @@ -316,7 +316,7 @@ export const parsePaybuttonTriggerPOSTRequest = function (params: PaybuttonTrigg address: '', timestamp: 0, opReturn: EMPTY_OP_RETURN, - inputAddresses: [''] + inputAddresses: [] } const parsed = parseTriggerPostData({ userId: params.userId,