diff --git a/docs/README.md b/docs/README.md index 3409fe5f..26781a3c 100644 --- a/docs/README.md +++ b/docs/README.md @@ -102,7 +102,8 @@ Example using JavaScript to generate a PayButton: wsBaseUrl: 'http://localhost:5000', apiBaseUrl: 'http://localhost:3000' disableAltpayment: true, - contributionOffset: 10 + contributionOffset: 10, + autoClose: true }; PayButton.render(document.getElementById('my_button'), config); @@ -983,6 +984,33 @@ contributionOffset = 10 ``` +## auto-close + +> **The ‘autoClose’ parameter automatically closes the payment dialog after a payment is received.** + +?> This parameter is optional. Default value is true. Possible values are true or false. +**Example:** + + +#### ** HTML ** + +```html +auto-close="false" +``` + +#### ** JavaScript ** + +```javascript +autoClose: false +``` + +#### ** React ** + +```react +autoClose = false +``` + + # Contribute PayButton is a community-driven open-source initiative. Contributions from the community are _crucial_ to the success of the project. diff --git a/docs/_sidebar.md b/docs/_sidebar.md index ffb60490..997f5571 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -29,6 +29,7 @@ - [api-base-url](/?id=api-base-url) - [disable-altpayment](/?id=disable-altpayment) - [contribution-offset](/?id=contribution-offset) + - [auto-close](/?id=auto-close) - [Contribute](/?id=contribute) - [Developer Quick Start](/?id=developer-quick-start) - [Getting Started](/?id=getting-started) diff --git a/docs/zh-cn/README.md b/docs/zh-cn/README.md index 42e77e1e..d31435db 100644 --- a/docs/zh-cn/README.md +++ b/docs/zh-cn/README.md @@ -979,6 +979,34 @@ contribution-offset: 10 contributionOffset = 10 ``` + +## auto-close + +> **‘autoClose’ 收到付款后,参数会自动关闭付款对话框** + +?> 此参数为可选参数。默认值为 true。可能的值为 true 或 false。 +**Example:** + + +#### ** HTML ** + +```html +auto-close="false" +``` + +#### ** JavaScript ** + +```javascript +autoClose: false +``` + +#### ** React ** + +```react +autoClose = false +``` + + # 贡献 PayButton是一个社群主导的开放源代码促进会。此项目的成功关键在于对社群的贡献。 diff --git a/docs/zh-cn/_sidebar.md b/docs/zh-cn/_sidebar.md index cee79266..1d7e1bdc 100644 --- a/docs/zh-cn/_sidebar.md +++ b/docs/zh-cn/_sidebar.md @@ -28,6 +28,7 @@ - [api-base-url](/zh-cn/?id=api-base-url) - [disable-altpayment](/zh-cn/?id=disable-altpayment) - [contribution-offset](/zh-cn/?id=contribution-offset) + - [auto-close](/zh-cn/?id=auto-close) - [贡献](/zh-cn/?id=贡献) - [开发人员快速入门](/zh-cn/?id=开发人员快速入门) - [入门](/zh-cn/?id=入门) diff --git a/docs/zh-tw/README.md b/docs/zh-tw/README.md index 34a2be1d..8a9a72e8 100644 --- a/docs/zh-tw/README.md +++ b/docs/zh-tw/README.md @@ -978,6 +978,34 @@ contribution-offset: 10 contributionOffset = 10 ``` + +## auto-close + +> **‘autoClose’ 收到付款後,參數會自動關閉付款對話框.** + +?> 此參數是可選的。預設值為 true。可能的值是真或假。 +**Example:** + + +#### ** HTML ** + +```html +auto-close="false" +``` + +#### ** JavaScript ** + +```javascript +autoClose: false +``` + +#### ** React ** + +```react +autoClose = false +``` + + # 貢獻 PayButton是一個社區主導的開放源代碼促進會。此項目的成功關鍵在於對社區的貢獻。 diff --git a/docs/zh-tw/_sidebar.md b/docs/zh-tw/_sidebar.md index a0e62748..a87ee3cb 100644 --- a/docs/zh-tw/_sidebar.md +++ b/docs/zh-tw/_sidebar.md @@ -28,6 +28,7 @@ - [api-base-url](/zh-tw/?id=api-base-url) - [disable-altpayment](/zh-tw/?id=disable-altpayment) - [contribution-offset](/zh-tw/?id=contribution-offset) + - [auto-close](/zh-tw/?id=auto-close) - [貢獻](/zh-tw/?id=貢獻) - [開發人員快速入門](/zh-tw/?id=開發人員快速入門) - [入門](/zh-tw/?id=入門) diff --git a/paybutton/src/index.tsx b/paybutton/src/index.tsx index 75671307..e7c9e205 100644 --- a/paybutton/src/index.tsx +++ b/paybutton/src/index.tsx @@ -100,7 +100,8 @@ const allowedProps = [ 'wsBaseUrl', 'apiBaseUrl', 'disableAltpayment', - 'contributionOffset' + 'contributionOffset', + 'autoClose' ]; const requiredProps = [ diff --git a/react/lib/components/PayButton/PayButton.tsx b/react/lib/components/PayButton/PayButton.tsx index 91e300bd..9206cf34 100644 --- a/react/lib/components/PayButton/PayButton.tsx +++ b/react/lib/components/PayButton/PayButton.tsx @@ -43,8 +43,9 @@ export interface PayButtonProps extends ButtonProps { onClose?: (success?: boolean, paymentId?:string) => void; wsBaseUrl?: string; apiBaseUrl?: string; - disableAltpayment?:boolean - contributionOffset?:number + disableAltpayment?: boolean + contributionOffset?: number + autoClose?: boolean } export const PayButton = (props: PayButtonProps): React.ReactElement => { @@ -81,7 +82,8 @@ export const PayButton = (props: PayButtonProps): React.ReactElement => { wsBaseUrl, apiBaseUrl, disableAltpayment, - contributionOffset + contributionOffset, + autoClose } = Object.assign({}, PayButton.defaultProps, props); const [paymentId] = useState(!disablePaymentId ? generatePaymentId(8) : undefined); @@ -237,6 +239,7 @@ export const PayButton = (props: PayButtonProps): React.ReactElement => { hoverText={hoverText} disableAltpayment={disableAltpayment} contributionOffset={contributionOffset} + autoClose={autoClose} /> {errorMsg && (
{
@@ -82,6 +84,12 @@ export const PaymentDialog = (
const handleSuccess = (transaction: Transaction): void => {
setSuccess(true);
onSuccess?.(transaction);
+ setTimeout(() => {
+ setSuccess(false);
+ if (autoClose === true) {
+ handleWidgetClose();
+ }
+ }, 3000);
};
useEffect(() => {
const invalidAmount = amount !== undefined && isNaN(+amount);
@@ -167,6 +175,7 @@ PaymentDialog.defaultProps = {
disabled: false,
editable: false,
dialogOpen: true,
+ autoClose: true,
};
export default PaymentDialog;
diff --git a/react/lib/components/Widget/WidgetContainer.tsx b/react/lib/components/Widget/WidgetContainer.tsx
index d1229a4e..88fdd083 100644
--- a/react/lib/components/Widget/WidgetContainer.tsx
+++ b/react/lib/components/Widget/WidgetContainer.tsx
@@ -182,9 +182,11 @@ export const WidgetContainer: React.FunctionComponent