strapi-plugin-payone-provider 4.6.9 → 5.6.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/README.md +24 -11
  2. package/admin/src/components/Initializer/index.jsx +3 -3
  3. package/admin/src/components/PluginIcon/index.jsx +3 -3
  4. package/admin/src/index.js +33 -11
  5. package/admin/src/pages/App/components/AppHeader.jsx +17 -32
  6. package/admin/src/pages/App/components/AppTabs.jsx +36 -162
  7. package/admin/src/pages/App/components/ApplePayBtn.jsx +9 -11
  8. package/admin/src/pages/App/components/ApplePayConfig.jsx +221 -161
  9. package/admin/src/pages/App/components/ApplePayConfigPanel.jsx +33 -45
  10. package/admin/src/pages/App/components/DocsPanel.jsx +66 -1726
  11. package/admin/src/pages/App/components/GooglePayConfig.jsx +136 -169
  12. package/admin/src/pages/App/components/GooglePayConfigPanel.jsx +37 -55
  13. package/admin/src/pages/App/components/GooglePaybutton.jsx +101 -43
  14. package/admin/src/pages/App/components/RenderInput.jsx +94 -0
  15. package/admin/src/pages/App/components/StatusBadge.jsx +24 -71
  16. package/admin/src/pages/App/components/configuration/ConfigurationFields.jsx +255 -0
  17. package/admin/src/pages/App/components/configuration/ConfigurationPanel.jsx +54 -0
  18. package/admin/src/pages/App/components/configuration/TestConnection.jsx +130 -0
  19. package/admin/src/pages/App/components/docs/ApplePaySection.jsx +260 -0
  20. package/admin/src/pages/App/components/docs/BaseUrlSection.jsx +53 -0
  21. package/admin/src/pages/App/components/docs/CaptureRefundSection.jsx +113 -0
  22. package/admin/src/pages/App/components/docs/CodeBlock.jsx +59 -0
  23. package/admin/src/pages/App/components/docs/CreditCardSection.jsx +93 -0
  24. package/admin/src/pages/App/components/docs/GooglePaySection.jsx +248 -0
  25. package/admin/src/pages/App/components/docs/PayPalSection.jsx +116 -0
  26. package/admin/src/pages/App/components/docs/PaymentMethodsSection.jsx +55 -0
  27. package/admin/src/pages/App/components/docs/TableOfContents.jsx +47 -0
  28. package/admin/src/pages/App/components/docs/TestCredentialsSection.jsx +304 -0
  29. package/admin/src/pages/App/components/docs/ThreeDSecureSection.jsx +188 -0
  30. package/admin/src/pages/App/components/icons/BankIcon.jsx +1 -1
  31. package/admin/src/pages/App/components/icons/ChevronDownIcon.jsx +1 -1
  32. package/admin/src/pages/App/components/icons/ChevronUpIcon.jsx +1 -1
  33. package/admin/src/pages/App/components/icons/CreditCardIcon.jsx +1 -1
  34. package/admin/src/pages/App/components/icons/ErrorIcon.jsx +1 -1
  35. package/admin/src/pages/App/components/icons/InfoIcon.jsx +1 -1
  36. package/admin/src/pages/App/components/icons/MarkCircle.jsx +19 -0
  37. package/admin/src/pages/App/components/icons/PaymentIcon.jsx +1 -1
  38. package/admin/src/pages/App/components/icons/PendingIcon.jsx +1 -1
  39. package/admin/src/pages/App/components/icons/PersonIcon.jsx +1 -1
  40. package/admin/src/pages/App/components/icons/SuccessIcon.jsx +1 -1
  41. package/admin/src/pages/App/components/icons/WalletIcon.jsx +1 -1
  42. package/admin/src/pages/App/components/payment-actions/ApplePayPanel.jsx +51 -0
  43. package/admin/src/pages/App/components/payment-actions/AuthorizationForm.jsx +341 -0
  44. package/admin/src/pages/App/components/payment-actions/CaptureForm.jsx +128 -0
  45. package/admin/src/pages/App/components/{paymentActions → payment-actions}/CardDetailsInput.jsx +77 -72
  46. package/admin/src/pages/App/components/payment-actions/PaymentActionsPanel.jsx +194 -0
  47. package/admin/src/pages/App/components/payment-actions/PaymentMethodSelector.jsx +313 -0
  48. package/admin/src/pages/App/components/payment-actions/PaymentResult.jsx +133 -0
  49. package/admin/src/pages/App/components/payment-actions/PreauthorizationForm.jsx +280 -0
  50. package/admin/src/pages/App/components/payment-actions/RefundForm.jsx +121 -0
  51. package/admin/src/pages/App/components/transaction-history/FiltersPanel.jsx +145 -0
  52. package/admin/src/pages/App/components/transaction-history/HistoryPanel.jsx +50 -0
  53. package/admin/src/pages/App/components/transaction-history/TransactionTable.jsx +163 -0
  54. package/admin/src/pages/App/components/transaction-history/details/TransactionDetails.jsx +156 -0
  55. package/admin/src/pages/App/components/{TransactionHistoryItem.jsx → transaction-history/details/TransactionHistoryItem.jsx} +16 -28
  56. package/admin/src/pages/App/index.jsx +27 -70
  57. package/admin/src/pages/App/styles.css +46 -169
  58. package/admin/src/pages/constants/paymentConstants.js +52 -16
  59. package/admin/src/pages/hooks/use-system-theme.js +27 -0
  60. package/admin/src/pages/hooks/usePaymentActions.js +273 -210
  61. package/admin/src/pages/hooks/useSettings.js +87 -48
  62. package/admin/src/pages/hooks/useTransactionHistory.js +105 -108
  63. package/admin/src/pages/utils/api.js +57 -72
  64. package/admin/src/pages/utils/applePayConstants.js +2 -28
  65. package/admin/src/pages/utils/countryLanguageUtils.js +280 -0
  66. package/admin/src/pages/utils/getInputComponent.jsx +225 -0
  67. package/admin/src/pages/utils/googlePayConstants.js +2 -9
  68. package/admin/src/pages/utils/paymentUtils.js +13 -25
  69. package/admin/src/pages/utils/tooltipHelpers.js +18 -0
  70. package/admin/src/pages/utils/transactionTableUtils.js +60 -0
  71. package/package.json +8 -14
  72. package/server/config/index.js +18 -2
  73. package/server/controllers/payone.js +80 -31
  74. package/server/policies/is-auth.js +9 -3
  75. package/server/policies/isSuperAdmin.js +7 -5
  76. package/server/services/paymentService.js +6 -22
  77. package/server/services/payone.js +3 -3
  78. package/server/services/settingsService.js +13 -3
  79. package/server/services/testConnectionService.js +11 -73
  80. package/server/services/transactionService.js +63 -98
  81. package/server/utils/normalize.js +0 -12
  82. package/server/utils/paymentMethodParams.js +0 -1
  83. package/server/utils/responseParser.js +9 -14
  84. package/strapi-admin.js +3 -1
  85. package/admin/src/pages/App/components/ConfigurationPanel.jsx +0 -517
  86. package/admin/src/pages/App/components/CustomerInfoPopover.jsx +0 -147
  87. package/admin/src/pages/App/components/HistoryPanel.jsx +0 -94
  88. package/admin/src/pages/App/components/PaymentActionsPanel.jsx +0 -280
  89. package/admin/src/pages/App/components/RawDataPopover.jsx +0 -113
  90. package/admin/src/pages/App/components/TransactionHistoryTable/TransactionHistoryTableFilters.jsx +0 -113
  91. package/admin/src/pages/App/components/TransactionHistoryTable/TransactionHistoryTablePagination.jsx +0 -180
  92. package/admin/src/pages/App/components/TransactionHistoryTable/index.jsx +0 -225
  93. package/admin/src/pages/App/components/paymentActions/ApplePayPanel.jsx +0 -95
  94. package/admin/src/pages/App/components/paymentActions/AuthorizationForm.jsx +0 -197
  95. package/admin/src/pages/App/components/paymentActions/CaptureForm.jsx +0 -65
  96. package/admin/src/pages/App/components/paymentActions/PaymentMethodSelector.jsx +0 -306
  97. package/admin/src/pages/App/components/paymentActions/PaymentResult.jsx +0 -192
  98. package/admin/src/pages/App/components/paymentActions/PreauthorizationForm.jsx +0 -142
  99. package/admin/src/pages/App/components/paymentActions/RefundForm.jsx +0 -90
