payment-kit 1.18.55 → 1.19.0

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 (130) hide show
  1. package/.eslintrc.js +6 -0
  2. package/api/src/libs/queue/index.ts +1 -3
  3. package/blocklet.yml +1 -1
  4. package/package.json +57 -58
  5. package/src/components/actions.tsx +22 -9
  6. package/src/components/balance-list.tsx +40 -12
  7. package/src/components/collapse.tsx +22 -14
  8. package/src/components/copyable.tsx +8 -7
  9. package/src/components/currency.tsx +15 -7
  10. package/src/components/customer/actions.tsx +1 -5
  11. package/src/components/customer/form.tsx +3 -1
  12. package/src/components/customer/link.tsx +4 -12
  13. package/src/components/customer/notification-preference.tsx +18 -9
  14. package/src/components/customer/overdraft-protection.tsx +112 -41
  15. package/src/components/drawer-form.tsx +42 -18
  16. package/src/components/error.tsx +1 -5
  17. package/src/components/event/list.tsx +9 -10
  18. package/src/components/filter-toolbar.tsx +20 -19
  19. package/src/components/info-card.tsx +32 -18
  20. package/src/components/info-metric.tsx +16 -6
  21. package/src/components/info-row-group.tsx +1 -7
  22. package/src/components/info-row.tsx +30 -24
  23. package/src/components/invoice/action.tsx +1 -7
  24. package/src/components/invoice/list.tsx +15 -25
  25. package/src/components/invoice/recharge.tsx +5 -7
  26. package/src/components/invoice/table.tsx +17 -12
  27. package/src/components/layout/user.tsx +1 -1
  28. package/src/components/metadata/form.tsx +13 -13
  29. package/src/components/metadata/list.tsx +11 -3
  30. package/src/components/passport/actions.tsx +9 -4
  31. package/src/components/payment-currency/add.tsx +16 -3
  32. package/src/components/payment-currency/form.tsx +12 -6
  33. package/src/components/payment-intent/actions.tsx +24 -16
  34. package/src/components/payment-intent/list.tsx +11 -8
  35. package/src/components/payment-link/actions.tsx +1 -5
  36. package/src/components/payment-link/after-pay.tsx +4 -2
  37. package/src/components/payment-link/before-pay.tsx +14 -4
  38. package/src/components/payment-link/item.tsx +27 -6
  39. package/src/components/payment-link/preview.tsx +9 -9
  40. package/src/components/payment-link/product-select.tsx +17 -3
  41. package/src/components/payment-method/arcblock.tsx +6 -1
  42. package/src/components/payment-method/base.tsx +6 -1
  43. package/src/components/payment-method/bitcoin.tsx +6 -1
  44. package/src/components/payment-method/ethereum.tsx +6 -1
  45. package/src/components/payment-method/evm-rpc-input.tsx +11 -7
  46. package/src/components/payment-method/form.tsx +2 -7
  47. package/src/components/payouts/actions.tsx +1 -5
  48. package/src/components/payouts/list.tsx +11 -9
  49. package/src/components/payouts/portal/list.tsx +11 -9
  50. package/src/components/price/currency-select.tsx +28 -17
  51. package/src/components/price/form.tsx +135 -84
  52. package/src/components/price/upsell-select.tsx +10 -2
  53. package/src/components/price/upsell.tsx +7 -2
  54. package/src/components/pricing-table/actions.tsx +1 -5
  55. package/src/components/pricing-table/customer-settings.tsx +5 -1
  56. package/src/components/pricing-table/payment-settings.tsx +14 -4
  57. package/src/components/pricing-table/preview.tsx +9 -9
  58. package/src/components/pricing-table/price-item.tsx +6 -1
  59. package/src/components/pricing-table/product-item.tsx +6 -1
  60. package/src/components/pricing-table/product-settings.tsx +17 -4
  61. package/src/components/product/actions.tsx +1 -5
  62. package/src/components/product/create.tsx +1 -5
  63. package/src/components/product/cross-sell-select.tsx +5 -1
  64. package/src/components/product/cross-sell.tsx +7 -2
  65. package/src/components/product/features.tsx +13 -3
  66. package/src/components/product/form.tsx +38 -10
  67. package/src/components/progress-bar.tsx +1 -1
  68. package/src/components/refund/actions.tsx +1 -7
  69. package/src/components/refund/list.tsx +12 -17
  70. package/src/components/section/header.tsx +23 -12
  71. package/src/components/subscription/actions/cancel.tsx +22 -5
  72. package/src/components/subscription/actions/index.tsx +9 -10
  73. package/src/components/subscription/actions/pause.tsx +32 -6
  74. package/src/components/subscription/actions/slash-stake.tsx +5 -3
  75. package/src/components/subscription/description.tsx +12 -8
  76. package/src/components/subscription/items/index.tsx +30 -15
  77. package/src/components/subscription/items/usage-records.tsx +19 -5
  78. package/src/components/subscription/list.tsx +5 -7
  79. package/src/components/subscription/metrics.tsx +27 -12
  80. package/src/components/subscription/portal/actions.tsx +76 -70
  81. package/src/components/subscription/portal/cancel.tsx +10 -3
  82. package/src/components/subscription/portal/list.tsx +48 -26
  83. package/src/components/uploader.tsx +5 -13
  84. package/src/components/webhook/attempts.tsx +51 -16
  85. package/src/components/webhook/request-info.tsx +8 -6
  86. package/src/contexts/products.tsx +1 -1
  87. package/src/pages/admin/billing/invoices/detail.tsx +48 -12
  88. package/src/pages/admin/billing/subscriptions/detail.tsx +43 -11
  89. package/src/pages/admin/customers/customers/detail.tsx +53 -12
  90. package/src/pages/admin/customers/customers/index.tsx +6 -1
  91. package/src/pages/admin/developers/events/detail.tsx +36 -10
  92. package/src/pages/admin/developers/webhooks/detail.tsx +41 -11
  93. package/src/pages/admin/index.tsx +15 -2
  94. package/src/pages/admin/overview.tsx +107 -19
  95. package/src/pages/admin/payments/intents/detail.tsx +57 -13
  96. package/src/pages/admin/payments/payouts/detail.tsx +62 -14
  97. package/src/pages/admin/payments/refunds/detail.tsx +57 -13
  98. package/src/pages/admin/products/index.tsx +8 -2
  99. package/src/pages/admin/products/links/create.tsx +22 -4
  100. package/src/pages/admin/products/links/detail.tsx +42 -13
  101. package/src/pages/admin/products/passports/index.tsx +23 -4
  102. package/src/pages/admin/products/prices/actions.tsx +1 -6
  103. package/src/pages/admin/products/prices/detail.tsx +43 -11
  104. package/src/pages/admin/products/prices/list.tsx +7 -2
  105. package/src/pages/admin/products/pricing-tables/create.tsx +45 -12
  106. package/src/pages/admin/products/pricing-tables/detail.tsx +44 -13
  107. package/src/pages/admin/products/products/create.tsx +4 -1
  108. package/src/pages/admin/products/products/detail.tsx +72 -17
  109. package/src/pages/admin/settings/index.tsx +8 -1
  110. package/src/pages/admin/settings/payment-methods/index.tsx +84 -19
  111. package/src/pages/admin/settings/vault-config/edit-form.tsx +42 -28
  112. package/src/pages/admin/settings/vault-config/index.tsx +57 -10
  113. package/src/pages/customer/index.tsx +41 -15
  114. package/src/pages/customer/invoice/detail.tsx +63 -14
  115. package/src/pages/customer/invoice/past-due.tsx +11 -3
  116. package/src/pages/customer/payout/detail.tsx +56 -13
  117. package/src/pages/customer/recharge/account.tsx +80 -20
  118. package/src/pages/customer/recharge/subscription.tsx +86 -25
  119. package/src/pages/customer/refund/list.tsx +60 -24
  120. package/src/pages/customer/subscription/change-payment.tsx +13 -4
  121. package/src/pages/customer/subscription/change-plan.tsx +34 -7
  122. package/src/pages/customer/subscription/detail.tsx +86 -20
  123. package/src/pages/customer/subscription/embed.tsx +24 -4
  124. package/src/pages/home.tsx +26 -4
  125. package/src/pages/integrations/donations/edit-form.tsx +25 -9
  126. package/src/pages/integrations/donations/index.tsx +26 -9
  127. package/src/pages/integrations/donations/preview.tsx +59 -15
  128. package/src/pages/integrations/index.tsx +10 -1
  129. package/src/pages/integrations/overview.tsx +78 -17
  130. package/vite.config.ts +60 -30
