Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 44 additions & 32 deletions components/Paybutton/PaybuttonTrigger.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -116,9 +116,9 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => {
} finally {
setClearModal(undefined)
setTimeout(() => {
setSuccess('');
setError('');
}, 3000);
setSuccess('')
setError('')
}, 3000)
}
}
}
Expand Down Expand Up @@ -153,9 +153,9 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => {
setError(err.response.data.message)
} finally {
setTimeout(() => {
setSuccess('');
setError('');
}, 3000);
setSuccess('')
setError('')
}, 3000)
}
}
}
Expand All @@ -174,7 +174,7 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => {
onSubmit={(e) => {
void handleSubmitPosterTrigger(
getSubmitTriggerHandler('poster')
)(e);
)(e)
}}
method="post"
>
Expand Down Expand Up @@ -212,25 +212,30 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => {
<div>&lt;txId&gt;</div>
<div>&lt;opReturn&gt;</div>
<div>&lt;signature&gt;</div>
<div>&lt;inputAddresses&gt;</div>
</div>
</div>
{/* Tooltip */}
<div>
<div className={style.tip}>
{/* Only triggers if payment &gt; X */}
</div>

<div className={style.trigger_btn_row}>

{posterError === undefined || posterError === '' ? null : (
{posterError === undefined || posterError === ''
? null
: (
<div className={style.error_message_}>{posterError}</div>
)}
)}
{posterSuccessText === undefined ||
posterSuccessText === '' ? null : (
posterSuccessText === ''
? null
: (
<div className={style.success_message_}>
{posterSuccessText}
</div>
)}
)}
{currentPosterTriggerId !== undefined && (
<button
type="button"
Expand All @@ -239,7 +244,7 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => {
>
Delete
</button>
)}
)}
<button
disabled={disablePosterSubmit}
type="submit"
Expand All @@ -249,7 +254,7 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => {
? 'Create Send Request'
: 'Update Send Request'}
</button>

</div>
</div>
</form>
Expand All @@ -264,12 +269,11 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => {
onSubmit={(e) => {
void handleSubmitEmailTrigger(getSubmitTriggerHandler('email'))(
e
);
)
}}
method="post"
>



<label htmlFor="emails">Email</label>
<input
{...registerEmailTrigger('emails')}
Expand All @@ -278,30 +282,36 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => {
name="emails"
/>
<div className={style.email_credits_info}>
{emailCredits < MAX_DAILY_EMAILS ? (
{emailCredits < MAX_DAILY_EMAILS
? (
<span>
You have sent <b>{MAX_DAILY_EMAILS - emailCredits}</b>{' '}
of a daily maximum of <b>{MAX_DAILY_EMAILS}</b> emails.
</span>
) : (
)
: (
<span>
You may send up to <b>{MAX_DAILY_EMAILS}</b> emails per
day.
</span>
)}
)}
</div>

<div>
<div className={style.trigger_btn_row}>
{emailError === undefined || emailError === '' ? null : (
{emailError === undefined || emailError === ''
? null
: (
<div className={style.error_message_}>{emailError}</div>
)}
)}
{emailSuccessText === undefined ||
emailSuccessText === '' ? null : (
emailSuccessText === ''
? null
: (
<div className={style.success_message_}>
{emailSuccessText}
</div>
)}
)}
{currentEmailTriggerId !== undefined && (
<button
type="button"
Expand All @@ -310,7 +320,7 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => {
>
Delete
</button>
)}
)}
<button
disabled={disableEmailSubmit}
type="submit"
Expand All @@ -320,14 +330,15 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => {
? 'Create Send Email'
: 'Update Send Email'}
</button>

</div>
</div>
</form>
</div>
</div>
</div>
{clearModal !== undefined ? (
{clearModal !== undefined
? (
<div className={style.form_ctn_outer}>
<div className={style.form_ctn_inner}>
<h4>Clear Payment Trigger?</h4>
Expand All @@ -343,15 +354,15 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => {
<div>
<button
onClick={() => {
void getDeleteTriggerHandler(clearModal)();
void getDeleteTriggerHandler(clearModal)()
}}
className={style.delete_confirm_btn}
>
Yes
</button>
<button
onClick={() => {
setClearModal(undefined);
setClearModal(undefined)
}}
className={style.cancel_btn}
>
Expand All @@ -362,7 +373,8 @@ export default ({ paybuttonId, emailCredits }: IProps): JSX.Element => {
</div>
</div>
</div>
) : null}
)
: null}
</div>
);
)
}
3 changes: 2 additions & 1 deletion constants/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,8 @@ export const TRIGGER_POST_VARIABLES = [
'<opReturn>',
'<signature>',
'<timestamp>',
'<txId>'
'<txId>',
'<inputAddresses>'
]

export const PAYBUTTON_TRANSACTIONS_FILE_HEADERS = {
Expand Down
7 changes: 5 additions & 2 deletions services/triggerService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,8 @@ export async function executeAddressTriggers (broadcastTxData: BroadcastTxData,
timestamp,
paymentId,
message,
rawMessage
rawMessage,
inputAddresses
} = tx

const addressTriggers = await fetchTriggersForAddress(address)
Expand All @@ -264,7 +265,8 @@ export async function executeAddressTriggers (broadcastTxData: BroadcastTxData,
message,
rawMessage
}
: EMPTY_OP_RETURN
: EMPTY_OP_RETURN,
inputAddresses
}
await postDataForTrigger(trigger, postDataParameters)
}))
Expand Down Expand Up @@ -393,6 +395,7 @@ export interface PostDataParameters {
buttonName: string
address: string
opReturn: OpReturnData
inputAddresses?: string[]
}

async function postDataForTrigger (trigger: TriggerWithPaybutton, postDataParameters: PostDataParameters): Promise<void> {
Expand Down
4 changes: 3 additions & 1 deletion utils/validators.ts
Original file line number Diff line number Diff line change
Expand Up @@ -272,6 +272,7 @@ export function parseTriggerPostData ({ userId, postData, postDataParameters }:
.replace('<timestamp>', postDataParameters.timestamp.toString())
.replace('<opReturn>', opReturn)
.replace('<signature>', `${JSON.stringify(signature, undefined, 2)}`)
.replace('<inputAddresses>', `${JSON.stringify(postDataParameters.inputAddresses, undefined, 2)}`)
const parsedResultingData = JSON.parse(resultingData)
return parsedResultingData
} catch (err: any) {
Expand Down Expand Up @@ -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,
Expand Down
Loading