package/README.md CHANGED
@@ -35,7 +35,9 @@ A comprehensive Strapi plugin that integrates the Payone payment gateway into yo
35
35
 
36
36
  Before installing this plugin, ensure you have:
37
37
 
38
- - **Strapi**: Version 4.6.0 or higher
38
+ - **Strapi**:
39
+ - Version 5.x.x for plugin version 5.x.x
40
+ - Version 4.6.0 or higher for plugin version 4.x.x
39
41
  - **Node.js**: Version 18.0.0 to 20.x.x
40
42
  - **npm**: Version 6.0.0 or higher
41
43
  - **Payone Account**: Active Payone merchant account with API credentials
@@ -55,17 +57,29 @@ You will need the following credentials from your Payone account:
55
57
 
56
58
  ### Install from npm
57
59
 
58
- ```bash
59
- # Using npm
60
- npm install strapi-plugin-payone-provider
60
+ **Important**: Choose the correct version based on your Strapi version:
61
61
 
62
- # Using yarn
63
- yarn add strapi-plugin-payone-provider
62
+ - **For Strapi 5.x.x**: Use plugin version `^5.x.x`
63
+ - **For Strapi 4.x.x**: Use plugin version `^4.x.x`
64
64
 
65
- # Using pnpm
66
- pnpm add strapi-plugin-payone-provider
65
+ ```bash
66
+ # For Strapi 5.x.x
67
+ npm install strapi-plugin-payone-provider@^5
68
+ # or
69
+ yarn add strapi-plugin-payone-provider@^5
70
+ # or
71
+ pnpm add strapi-plugin-payone-provider@^5
72
+
73
+ # For Strapi 4.x.x
74
+ npm install strapi-plugin-payone-provider@^4
75
+ # or
76
+ yarn add strapi-plugin-payone-provider@^4
77
+ # or
78
+ pnpm add strapi-plugin-payone-provider@^4
67
79
  ```
68
80
 
81
+ > ⚠️ **Version Compatibility**: Make sure to install the correct plugin version that matches your Strapi version. Using an incompatible version may cause errors or unexpected behavior.
82
+
69
83
  ## ⚙️ Configuration
70
84
 
71
85
  After installation, you need to configure your Payone credentials:
@@ -799,9 +813,8 @@ paymentDataRequest.merchantInfo = {
799
813
  const button = paymentsClient.createButton({
800
814
  onClick: async () => {
801
815
  try {
802
- const paymentData = await paymentsClient.loadPaymentData(
803
- paymentDataRequest
804
- );
816
+ const paymentData =
817
+ await paymentsClient.loadPaymentData(paymentDataRequest);
805
818
  const token = paymentData.paymentMethodData.tokenizationData.token;
806
819
 
807
820
  // Token is a JSON string, encode it to Base64 for Payone
@@ -1,10 +1,10 @@
1
- import { useEffect, useRef } from "react";
1
+ import * as React from "react";
2
2
  import pluginId from "../../pluginId";
3
3
 
4
4
  const Initializer = ({ setPlugin }) => {
5
- const ref = useRef(setPlugin);
5
+ const ref = React.useRef(setPlugin);
6
6
 
7
- useEffect(() => {
7
+ React.useEffect(() => {
8
8
  if (ref.current) {
9
9
  ref.current(pluginId);
10
10
  }
@@ -1,6 +1,6 @@
1
- import React from "react";
2
- import { Puzzle } from "@strapi/icons";
1
+ import * as React from '@strapi/strapi/admin';
2
+ import { PuzzlePiece } from "@strapi/icons";
3
3
 
4
- const PluginIcon = () => <Puzzle />;
4
+ const PluginIcon = () => <PuzzlePiece />;
5
5
 
6
6
  export default PluginIcon;
@@ -1,10 +1,12 @@
1
- import pluginPkg from "../../package.json";
2
- import pluginId from "./pluginId";
1
+
2
+ import pluginPkg from '../../package.json';
3
+ import pluginId from './pluginId';
3
4
  import Initializer from "./components/Initializer/index.jsx";
4
5
  import PluginIcon from "./components/PluginIcon/index.jsx";
5
6
  import { injectGooglePayScript } from "./pages/utils/injectGooglePayScript";
6
7
  import { injectApplePayScript } from "./pages/utils/injectApplePayScript";
7
8
 
9
+
8
10
  const name = pluginPkg.strapi.name;
9
11
 
10
12
  export default {
@@ -14,20 +16,20 @@ export default {
14
16
  icon: PluginIcon,
15
17
  intlLabel: {
16
18
  id: `${pluginId}.plugin.name`,
17
- defaultMessage: "Payone Provider"
19
+ defaultMessage: 'Payone Provider',
18
20
  },
19
21
  Component: async () => {
20
- const component = await import("./pages/App/index.jsx");
21
- return component;
22
+ const App = await import('./pages/App');
23
+ return App;
22
24
  },
23
- permissions: []
25
+ permissions: [],
24
26
  });
25
27
 
26
28
  app.registerPlugin({
27
29
  id: pluginId,
28
30
  initializer: Initializer,
29
31
  isReady: false,
30
- name
32
+ name,
31
33
  });
32
34
  },
33
35
 
@@ -36,7 +38,27 @@ export default {
36
38
  injectApplePayScript();
37
39
  },
38
40
 
39
- async registerTrads() {
40
- return Promise.resolve([]);
41
- }
42
- };
41
+ async registerTrads({ locales }) {
42
+ const importedTrads = await Promise.all(
43
+ locales.map(async (locale) => {
44
+ try {
45
+ const { default: data } = await import(
46
+ /* webpackChunkName: "[pluginId]-[request]" */ `./translations/${locale}.json`
47
+ );
48
+
49
+ return {
50
+ data,
51
+ locale,
52
+ };
53
+ } catch (error) {
54
+ return {
55
+ data: {},
56
+ locale,
57
+ };
58
+ }
59
+ })
60
+ );
61
+
62
+ return Promise.resolve(importedTrads);
63
+ },
64
+ };
@@ -1,52 +1,37 @@
1
- import React from "react";
2
- import { HeaderLayout, Box, Typography, Button } from "@strapi/design-system";
1
+ import * as React from '@strapi/strapi/admin';
2
+ import { Button } from "@strapi/design-system";
3
+ import { Layouts } from "@strapi/strapi/admin";
3
4
  import { Check, ArrowLeft } from "@strapi/icons";
4
- import { useHistory, useLocation } from "react-router-dom";
5
- import pluginId from "../../../pluginId";
6
5
 
7
- const AppHeader = ({ activeTab, isSaving, onSave }) => {
8
- const history = useHistory();
9
- const location = useLocation();
10
- const isApplePayConfigPage = location.pathname.includes("/apple-pay-config");
11
- const isGooglePayConfigPage = location.pathname.includes("/google-pay-config");
6
+ const AppHeader = ({ activeTab, isSaving, onSave, title, onBack }) => {
7
+ const isConfigPage = title && title !== "Payone Provider";
12
8
 
13
9
  return (
14
- <HeaderLayout
15
- title={
16
- <Box>
17
- <Typography
18
- variant="alpha"
19
- as="h1"
20
- fontWeight="bold"
21
- className="payment-title"
22
- >
23
- {isApplePayConfigPage
24
- ? "Apple Pay Configuration"
25
- : "Payone Provider"}
26
- </Typography>
27
- <Typography variant="pi" marginTop={2} className="payment-subtitle">
28
- {isApplePayConfigPage
29
- ? "Configure Apple Pay settings for your payment gateway"
30
- : "Configure your Payone integration and manage payment transactions"}
31
- </Typography>
32
- </Box>
10
+ <Layouts.Header
11
+ title={title || "Payone Provider"}
12
+ subtitle={
13
+ title === "Apple Pay Configuration"
14
+ ? "Configure Apple Pay settings for your payment gateway"
15
+ : title === "Google Pay Configuration"
16
+ ? "Configure Google Pay settings for your payment gateway"
17
+ : "Configure your Payone integration and manage payment transactions"
33
18
  }
34
19
  primaryAction={
35
- isApplePayConfigPage || isGooglePayConfigPage ? (
20
+ isConfigPage ? (
36
21
  <Button
37
- onClick={() => history.push(`/plugins/${pluginId}`)}
22
+ onClick={onBack}
38
23
  startIcon={<ArrowLeft />}
39
24
  size="L"
40
25
  variant="secondary"
41
26
  >
42
27
  Back to Main
43
28
  </Button>
44
- ) : activeTab === 0 ? (
29
+ ) : activeTab === 1 ? (
45
30
  <Button
46
31
  loading={isSaving}
47
32
  onClick={onSave}
48
33
  startIcon={<Check />}
49
- size="L"
34
+ size="M"
50
35
  variant="default"
51
36
  className="payment-button payment-button-success"
52
37
  >
@@ -1,178 +1,52 @@
1
- import React from "react";
2
- import {
3
- Tabs,
4
- Tab,
5
- TabGroup,
6
- TabPanels,
7
- TabPanel,
8
- } from "@strapi/design-system";
9
- import pluginId from "../../../pluginId";
10
- import ConfigurationPanel from "./ConfigurationPanel";
11
- import HistoryPanel from "./HistoryPanel";
12
- import PaymentActionsPanel from "./PaymentActionsPanel";
1
+ import * as React from "react";
2
+ import { Tabs } from "@strapi/design-system";
3
+ import ConfigurationPanel from "./configuration/ConfigurationPanel";
4
+ import HistoryPanel from "./transaction-history/HistoryPanel";
5
+ import PaymentActionsPanel from "./payment-actions/PaymentActionsPanel";
13
6
  import DocsPanel from "./DocsPanel";
14
7
 
15
8
  const AppTabs = ({
16
9
  activeTab,
17
10
  setActiveTab,
18
- // Settings props
11
+ onNavigateToConfig,
19
12
  settings,
20
- isSaving,
21
- isTesting,
22
- testResult,
23
- onSave,
24
- onTestConnection,
25
- onInputChange,
26
- onPaymentMethodToggle,
27
- // Transaction history props
28
- filters,
29
- onFilterChange,
30
- onFilterApply,
31
- sorting,
32
- onSort,
33
- isLoadingHistory,
34
- transactionHistory,
35
- paginatedTransactions,
36
- currentPage,
37
- totalPages,
38
- pageSize,
39
- onRefresh,
40
- onPageChange,
41
- onPageSizeChange,
42
- selectedTransaction,
43
- onTransactionSelect,
44
- // Payment actions props
45
13
  paymentActions,
46
- history,
47
14
  }) => {
48
- const handleNavigateToConfig = (configType = "apple-pay") => {
49
- if (history) {
50
- if (configType === "google-pay") {
51
- history.push(`/plugins/${pluginId}/google-pay-config`);
52
- } else {
53
- history.push(`/plugins/${pluginId}/apple-pay-config`);
54
- }
55
- }
56
- };
57
15
  return (
58
- <TabGroup
59
- label="Payone Provider Tabs"
60
- onTabChange={(index) => setActiveTab(index)}
16
+ <Tabs.Root
17
+ defaultValue={`tab-${activeTab}`}
18
+ value={`tab-${activeTab}`}
19
+ variant="regular"
20
+ onValueChange={(value) =>
21
+ setActiveTab(parseInt(value.replace("tab-", "")))
22
+ }
61
23
  >
62
- <Tabs style={{ borderBottom: "2px solid #e8e8ea" }}>
63
- <Tab
64
- className={`payment-tab ${
65
- activeTab === 0 ? "payment-tab-active" : ""
66
- }`}
67
- >
68
- Configuration
69
- </Tab>
70
- <Tab
71
- className={`payment-tab ${
72
- activeTab === 1 ? "payment-tab-active" : ""
73
- }`}
74
- >
75
- Transaction History
76
- </Tab>
77
- <Tab
78
- className={`payment-tab ${
79
- activeTab === 2 ? "payment-tab-active" : ""
80
- }`}
81
- >
82
- Payment Actions
83
- </Tab>
84
- <Tab
85
- className={`payment-tab ${
86
- activeTab === 3 ? "payment-tab-active" : ""
87
- }`}
88
- >
89
- Documentation
90
- </Tab>
91
- </Tabs>
92
- <TabPanels>
93
- <TabPanel>
94
- <ConfigurationPanel
95
- settings={settings}
96
- isSaving={isSaving}
97
- isTesting={isTesting}
98
- testResult={testResult}
99
- onSave={onSave}
100
- onTestConnection={onTestConnection}
101
- onInputChange={onInputChange}
102
- onPaymentMethodToggle={onPaymentMethodToggle}
103
- />
104
- </TabPanel>
24
+ <Tabs.List style={{ width: "100%" }}>
25
+ <Tabs.Trigger value="tab-1">Configuration</Tabs.Trigger>
26
+ <Tabs.Trigger value="tab-2">Transaction History</Tabs.Trigger>
27
+ <Tabs.Trigger value="tab-3">Payment Actions</Tabs.Trigger>
28
+ <Tabs.Trigger value="tab-4">Documentation</Tabs.Trigger>
29
+ </Tabs.List>
30
+ <Tabs.Content value="tab-1">
31
+ <ConfigurationPanel settings={settings} />
32
+ </Tabs.Content>
105
33
 
106
- <TabPanel>
107
- <HistoryPanel
108
- filters={filters}
109
- onFilterChange={onFilterChange}
110
- onFilterApply={onFilterApply}
111
- sorting={sorting}
112
- onSort={onSort}
113
- isLoadingHistory={isLoadingHistory}
114
- transactionHistory={transactionHistory}
115
- paginatedTransactions={paginatedTransactions}
116
- currentPage={currentPage}
117
- totalPages={totalPages}
118
- pageSize={pageSize}
119
- onRefresh={onRefresh}
120
- onPageChange={onPageChange}
121
- onPageSizeChange={onPageSizeChange}
122
- selectedTransaction={selectedTransaction}
123
- onTransactionSelect={onTransactionSelect}
124
- />
125
- </TabPanel>
34
+ <Tabs.Content value="tab-2">
35
+ <HistoryPanel />
36
+ </Tabs.Content>
126
37
 
127
- <TabPanel>
128
- <PaymentActionsPanel
129
- paymentAmount={paymentActions.paymentAmount}
130
- setPaymentAmount={paymentActions.setPaymentAmount}
131
- preauthReference={paymentActions.preauthReference}
132
- setPreauthReference={paymentActions.setPreauthReference}
133
- authReference={paymentActions.authReference}
134
- setAuthReference={paymentActions.setAuthReference}
135
- captureTxid={paymentActions.captureTxid}
136
- setCaptureTxid={paymentActions.setCaptureTxid}
137
- refundTxid={paymentActions.refundTxid}
138
- setRefundTxid={paymentActions.setRefundTxid}
139
- refundSequenceNumber={paymentActions.refundSequenceNumber}
140
- setRefundSequenceNumber={paymentActions.setRefundSequenceNumber}
141
- refundReference={paymentActions.refundReference}
142
- setRefundReference={paymentActions.setRefundReference}
143
- paymentMethod={paymentActions.paymentMethod}
144
- setPaymentMethod={paymentActions.setPaymentMethod}
145
- captureMode={paymentActions.captureMode}
146
- setCaptureMode={paymentActions.setCaptureMode}
147
- isProcessingPayment={paymentActions.isProcessingPayment}
148
- paymentError={paymentActions.paymentError}
149
- paymentResult={paymentActions.paymentResult}
150
- onPreauthorization={paymentActions.handlePreauthorization}
151
- onAuthorization={paymentActions.handleAuthorization}
152
- onCapture={paymentActions.handleCapture}
153
- onRefund={paymentActions.handleRefund}
154
- settings={settings}
155
- googlePayToken={paymentActions.googlePayToken}
156
- setGooglePayToken={paymentActions.setGooglePayToken}
157
- applePayToken={paymentActions.applePayToken}
158
- setApplePayToken={paymentActions.setApplePayToken}
159
- cardtype={paymentActions.cardtype}
160
- setCardtype={paymentActions.setCardtype}
161
- cardpan={paymentActions.cardpan}
162
- setCardpan={paymentActions.setCardpan}
163
- cardexpiredate={paymentActions.cardexpiredate}
164
- setCardexpiredate={paymentActions.setCardexpiredate}
165
- cardcvc2={paymentActions.cardcvc2}
166
- setCardcvc2={paymentActions.setCardcvc2}
167
- onNavigateToConfig={handleNavigateToConfig}
168
- />
169
- </TabPanel>
38
+ <Tabs.Content value="tab-3">
39
+ <PaymentActionsPanel
40
+ onNavigateToConfig={onNavigateToConfig}
41
+ settings={settings}
42
+ paymentActions={paymentActions}
43
+ />
44
+ </Tabs.Content>
170
45
 
171
- <TabPanel>
172
- <DocsPanel />
173
- </TabPanel>
174
- </TabPanels>
175
- </TabGroup>
46
+ <Tabs.Content value="tab-4">
47
+ <DocsPanel settings={settings} paymentActions={paymentActions} />
48
+ </Tabs.Content>
49
+ </Tabs.Root>
176
50
  );
177
51
  };
178
52
 
@@ -1,7 +1,7 @@
1
- import React from "react";
1
+ import * as React from '@strapi/strapi/admin';
2
2
  import ApplePayButton from "apple-pay-button";
3
3
  import { Box, Typography, Alert } from "@strapi/design-system";
4
- import { request } from "@strapi/helper-plugin";
4
+ import { getFetchClient } from "@strapi/strapi/admin";
5
5
  import pluginId from "../../../pluginId";
6
6
 
7
7
  const ApplePayBtn = ({
@@ -20,17 +20,15 @@ const ApplePayBtn = ({
20
20
  currencyCode || applePayConfig.currencyCode || "EUR";
21
21
  const requestCountryCode = applePayConfig.countryCode || "DE";
22
22
 
23
- const merchantSession = await request(
23
+ const { post } = getFetchClient();
24
+ const merchantSession = await post(
24
25
  `/${pluginId}/validate-apple-pay-merchant`,
25
26
  {
26
- method: "POST",
27
- body: {
28
- domainName: settings?.domainName || window.location.hostname,
29
- displayName: settings?.displayName || "Store",
30
- currency: requestCurrency,
31
- countryCode: requestCountryCode,
32
- mode: (settings?.mode || "test").toLowerCase() || "test",
33
- },
27
+ domainName: settings?.domainName || window.location.hostname,
28
+ displayName: settings?.displayName || "Store",
29
+ currency: requestCurrency,
30
+ countryCode: requestCountryCode,
31
+ mode: (settings?.mode || "test").toLowerCase() || "test",
34
32
  }
35
33
  );
36
34
  if (merchantSession.error) {