@@ -134,12 +134,21 @@ export default function ProductDetail(props: { id: string }) {
134
134
  {t('admin.product.locked')}
135
135
  </Alert>
136
136
  )}
137
- <Stack className="page-header" direction="row" justifyContent="space-between" alignItems="center">
137
+ <Stack
138
+ className="page-header"
139
+ direction="row"
140
+ sx={{
141
+ justifyContent: 'space-between',
142
+ alignItems: 'center',
143
+ }}>
138
144
  <Stack
139
145
  direction="row"
140
- alignItems="center"
141
- sx={{ fontWeight: 'normal', cursor: 'pointer' }}
142
- onClick={() => goBackOrFallback('/admin/products')}>
146
+ onClick={() => goBackOrFallback('/admin/products')}
147
+ sx={{
148
+ alignItems: 'center',
149
+ fontWeight: 'normal',
150
+ cursor: 'pointer',
151
+ }}>
143
152
  <ArrowBackOutlined fontSize="small" sx={{ mr: 0.5, color: 'text.secondary' }} />
144
153
  <Typography variant="h6" sx={{ color: 'text.secondary', fontWeight: 'normal' }}>
145
154
  {t('admin.products')}
@@ -148,37 +157,64 @@ export default function ProductDetail(props: { id: string }) {
148
157
  <ProductActions data={data} onChange={onChange} variant="normal" />
149
158
  </Stack>
150
159
  <Box
151
- mt={4}
152
- mb={3}
153
160
  sx={{
161
+ mt: 4,
162
+ mb: 3,
154
163
  display: 'flex',
164
+
155
165
  gap: {
156
166
  xs: 2,
157
167
  sm: 2,
158
168
  md: 5,
159
169
  },
170
+
160
171
  flexWrap: 'wrap',
172
+
161
173
  flexDirection: {
162
174
  xs: 'column',
163
175
  sm: 'column',
164
176
  md: 'row',
165
177
  },
178
+
166
179
  alignItems: {
167
180
  xs: 'flex-start',
168
181
  sm: 'flex-start',
169
182
  md: 'center',
170
183
  },
171
184
  }}>
172
- <Stack direction="row" justifyContent="space-between" alignItems="center">
173
- <Stack direction="row" alignItems="center" spacing={1}>
185
+ <Stack
186
+ direction="row"
187
+ sx={{
188
+ justifyContent: 'space-between',
189
+ alignItems: 'center',
190
+ }}>
191
+ <Stack
192
+ direction="row"
193
+ spacing={1}
194
+ sx={{
195
+ alignItems: 'center',
196
+ }}>
174
197
  {data.images.length > 0 && (
175
198
  <Avatar src={data.images[0]} alt={data.name} variant="square" sx={{ width: '52px', height: '52px' }} />
176
199
  )}
177
- <Stack direction="column" alignItems="flex-start" justifyContent="space-around">
178
- <Typography variant="h2" color="text.primary">
200
+ <Stack
201
+ direction="column"
202
+ sx={{
203
+ alignItems: 'flex-start',
204
+ justifyContent: 'space-around',
205
+ }}>
206
+ <Typography
207
+ variant="h2"
208
+ sx={{
209
+ color: 'text.primary',
210
+ }}>
179
211
  {data.name}
180
212
  </Typography>
181
- <Typography variant="subtitle1" color="text.lighter">
213
+ <Typography
214
+ variant="subtitle1"
215
+ sx={{
216
+ color: 'text.lighter',
217
+ }}>
182
218
  {formatProductPrice(data as any, defaultCurrency, locale)}
183
219
  </Typography>
184
220
  </Stack>
@@ -186,18 +222,22 @@ export default function ProductDetail(props: { id: string }) {
186
222
  </Stack>
187
223
  <Stack
188
224
  className="section-body"
189
- justifyContent="flex-start"
190
- flexWrap="wrap"
191
225
  sx={{
226
+ justifyContent: 'flex-start',
227
+ flexWrap: 'wrap',
228
+
192
229
  'hr.MuiDivider-root:last-child': {
193
230
  display: 'none',
194
231
  },
232
+
195
233
  flexDirection: {
196
234
  xs: 'column',
197
235
  sm: 'column',
198
236
  md: 'row',
199
237
  },
238
+
200
239
  alignItems: 'flex-start',
240
+
201
241
  gap: {
202
242
  xs: 1,
203
243
  sm: 1,
@@ -210,7 +250,6 @@ export default function ProductDetail(props: { id: string }) {
210
250
  </Box>
211
251
  <Divider />
212
252
  </Box>
213
-
214
253
  <Stack
215
254
  sx={{
216
255
  flexDirection: {
@@ -239,7 +278,14 @@ export default function ProductDetail(props: { id: string }) {
239
278
  },
240
279
  },
241
280
  }}>
242
- <Box flex={1} className="payment-link-column-1" sx={{ gap: 2.5, display: 'flex', flexDirection: 'column' }}>
281
+ <Box
282
+ className="payment-link-column-1"
283
+ sx={{
284
+ flex: 1,
285
+ gap: 2.5,
286
+ display: 'flex',
287
+ flexDirection: 'column',
288
+ }}>
243
289
  <Box className="section" sx={{ containerType: 'inline-size' }}>
244
290
  <SectionHeader title={t('admin.details')}>
245
291
  <Button
@@ -295,7 +341,11 @@ export default function ProductDetail(props: { id: string }) {
295
341
  sx={{ width: '160px', height: '160px' }}
296
342
  />
297
343
  ) : (
298
- <Typography variant="body2" color="text.lighter">
344
+ <Typography
345
+ variant="body2"
346
+ sx={{
347
+ color: 'text.lighter',
348
+ }}>
299
349
  {t('empty.image')}
300
350
  </Typography>
301
351
  )
@@ -350,7 +400,12 @@ export default function ProductDetail(props: { id: string }) {
350
400
  <Box className="section">
351
401
  <SectionHeader
352
402
  title={
353
- <Stack direction="row" alignItems="center" spacing={1}>
403
+ <Stack
404
+ direction="row"
405
+ spacing={1}
406
+ sx={{
407
+ alignItems: 'center',
408
+ }}>
354
409
  <Typography
355
410
  variant="h3"
356
411
  sx={{
@@ -41,7 +41,14 @@ export default function SettingsIndex() {
41
41
 
42
42
  return (
43
43
  <>
44
- <Stack direction="row" alignItems="flex-start" justifyContent="end" flexWrap="wrap" spacing={1}>
44
+ <Stack
45
+ direction="row"
46
+ spacing={1}
47
+ sx={{
48
+ alignItems: 'flex-start',
49
+ justifyContent: 'end',
50
+ flexWrap: 'wrap',
51
+ }}>
45
52
  {/* @ts-ignore */}
46
53
  <Tabs
47
54
  // @ts-ignore
@@ -99,7 +99,13 @@ function EditApiHost({ method }: { method: TPaymentMethodExpanded }) {
99
99
  <InfoRow
100
100
  label={t('admin.paymentMethod.arcblock.api_host.label')}
101
101
  value={
102
- <Stack direction="row" alignItems="center" spacing={1} flexWrap="wrap">
102
+ <Stack
103
+ direction="row"
104
+ spacing={1}
105
+ sx={{
106
+ alignItems: 'center',
107
+ flexWrap: 'wrap',
108
+ }}>
103
109
  {edit ? (
104
110
  <>
105
111
  <TextField
@@ -118,12 +124,14 @@ function EditApiHost({ method }: { method: TPaymentMethodExpanded }) {
118
124
  sx={{ flex: 1 }}
119
125
  placeholder={t('admin.paymentMethod.arcblock.api_host.tip')}
120
126
  error={!!error}
121
- InputProps={{
122
- endAdornment: error ? (
123
- <Typography color="error" sx={{ whiteSpace: 'nowrap' }}>
124
- {error}
125
- </Typography>
126
- ) : undefined,
127
+ slotProps={{
128
+ input: {
129
+ endAdornment: error ? (
130
+ <Typography color="error" sx={{ whiteSpace: 'nowrap' }}>
131
+ {error}
132
+ </Typography>
133
+ ) : undefined,
134
+ },
127
135
  }}
128
136
  />
129
137
  <IconButton onClick={handleSave} size="small">
@@ -168,7 +176,12 @@ function RpcStatus({ method }: { method: TPaymentMethodExpanded }) {
168
176
  return (
169
177
  <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>
170
178
  <CircularProgress size={14} />
171
- <Typography color="text.secondary">{t('admin.paymentMethod.evm.checking')}</Typography>
179
+ <Typography
180
+ sx={{
181
+ color: 'text.secondary',
182
+ }}>
183
+ {t('admin.paymentMethod.evm.checking')}
184
+ </Typography>
172
185
  </Box>
173
186
  );
174
187
  }
@@ -176,7 +189,12 @@ function RpcStatus({ method }: { method: TPaymentMethodExpanded }) {
176
189
  return (
177
190
  <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>
178
191
  <CheckCircleOutline sx={{ fontSize: 14 }} color="success" />
179
- <Typography color="text.secondary">{t('admin.paymentMethod.evm.connected')}</Typography>
192
+ <Typography
193
+ sx={{
194
+ color: 'text.secondary',
195
+ }}>
196
+ {t('admin.paymentMethod.evm.connected')}
197
+ </Typography>
180
198
  </Box>
181
199
  );
182
200
  }
@@ -237,7 +255,12 @@ function Balance({
237
255
  <InfoRow label={t('admin.paymentMethod.props.explorer_host')} value={explorerHost} />
238
256
  <InfoRow
239
257
  label={
240
- <Box display="flex" alignItems="center" gap={0.5}>
258
+ <Box
259
+ sx={{
260
+ display: 'flex',
261
+ alignItems: 'center',
262
+ gap: 0.5,
263
+ }}>
241
264
  {t('admin.paymentMethod.props.balance')}
242
265
  {['ethereum', 'base'].includes(method.type) && (
243
266
  <Tooltip
@@ -255,8 +278,8 @@ function Balance({
255
278
  value={
256
279
  <Stack
257
280
  direction="row"
258
- alignItems="center"
259
281
  sx={{
282
+ alignItems: 'center',
260
283
  display: 'inline-flex',
261
284
  borderRadius: 1,
262
285
  }}>
@@ -302,8 +325,19 @@ function PaymentMethodSkeleton() {
302
325
  return (
303
326
  <>
304
327
  {[1].map((group) => (
305
- <Box key={group} mt={3}>
306
- <Stack direction="row" alignItems="center" mb={1} flexWrap="wrap" gap={1}>
328
+ <Box
329
+ key={group}
330
+ sx={{
331
+ mt: 3,
332
+ }}>
333
+ <Stack
334
+ direction="row"
335
+ sx={{
336
+ alignItems: 'center',
337
+ mb: 1,
338
+ flexWrap: 'wrap',
339
+ gap: 1,
340
+ }}>
307
341
  <Skeleton variant="text" width={120} height={32} />
308
342
  </Stack>
309
343
  <Box
@@ -314,8 +348,19 @@ function PaymentMethodSkeleton() {
314
348
  borderColor: 'divider',
315
349
  mb: 1,
316
350
  }}>
317
- <Stack direction="row" justifyContent="space-between" alignItems="center">
318
- <Stack direction="row" spacing={2} alignItems="center" sx={{ flex: 1 }}>
351
+ <Stack
352
+ direction="row"
353
+ sx={{
354
+ justifyContent: 'space-between',
355
+ alignItems: 'center',
356
+ }}>
357
+ <Stack
358
+ direction="row"
359
+ spacing={2}
360
+ sx={{
361
+ alignItems: 'center',
362
+ flex: 1,
363
+ }}>
319
364
  <Skeleton variant="rectangular" width={40} height={40} />
320
365
  <Box sx={{ flex: 1 }}>
321
366
  <Skeleton variant="text" width="20%" height={24} />
@@ -419,8 +464,19 @@ export default function PaymentMethods() {
419
464
  return (
420
465
  <>
421
466
  {Object.keys(groups).map((x) => (
422
- <Box key={x} mt={3}>
423
- <Stack direction="row" alignItems="center" mb={1} flexWrap="wrap" gap={1}>
467
+ <Box
468
+ key={x}
469
+ sx={{
470
+ mt: 3,
471
+ }}>
472
+ <Stack
473
+ direction="row"
474
+ sx={{
475
+ alignItems: 'center',
476
+ mb: 1,
477
+ flexWrap: 'wrap',
478
+ gap: 1,
479
+ }}>
424
480
  <Typography variant="subtitle2" sx={{ textTransform: 'uppercase' }}>
425
481
  {x}
426
482
  </Typography>
@@ -453,8 +509,17 @@ export default function PaymentMethods() {
453
509
  expanded={expandedId === method.id}
454
510
  onChange={(value, expanded) => handleExpand(value, expanded)}
455
511
  lazy={false}>
456
- <Grid container spacing={2} mt={0}>
457
- <Grid item xs={12} md={6}>
512
+ <Grid
513
+ container
514
+ spacing={2}
515
+ sx={{
516
+ mt: 0,
517
+ }}>
518
+ <Grid
519
+ size={{
520
+ xs: 12,
521
+ md: 6,
522
+ }}>
458
523
  <InfoRow label={t('admin.paymentMethod.props.type')} value={method.type} />
459
524
  {method.type === 'arcblock' && <EditApiHost method={method} />}
460
525
  {['ethereum', 'base'].includes(method.type) && <RpcStatus method={method} />}
@@ -109,7 +109,12 @@ function EditForm({ item, onClose, onSuccess, isOwner }: EditFormProps) {
109
109
  if (!item) return null;
110
110
 
111
111
  const renderLabelWithTooltip = (label: string, tooltip: string) => (
112
- <Stack direction="row" spacing={1} alignItems="center">
112
+ <Stack
113
+ direction="row"
114
+ spacing={1}
115
+ sx={{
116
+ alignItems: 'center',
117
+ }}>
113
118
  <Typography variant="subtitle2">{label}</Typography>
114
119
  <Tooltip title={tooltip}>
115
120
  <HelpOutlineIcon fontSize="small" sx={{ color: 'text.secondary' }} />
@@ -149,7 +154,12 @@ function EditForm({ item, onClose, onSuccess, isOwner }: EditFormProps) {
149
154
 
150
155
  <Stack spacing={3}>
151
156
  {/* 启用设置 */}
152
- <Stack direction="row" alignItems="center" gap={2}>
157
+ <Stack
158
+ direction="row"
159
+ sx={{
160
+ alignItems: 'center',
161
+ gap: 2,
162
+ }}>
153
163
  <Typography variant="subtitle1">{t('admin.vaultConfig.enableVault')}</Typography>
154
164
  <Controller
155
165
  name="enabled"
@@ -195,21 +205,23 @@ function EditForm({ item, onClose, onSuccess, isOwner }: EditFormProps) {
195
205
  type="number"
196
206
  error={!!errors.deposit_threshold}
197
207
  helperText={getDepositHelperText(errors.deposit_threshold)}
198
- InputProps={{
199
- endAdornment: (
200
- <InputAdornment position="end">
201
- <Box sx={{ display: 'flex', alignItems: 'center', ml: 1 }}>
202
- <Currency logo={item.logo} name={item.symbol} />
203
- </Box>
204
- </InputAdornment>
205
- ),
206
- inputProps: {
207
- min: 0,
208
- max: MAX_SAFE_AMOUNT,
209
- },
210
- }}
211
208
  sx={{ mt: 1 }}
212
209
  placeholder={VAULT_DEPOSIT_THRESHOLD}
210
+ slotProps={{
211
+ input: {
212
+ endAdornment: (
213
+ <InputAdornment position="end">
214
+ <Box sx={{ display: 'flex', alignItems: 'center', ml: 1 }}>
215
+ <Currency logo={item.logo} name={item.symbol} />
216
+ </Box>
217
+ </InputAdornment>
218
+ ),
219
+ inputProps: {
220
+ min: 0,
221
+ max: MAX_SAFE_AMOUNT,
222
+ },
223
+ },
224
+ }}
213
225
  />
214
226
  )}
215
227
  />
@@ -246,21 +258,23 @@ function EditForm({ item, onClose, onSuccess, isOwner }: EditFormProps) {
246
258
  type="number"
247
259
  error={!!errors.buffer_threshold}
248
260
  helperText={getBufferHelperText(errors.buffer_threshold)}
249
- InputProps={{
250
- endAdornment: (
251
- <InputAdornment position="end">
252
- <Box sx={{ display: 'flex', alignItems: 'center', ml: 1 }}>
253
- <Currency logo={item.logo} name={item.symbol} />
254
- </Box>
255
- </InputAdornment>
256
- ),
257
- inputProps: {
258
- min: 0,
259
- max: MAX_SAFE_AMOUNT,
260
- },
261
- }}
262
261
  sx={{ mt: 1 }}
263
262
  placeholder={VAULT_BUFFER_THRESHOLD}
263
+ slotProps={{
264
+ input: {
265
+ endAdornment: (
266
+ <InputAdornment position="end">
267
+ <Box sx={{ display: 'flex', alignItems: 'center', ml: 1 }}>
268
+ <Currency logo={item.logo} name={item.symbol} />
269
+ </Box>
270
+ </InputAdornment>
271
+ ),
272
+ inputProps: {
273
+ min: 0,
274
+ max: MAX_SAFE_AMOUNT,
275
+ },
276
+ },
277
+ }}
264
278
  />
265
279
  )}
266
280
  />
@@ -110,12 +110,21 @@ export default function VaultConfig() {
110
110
  return '-';
111
111
  }
112
112
  return (
113
- <Stack direction="row" spacing={1} alignItems="center">
113
+ <Stack
114
+ direction="row"
115
+ spacing={1}
116
+ sx={{
117
+ alignItems: 'center',
118
+ }}>
114
119
  <Avatar src={item.logo} alt={item.symbol} style={{ width: 24, height: 24 }} />
115
120
  <Box>
116
121
  <Typography variant="body2">{item.symbol}</Typography>
117
122
  {!isMobile && (
118
- <Typography variant="caption" color="text.secondary">
123
+ <Typography
124
+ variant="caption"
125
+ sx={{
126
+ color: 'text.secondary',
127
+ }}>
119
128
  {item.payment_method?.name}
120
129
  </Typography>
121
130
  )}
@@ -153,7 +162,12 @@ export default function VaultConfig() {
153
162
  }
154
163
  const enabled = item.vault_config?.enabled;
155
164
  return (
156
- <Stack direction="row" spacing={1} alignItems="center">
165
+ <Stack
166
+ direction="row"
167
+ spacing={1}
168
+ sx={{
169
+ alignItems: 'center',
170
+ }}>
157
171
  <Box
158
172
  sx={{
159
173
  width: 8,
@@ -181,7 +195,11 @@ export default function VaultConfig() {
181
195
  }
182
196
  if (!item?.vault_config) {
183
197
  return (
184
- <Typography variant="body2" color="text.secondary">
198
+ <Typography
199
+ variant="body2"
200
+ sx={{
201
+ color: 'text.secondary',
202
+ }}>
185
203
  {t('admin.vaultConfig.notConfig')}
186
204
  </Typography>
187
205
  );
@@ -194,7 +212,12 @@ export default function VaultConfig() {
194
212
  },
195
213
  customHeadLabelRender: () => {
196
214
  return (
197
- <Box display="flex" alignItems="center" gap={1}>
215
+ <Box
216
+ sx={{
217
+ display: 'flex',
218
+ alignItems: 'center',
219
+ gap: 1,
220
+ }}>
198
221
  {t('admin.vaultConfig.depositThreshold')}
199
222
  <Tooltip title={t('admin.vaultConfig.depositThresholdHelp')}>
200
223
  <HelpOutline fontSize="small" sx={{ color: 'text.lighter' }} />
@@ -215,7 +238,11 @@ export default function VaultConfig() {
215
238
  }
216
239
  if (!item?.vault_config) {
217
240
  return (
218
- <Typography variant="body2" color="text.secondary">
241
+ <Typography
242
+ variant="body2"
243
+ sx={{
244
+ color: 'text.secondary',
245
+ }}>
219
246
  {t('admin.vaultConfig.notConfig')}
220
247
  </Typography>
221
248
  );
@@ -228,7 +255,12 @@ export default function VaultConfig() {
228
255
  },
229
256
  customHeadLabelRender: () => {
230
257
  return (
231
- <Box display="flex" alignItems="center" gap={1}>
258
+ <Box
259
+ sx={{
260
+ display: 'flex',
261
+ alignItems: 'center',
262
+ gap: 1,
263
+ }}>
232
264
  {t('admin.vaultConfig.bufferThreshold')}
233
265
  <Tooltip title={t('admin.vaultConfig.bufferThresholdHelp')}>
234
266
  <HelpOutline fontSize="small" sx={{ color: 'text.lighter' }} />
@@ -317,7 +349,14 @@ export default function VaultConfig() {
317
349
  return (
318
350
  <Empty>
319
351
  <Typography variant="body1">{t('admin.vaultConfig.notConfigured')}</Typography>
320
- <Typography variant="body2" mt={1} sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>
352
+ <Typography
353
+ variant="body2"
354
+ sx={{
355
+ mt: 1,
356
+ display: 'flex',
357
+ alignItems: 'center',
358
+ gap: 0.5,
359
+ }}>
321
360
  {parsedParts.map((part: { type: 'text' | 'marked'; content: string }) =>
322
361
  part.type === 'text' ? (
323
362
  part.content
@@ -337,8 +376,16 @@ export default function VaultConfig() {
337
376
 
338
377
  return (
339
378
  <Root>
340
- <Box mb={2}>
341
- <Typography variant="body2" color="text.secondary" mt={1}>
379
+ <Box
380
+ sx={{
381
+ mb: 2,
382
+ }}>
383
+ <Typography
384
+ variant="body2"
385
+ sx={{
386
+ color: 'text.secondary',
387
+ mt: 1,
388
+ }}>
342
389
  {t('admin.vaultConfig.description')}
343
390
  <Box
344
391
  component="a"