@huma-finance/widgets 0.0.36 → 0.0.37

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 (178) hide show
  1. package/.env.example +2 -2
  2. package/.eslintignore +2 -2
  3. package/.eslintrc.js +64 -64
  4. package/.prettierignore +4 -4
  5. package/.prettierrc.js +16 -16
  6. package/API.md +332 -332
  7. package/LICENSE +660 -660
  8. package/README.md +48 -48
  9. package/babel.config.js +15 -15
  10. package/config-overrides.js +9 -9
  11. package/cosmos.config.json +7 -7
  12. package/cypress/e2e/01-invoice-factoring-borrow.test.ts +62 -62
  13. package/cypress/support/e2e.ts +76 -76
  14. package/cypress/support/ethereum.ts +142 -142
  15. package/cypress/tsconfig.json +9 -9
  16. package/cypress/utils/index.ts +54 -54
  17. package/cypress.config.ts +20 -20
  18. package/dist/cjs/index.cjs +134 -134
  19. package/dist/cjs/index.cjs.map +1 -1
  20. package/dist/index.d.ts +223 -223
  21. package/dist/index.js +134 -134
  22. package/dist/index.js.map +1 -1
  23. package/jsdoc2md.json +20 -20
  24. package/package.json +4 -4
  25. package/public/index.html +40 -40
  26. package/public/manifest.json +25 -25
  27. package/public/robots.txt +3 -3
  28. package/rollup.config.js +81 -81
  29. package/src/components/Activity.tsx +128 -128
  30. package/src/components/ApolloWrapper.tsx +15 -15
  31. package/src/components/ApproveAllowanceModal.tsx +138 -138
  32. package/src/components/BottomButton.tsx +33 -33
  33. package/src/components/ChainNotSupportedModal.tsx +33 -33
  34. package/src/components/ChooseAmountModal.tsx +322 -322
  35. package/src/components/ConfirmTransferModal.tsx +153 -153
  36. package/src/components/CreditLine/approve/1-ApproveAllowance.tsx +34 -34
  37. package/src/components/CreditLine/approve/2-Success.tsx +43 -43
  38. package/src/components/CreditLine/approve/index.tsx +85 -85
  39. package/src/components/CreditLine/borrow/1-Evaluation.tsx +157 -157
  40. package/src/components/CreditLine/borrow/2-ChooseAmount.tsx +74 -74
  41. package/src/components/CreditLine/borrow/3-ApproveAllowance.tsx +29 -29
  42. package/src/components/CreditLine/borrow/4-Transfer.tsx +34 -34
  43. package/src/components/CreditLine/borrow/5-Success.tsx +38 -38
  44. package/src/components/CreditLine/borrow/6-Notifications.tsx +10 -10
  45. package/src/components/CreditLine/borrow/index.tsx +136 -136
  46. package/src/components/CreditLine/payment/1-ChooseAmount.tsx +67 -67
  47. package/src/components/CreditLine/payment/2-ApproveAllowance.tsx +23 -23
  48. package/src/components/CreditLine/payment/3-Transfer.tsx +34 -34
  49. package/src/components/CreditLine/payment/4-Success.tsx +39 -39
  50. package/src/components/CreditLine/payment/index.tsx +94 -94
  51. package/src/components/ErrorModal.tsx +136 -136
  52. package/src/components/Factoring/FactoredList.tsx +143 -143
  53. package/src/components/Factoring/UpcomingList.tsx +90 -90
  54. package/src/components/Factoring/index.ts +2 -2
  55. package/src/components/HumaLoading.tsx +68 -68
  56. package/src/components/HumaSnackBar.tsx +60 -60
  57. package/src/components/HumaTable.tsx +203 -203
  58. package/src/components/InvoiceFactoring/borrow/1-Evaluation.tsx +49 -49
  59. package/src/components/InvoiceFactoring/borrow/2-ChooseAmount.tsx +88 -88
  60. package/src/components/InvoiceFactoring/borrow/3-ConfirmTransfer.tsx +37 -37
  61. package/src/components/InvoiceFactoring/borrow/4-ApproveNFT.tsx +55 -55
  62. package/src/components/InvoiceFactoring/borrow/5-Transfer.tsx +34 -34
  63. package/src/components/InvoiceFactoring/borrow/6-Success.tsx +20 -20
  64. package/src/components/InvoiceFactoring/borrow/index.tsx +94 -94
  65. package/src/components/InvoiceFactoring/payment/1-ChooseAmount.tsx +67 -67
  66. package/src/components/InvoiceFactoring/payment/2-ApproveAllowance.tsx +23 -23
  67. package/src/components/InvoiceFactoring/payment/3-Transfer.tsx +34 -34
  68. package/src/components/InvoiceFactoring/payment/4-Success.tsx +23 -23
  69. package/src/components/InvoiceFactoring/payment/index.tsx +86 -86
  70. package/src/components/Lend/supply/1-Evaluation/EvaluationEA.tsx +90 -90
  71. package/src/components/Lend/supply/1-Evaluation/EvaluationKYC.tsx +319 -319
  72. package/src/components/Lend/supply/1-Evaluation/index.tsx +31 -31
  73. package/src/components/Lend/supply/2-ChooseAmount.tsx +69 -69
  74. package/src/components/Lend/supply/3-ApproveAllowance.tsx +25 -25
  75. package/src/components/Lend/supply/4-Transfer.tsx +32 -32
  76. package/src/components/Lend/supply/5-Success.tsx +60 -60
  77. package/src/components/Lend/supply/6-Notifications.tsx +10 -10
  78. package/src/components/Lend/supply/index.tsx +167 -167
  79. package/src/components/Lend/withdraw/1-CheckWithdrawble.tsx +73 -73
  80. package/src/components/Lend/withdraw/2-ChooseAmount.tsx +50 -50
  81. package/src/components/Lend/withdraw/3-Transfer.tsx +32 -32
  82. package/src/components/Lend/withdraw/4-Success.tsx +49 -49
  83. package/src/components/Lend/withdraw/index.tsx +101 -101
  84. package/src/components/LoadingModal.tsx +49 -49
  85. package/src/components/Notifi/NotifiSubscriptionModal.tsx +268 -268
  86. package/src/components/StreamFactoring/borrow/1-Evaluation.tsx +55 -55
  87. package/src/components/StreamFactoring/borrow/2-ChooseAmount.tsx +127 -127
  88. package/src/components/StreamFactoring/borrow/3-ConfirmTransfer.tsx +42 -42
  89. package/src/components/StreamFactoring/borrow/4-ApproveAllowance.tsx +33 -33
  90. package/src/components/StreamFactoring/borrow/5-Permit.tsx +144 -144
  91. package/src/components/StreamFactoring/borrow/6-Transfer.tsx +37 -37
  92. package/src/components/StreamFactoring/borrow/7-Success.tsx +20 -20
  93. package/src/components/StreamFactoring/borrow/index.tsx +94 -94
  94. package/src/components/StreamFactoring/payment/ChooseAmount.tsx +54 -54
  95. package/src/components/StreamFactoring/payment/Success.tsx +23 -23
  96. package/src/components/StreamFactoring/payment/Transfer.tsx +34 -34
  97. package/src/components/StreamFactoring/payment/index.tsx +66 -66
  98. package/src/components/SuperfluidFactoring/SuperfluidFactoredList.tsx +69 -69
  99. package/src/components/SuperfluidFactoring/SuperfluidUpcomingList.tsx +166 -166
  100. package/src/components/SuperfluidFactoring/index.tsx +85 -85
  101. package/src/components/TxDoneModal.tsx +85 -85
  102. package/src/components/TxSendModal.tsx +59 -59
  103. package/src/components/ViewOnExplorer.tsx +23 -23
  104. package/src/components/WidgetWrapper.tsx +74 -74
  105. package/src/components/WrapperModal.tsx +54 -54
  106. package/src/components/buttons/TableActionButton.tsx +36 -36
  107. package/src/components/buttons/index.ts +1 -1
  108. package/src/components/humaModal/HumaModal.tsx +68 -68
  109. package/src/components/humaModal/HumaModalHeader.tsx +70 -70
  110. package/src/components/humaModal/index.tsx +2 -2
  111. package/src/components/icons/approve-lender.svg +58 -58
  112. package/src/components/icons/auto-payback.svg +139 -139
  113. package/src/components/icons/check-circle.svg +3 -3
  114. package/src/components/icons/check-green.svg +3 -3
  115. package/src/components/icons/check.svg +10 -10
  116. package/src/components/icons/donut.svg +904 -904
  117. package/src/components/icons/ellipse.svg +3 -3
  118. package/src/components/icons/huma-full.svg +22 -22
  119. package/src/components/icons/huma.svg +15 -15
  120. package/src/components/icons/index.tsx +93 -93
  121. package/src/components/icons/loader.svg +229 -229
  122. package/src/components/icons/metamask.svg +31 -31
  123. package/src/components/icons/polygon.svg +16 -16
  124. package/src/components/icons/receipt.svg +3 -3
  125. package/src/components/icons/separator.svg +3 -3
  126. package/src/components/icons/sorry.svg +17 -17
  127. package/src/components/icons/usdc.svg +5 -5
  128. package/src/components/icons/wallet-connect.svg +11 -11
  129. package/src/components/images/index.ts +3 -3
  130. package/src/cosmos/CreditLineBorrow.fixture.tsx +86 -86
  131. package/src/cosmos/CreditLinePayment.fixture.tsx +50 -50
  132. package/src/cosmos/InvoiceFactoringBorrow.fixture.tsx +111 -111
  133. package/src/cosmos/InvoiceFactoringPayment.fixture.tsx +67 -67
  134. package/src/cosmos/LendSupply.fixture.tsx +75 -75
  135. package/src/cosmos/LendWithdraw.fixture.tsx +43 -43
  136. package/src/cosmos/SDKTesting.fixture.tsx +616 -616
  137. package/src/cosmos/SuperfluidFactoringBorrow.fixture.tsx +15 -15
  138. package/src/cosmos/WalletWrapper.tsx +52 -52
  139. package/src/cosmos/abis/InvoiceNFT.json +644 -644
  140. package/src/cosmos/abis/ReceivableFactoringPool.json +1529 -1529
  141. package/src/cosmos/utils/env.ts +6 -6
  142. package/src/cosmos/utils/index.ts +169 -169
  143. package/src/fonts/Recoleta/Recoleta-Black.otf +0 -0
  144. package/src/fonts/Recoleta/Recoleta-Bold.otf +0 -0
  145. package/src/fonts/Recoleta/Recoleta-Light.otf +0 -0
  146. package/src/fonts/Recoleta/Recoleta-Medium.otf +0 -0
  147. package/src/fonts/Recoleta/Recoleta-Regular.otf +0 -0
  148. package/src/fonts/Recoleta/Recoleta-RegularDEMO.otf +0 -0
  149. package/src/fonts/Recoleta/Recoleta-SemiBold.otf +0 -0
  150. package/src/fonts/Recoleta/Recoleta-Thin.otf +0 -0
  151. package/src/hooks/useEA.ts +53 -53
  152. package/src/hooks/useElementDimensions.ts +30 -30
  153. package/src/hooks/useNotifi.ts +71 -71
  154. package/src/hooks/useRedux.ts +6 -6
  155. package/src/index.css +61 -61
  156. package/src/index.tsx +283 -283
  157. package/src/react-app-env.d.ts +1 -1
  158. package/src/reportWebVitals.ts +15 -15
  159. package/src/setupTests.ts +6 -6
  160. package/src/store/index.ts +27 -27
  161. package/src/store/widgets.reducers.ts +120 -120
  162. package/src/store/widgets.selectors.ts +3 -3
  163. package/src/store/widgets.store.ts +55 -55
  164. package/src/theme/breakpoints.ts +10 -10
  165. package/src/theme/components.ts +70 -70
  166. package/src/theme/coreThemeConstants.ts +29 -29
  167. package/src/theme/cssMixins.ts +92 -92
  168. package/src/theme/hooks/useGetSizes.ts +31 -31
  169. package/src/theme/index.ts +24 -24
  170. package/src/theme/palette.ts +150 -150
  171. package/src/theme/shape.ts +7 -7
  172. package/src/theme/theme.types.ts +80 -80
  173. package/src/theme/typography.ts +117 -117
  174. package/src/utilTypes.d.ts +30 -30
  175. package/src/utils/env.ts +10 -10
  176. package/tsconfig.build.json +7 -7
  177. package/tsconfig.json +32 -32
  178. package/webpack.cosmos.js +54 -54
package/src/index.tsx CHANGED
@@ -1,283 +1,283 @@
1
- import './index.css'
2
-
3
- import { JsonRpcProvider } from '@ethersproject/providers'
4
- import {
5
- Provider as Web3Provider,
6
- ProviderProps as Web3Props,
7
- supportedChainId,
8
- } from '@huma-finance/shared'
9
- import { ThemeProvider } from '@mui/material'
10
- import { Provider as Eip1193Provider } from '@web3-react/types'
11
- import { Provider as AtomProvider } from 'jotai'
12
- import { useCallback, useEffect, useState } from 'react'
13
- import { Provider as ReduxProvider } from 'react-redux'
14
-
15
- import { useWeb3React } from '@web3-react/core'
16
- import { ChainNotSupportedModal } from './components/ChainNotSupportedModal'
17
- import {
18
- CreditLineApprove,
19
- CreditLineApproveProps,
20
- } from './components/CreditLine/approve'
21
- import {
22
- CreditLineBorrow,
23
- CreditLineBorrowProps,
24
- } from './components/CreditLine/borrow'
25
- import {
26
- CreditLinePayment,
27
- CreditLinePaymentProps,
28
- } from './components/CreditLine/payment'
29
- import {
30
- InvoiceFactoringBorrow,
31
- InvoiceFactoringBorrowProps,
32
- } from './components/InvoiceFactoring/borrow'
33
- import {
34
- InvoiceFactoringPayment,
35
- InvoiceFactoringPaymentProps,
36
- } from './components/InvoiceFactoring/payment'
37
- import { LendSupply, LendSupplyProps } from './components/Lend/supply'
38
- import { LendWithdraw, LendWithdrawProps } from './components/Lend/withdraw'
39
- import { SuperfluidFactoring } from './components/SuperfluidFactoring'
40
- import { store } from './store'
41
- import { themeHuma } from './theme'
42
- import { WCProps } from './utilTypes'
43
-
44
- /**
45
- * Mapping of your JSON-RPC connections indexed by chainId
46
- * @typedef {Object} JsonRpcConnectionMap
47
- * @property {Object.<number, string|Array<string>|JsonRpcProvider|Array<JsonRpcProvider>>} chainId Chain id to map the JSON-RPC URL/URLs or JsonRpcProvider/JsonRpcProviders
48
- */
49
- type JsonRpcConnectionMap = {
50
- [chainId: number]: string | string[] | JsonRpcProvider | JsonRpcProvider[]
51
- }
52
-
53
- /**
54
- * Object representing the props passed to web3 provider
55
- * @typedef {Object} WidgetProps
56
- * @property {desiredChainId|undefined} desiredChainId Optional desired chain id, will trigger the switch network action if different from the current chain id
57
- * @property {JsonRpcConnectionMap|undefined} jsonRpcUrlMap Optional mapping of your JSON-RPC connections indexed by chainId
58
- * @property {Eip1193Provider|JsonRpcProviderl} provider EIP-1193 provider or JsonRpc Provider
59
- */
60
- type WidgetProps = {
61
- handleClose?: () => void
62
- desiredChainId?: number
63
- jsonRpcUrlMap?: JsonRpcConnectionMap
64
- provider: Eip1193Provider | JsonRpcProvider
65
- }
66
-
67
- function Widget(props: WCProps<WidgetProps>) {
68
- const { children } = props
69
- const { chainId } = useWeb3React()
70
-
71
- const chainSupported = !!supportedChainId(chainId)
72
- const [chainNotSupportedOpen, setChainNotSupportedOpen] = useState(false)
73
-
74
- useEffect(() => {
75
- if (chainSupported) {
76
- setChainNotSupportedOpen(false)
77
- } else {
78
- setChainNotSupportedOpen(true)
79
- }
80
- }, [chainSupported])
81
-
82
- const handleCloseCallback = useCallback(() => {
83
- setChainNotSupportedOpen(false)
84
- }, [])
85
-
86
- if (!chainSupported) {
87
- return (
88
- <ThemeProvider theme={themeHuma}>
89
- <ReduxProvider store={store}>
90
- <ChainNotSupportedModal
91
- isOpen={chainNotSupportedOpen}
92
- handleClose={handleCloseCallback}
93
- />
94
- </ReduxProvider>
95
- </ThemeProvider>
96
- )
97
- }
98
-
99
- return (
100
- <ThemeProvider theme={themeHuma}>
101
- <ReduxProvider store={store}>
102
- <Web3Provider {...(props as Web3Props)}>
103
- <AtomProvider>{children}</AtomProvider>
104
- </Web3Provider>
105
- </ReduxProvider>
106
- </ThemeProvider>
107
- )
108
- }
109
-
110
- /**
111
- * Invoice factoring pool borrow widget props
112
- * @typedef {Object} InvoiceFactoringBorrowWidgetProps
113
- * @property {InvoiceFactoringBorrowProps} InvoiceFactoringBorrowProps - Invoice factoring pool borrow props.
114
- * @property {WidgetProps} WidgetProps - Widget general props.
115
- */
116
- type InvoiceFactoringBorrowWidgetProps = InvoiceFactoringBorrowProps &
117
- WidgetProps
118
-
119
- /**
120
- * Invoice factoring borrow widget
121
- *
122
- * @param {InvoiceFactoringBorrowWidgetProps} props - The invoice factoring pool borrow widget props.
123
- * @returns Invoice factoring pool borrow widget component
124
- */
125
- export function InvoiceFactoringBorrowWidget(
126
- props: InvoiceFactoringBorrowWidgetProps,
127
- ) {
128
- return (
129
- <Widget {...props}>
130
- <InvoiceFactoringBorrow {...props} />
131
- </Widget>
132
- )
133
- }
134
-
135
- /**
136
- * Invoice factoring pool payment widget props
137
- * @typedef {Object} InvoiceFactoringPaymentWidgetProps
138
- * @property {InvoiceFactoringPaymentProps} InvoiceFactoringPaymentProps - Invoice factoring pool payment props.
139
- * @property {WidgetProps} WidgetProps - Widget general props.
140
- */
141
- type InvoiceFactoringPaymentWidgetProps = InvoiceFactoringPaymentProps &
142
- WidgetProps
143
-
144
- /**
145
- * Invoice factoring payment widget
146
- *
147
- * @param {InvoiceFactoringPaymentWidgetProps} props - The invoice factoring pool payment widget props.
148
- * @returns Invoice factoring pool payment widget component
149
- */
150
- export function InvoiceFactoringPaymentWidget(
151
- props: InvoiceFactoringPaymentWidgetProps,
152
- ) {
153
- return (
154
- <Widget {...props}>
155
- <InvoiceFactoringPayment {...props} />
156
- </Widget>
157
- )
158
- }
159
-
160
- /**
161
- * Credit line pool borrow widget props
162
- * @typedef {Object} CreditLineBorrowWidgetProps
163
- * @property {CreditLineBorrowProps} CreditLineBorrowProps - Credit line pool borrow props.
164
- * @property {WidgetProps} WidgetProps - Widget general props.
165
- */
166
- type CreditLineBorrowWidgetProps = CreditLineBorrowProps & WidgetProps
167
-
168
- /**
169
- * Credit line borrow widget
170
- *
171
- * @param {CreditLineBorrowWidgetProps} props - The credit line pool borrow widget props.
172
- * @returns Credit line pool borrow widget component
173
- */
174
- export function CreditLineBorrowWidget(props: CreditLineBorrowWidgetProps) {
175
- return (
176
- <Widget {...props}>
177
- <CreditLineBorrow {...props} />
178
- </Widget>
179
- )
180
- }
181
-
182
- /**
183
- * Credit line pool payment widget props
184
- * @typedef {Object} CreditLinePaymentWidgetProps
185
- * @property {CreditLinePaymentProps} CreditLinePaymentProps - Credit line pool payment props.
186
- * @property {WidgetProps} WidgetProps - Widget general props.
187
- */
188
- type CreditLinePaymentWidgetProps = CreditLinePaymentProps & WidgetProps
189
-
190
- /**
191
- * Credit line payment widget
192
- *
193
- * @param {CreditLinePaymentWidgetProps} props - The credit line pool payment widget props.
194
- * @returns Credit line pool payment widget component
195
- */
196
- export function CreditLinePaymentWidget(props: CreditLinePaymentWidgetProps) {
197
- return (
198
- <Widget {...props}>
199
- <CreditLinePayment {...props} />
200
- </Widget>
201
- )
202
- }
203
-
204
- /**
205
- * Credit line allowance approval widget props
206
- * @typedef {Object} CreditLinePaymentWidgetProps
207
- * @property {CreditLineApproveProps} CreditLineApproveProps - Credit line allowance approve props.
208
- * @property {WidgetProps} WidgetProps - Widget general props.
209
- */
210
- type CreditLineApproveWidgetProps = CreditLineApproveProps & WidgetProps
211
-
212
- /**
213
- * Credit line allowance approve widget to top up a pool's ERC20 token allowance.
214
- * To be used when re-enabling autopay and other pool actions that require allowance.
215
- *
216
- * @param {CreditLineApproveWidgetProps} props - The credit line pool approve widget props.
217
- * @returns Credit line pool approve widget component
218
- */
219
- export function CreditLineApproveWidget(props: CreditLineApproveWidgetProps) {
220
- return (
221
- <Widget {...props}>
222
- <CreditLineApprove {...props} />
223
- </Widget>
224
- )
225
- }
226
-
227
- /**
228
- * Lend pool supply widget props
229
- * @typedef {Object} LendSupplyWidgetProps
230
- * @property {LendSupplyProps} LendSupplyProps - Lend pool supply props.
231
- * @property {WidgetProps} WidgetProps - Widget general props.
232
- */
233
- type LendSupplyWidgetProps = LendSupplyProps & WidgetProps
234
-
235
- /**
236
- * Lend supply widget
237
- *
238
- * @param {LendSupplyWidgetProps} props - The lend pool supply widget props.
239
- * @returns Lend pool supply widget component
240
- */
241
- export function LendSupplyWidget(props: LendSupplyWidgetProps) {
242
- return (
243
- <Widget {...props}>
244
- <LendSupply {...props} />
245
- </Widget>
246
- )
247
- }
248
-
249
- /**
250
- * Lend pool withdraw widget props
251
- * @typedef {Object} LendWithdrawWidgetProps
252
- * @property {LendWithdrawProps} LendWithdrawProps - Lend pool withdraw props.
253
- * @property {WidgetProps} WidgetProps - Widget general props.
254
- */
255
- type LendWithdrawWidgetProps = LendWithdrawProps & WidgetProps
256
-
257
- /**
258
- * Lend withdraw widget
259
- *
260
- * @param {LendWithdrawWidgetProps} props The lend pool withdraw widget props
261
- * @returns Lend pool withdraw widget component
262
- */
263
- export function LendWithdrawWidget(props: LendWithdrawWidgetProps) {
264
- return (
265
- <Widget {...props}>
266
- <LendWithdraw {...props} />
267
- </Widget>
268
- )
269
- }
270
-
271
- /**
272
- * Superfluid factoring widget
273
- *
274
- * @param {WidgetProps} props - The superfluid factoring widget props.
275
- * @returns Superfluid factoring widget component
276
- */
277
- export function SuperfluidFactoringWidget(props: WidgetProps) {
278
- return (
279
- <Widget {...props}>
280
- <SuperfluidFactoring />
281
- </Widget>
282
- )
283
- }
1
+ import './index.css'
2
+
3
+ import { JsonRpcProvider } from '@ethersproject/providers'
4
+ import {
5
+ Provider as Web3Provider,
6
+ ProviderProps as Web3Props,
7
+ supportedChainId,
8
+ } from '@huma-finance/shared'
9
+ import { ThemeProvider } from '@mui/material'
10
+ import { Provider as Eip1193Provider } from '@web3-react/types'
11
+ import { Provider as AtomProvider } from 'jotai'
12
+ import { useCallback, useEffect, useState } from 'react'
13
+ import { Provider as ReduxProvider } from 'react-redux'
14
+
15
+ import { useWeb3React } from '@web3-react/core'
16
+ import { ChainNotSupportedModal } from './components/ChainNotSupportedModal'
17
+ import {
18
+ CreditLineApprove,
19
+ CreditLineApproveProps,
20
+ } from './components/CreditLine/approve'
21
+ import {
22
+ CreditLineBorrow,
23
+ CreditLineBorrowProps,
24
+ } from './components/CreditLine/borrow'
25
+ import {
26
+ CreditLinePayment,
27
+ CreditLinePaymentProps,
28
+ } from './components/CreditLine/payment'
29
+ import {
30
+ InvoiceFactoringBorrow,
31
+ InvoiceFactoringBorrowProps,
32
+ } from './components/InvoiceFactoring/borrow'
33
+ import {
34
+ InvoiceFactoringPayment,
35
+ InvoiceFactoringPaymentProps,
36
+ } from './components/InvoiceFactoring/payment'
37
+ import { LendSupply, LendSupplyProps } from './components/Lend/supply'
38
+ import { LendWithdraw, LendWithdrawProps } from './components/Lend/withdraw'
39
+ import { SuperfluidFactoring } from './components/SuperfluidFactoring'
40
+ import { store } from './store'
41
+ import { themeHuma } from './theme'
42
+ import { WCProps } from './utilTypes'
43
+
44
+ /**
45
+ * Mapping of your JSON-RPC connections indexed by chainId
46
+ * @typedef {Object} JsonRpcConnectionMap
47
+ * @property {Object.<number, string|Array<string>|JsonRpcProvider|Array<JsonRpcProvider>>} chainId Chain id to map the JSON-RPC URL/URLs or JsonRpcProvider/JsonRpcProviders
48
+ */
49
+ type JsonRpcConnectionMap = {
50
+ [chainId: number]: string | string[] | JsonRpcProvider | JsonRpcProvider[]
51
+ }
52
+
53
+ /**
54
+ * Object representing the props passed to web3 provider
55
+ * @typedef {Object} WidgetProps
56
+ * @property {desiredChainId|undefined} desiredChainId Optional desired chain id, will trigger the switch network action if different from the current chain id
57
+ * @property {JsonRpcConnectionMap|undefined} jsonRpcUrlMap Optional mapping of your JSON-RPC connections indexed by chainId
58
+ * @property {Eip1193Provider|JsonRpcProviderl} provider EIP-1193 provider or JsonRpc Provider
59
+ */
60
+ type WidgetProps = {
61
+ handleClose?: () => void
62
+ desiredChainId?: number
63
+ jsonRpcUrlMap?: JsonRpcConnectionMap
64
+ provider: Eip1193Provider | JsonRpcProvider
65
+ }
66
+
67
+ function Widget(props: WCProps<WidgetProps>) {
68
+ const { children } = props
69
+ const { chainId } = useWeb3React()
70
+
71
+ const chainSupported = !!supportedChainId(chainId)
72
+ const [chainNotSupportedOpen, setChainNotSupportedOpen] = useState(false)
73
+
74
+ useEffect(() => {
75
+ if (chainSupported) {
76
+ setChainNotSupportedOpen(false)
77
+ } else {
78
+ setChainNotSupportedOpen(true)
79
+ }
80
+ }, [chainSupported])
81
+
82
+ const handleCloseCallback = useCallback(() => {
83
+ setChainNotSupportedOpen(false)
84
+ }, [])
85
+
86
+ if (!chainSupported) {
87
+ return (
88
+ <ThemeProvider theme={themeHuma}>
89
+ <ReduxProvider store={store}>
90
+ <ChainNotSupportedModal
91
+ isOpen={chainNotSupportedOpen}
92
+ handleClose={handleCloseCallback}
93
+ />
94
+ </ReduxProvider>
95
+ </ThemeProvider>
96
+ )
97
+ }
98
+
99
+ return (
100
+ <ThemeProvider theme={themeHuma}>
101
+ <ReduxProvider store={store}>
102
+ <Web3Provider {...(props as Web3Props)}>
103
+ <AtomProvider>{children}</AtomProvider>
104
+ </Web3Provider>
105
+ </ReduxProvider>
106
+ </ThemeProvider>
107
+ )
108
+ }
109
+
110
+ /**
111
+ * Invoice factoring pool borrow widget props
112
+ * @typedef {Object} InvoiceFactoringBorrowWidgetProps
113
+ * @property {InvoiceFactoringBorrowProps} InvoiceFactoringBorrowProps - Invoice factoring pool borrow props.
114
+ * @property {WidgetProps} WidgetProps - Widget general props.
115
+ */
116
+ type InvoiceFactoringBorrowWidgetProps = InvoiceFactoringBorrowProps &
117
+ WidgetProps
118
+
119
+ /**
120
+ * Invoice factoring borrow widget
121
+ *
122
+ * @param {InvoiceFactoringBorrowWidgetProps} props - The invoice factoring pool borrow widget props.
123
+ * @returns Invoice factoring pool borrow widget component
124
+ */
125
+ export function InvoiceFactoringBorrowWidget(
126
+ props: InvoiceFactoringBorrowWidgetProps,
127
+ ) {
128
+ return (
129
+ <Widget {...props}>
130
+ <InvoiceFactoringBorrow {...props} />
131
+ </Widget>
132
+ )
133
+ }
134
+
135
+ /**
136
+ * Invoice factoring pool payment widget props
137
+ * @typedef {Object} InvoiceFactoringPaymentWidgetProps
138
+ * @property {InvoiceFactoringPaymentProps} InvoiceFactoringPaymentProps - Invoice factoring pool payment props.
139
+ * @property {WidgetProps} WidgetProps - Widget general props.
140
+ */
141
+ type InvoiceFactoringPaymentWidgetProps = InvoiceFactoringPaymentProps &
142
+ WidgetProps
143
+
144
+ /**
145
+ * Invoice factoring payment widget
146
+ *
147
+ * @param {InvoiceFactoringPaymentWidgetProps} props - The invoice factoring pool payment widget props.
148
+ * @returns Invoice factoring pool payment widget component
149
+ */
150
+ export function InvoiceFactoringPaymentWidget(
151
+ props: InvoiceFactoringPaymentWidgetProps,
152
+ ) {
153
+ return (
154
+ <Widget {...props}>
155
+ <InvoiceFactoringPayment {...props} />
156
+ </Widget>
157
+ )
158
+ }
159
+
160
+ /**
161
+ * Credit line pool borrow widget props
162
+ * @typedef {Object} CreditLineBorrowWidgetProps
163
+ * @property {CreditLineBorrowProps} CreditLineBorrowProps - Credit line pool borrow props.
164
+ * @property {WidgetProps} WidgetProps - Widget general props.
165
+ */
166
+ type CreditLineBorrowWidgetProps = CreditLineBorrowProps & WidgetProps
167
+
168
+ /**
169
+ * Credit line borrow widget
170
+ *
171
+ * @param {CreditLineBorrowWidgetProps} props - The credit line pool borrow widget props.
172
+ * @returns Credit line pool borrow widget component
173
+ */
174
+ export function CreditLineBorrowWidget(props: CreditLineBorrowWidgetProps) {
175
+ return (
176
+ <Widget {...props}>
177
+ <CreditLineBorrow {...props} />
178
+ </Widget>
179
+ )
180
+ }
181
+
182
+ /**
183
+ * Credit line pool payment widget props
184
+ * @typedef {Object} CreditLinePaymentWidgetProps
185
+ * @property {CreditLinePaymentProps} CreditLinePaymentProps - Credit line pool payment props.
186
+ * @property {WidgetProps} WidgetProps - Widget general props.
187
+ */
188
+ type CreditLinePaymentWidgetProps = CreditLinePaymentProps & WidgetProps
189
+
190
+ /**
191
+ * Credit line payment widget
192
+ *
193
+ * @param {CreditLinePaymentWidgetProps} props - The credit line pool payment widget props.
194
+ * @returns Credit line pool payment widget component
195
+ */
196
+ export function CreditLinePaymentWidget(props: CreditLinePaymentWidgetProps) {
197
+ return (
198
+ <Widget {...props}>
199
+ <CreditLinePayment {...props} />
200
+ </Widget>
201
+ )
202
+ }
203
+
204
+ /**
205
+ * Credit line allowance approval widget props
206
+ * @typedef {Object} CreditLinePaymentWidgetProps
207
+ * @property {CreditLineApproveProps} CreditLineApproveProps - Credit line allowance approve props.
208
+ * @property {WidgetProps} WidgetProps - Widget general props.
209
+ */
210
+ type CreditLineApproveWidgetProps = CreditLineApproveProps & WidgetProps
211
+
212
+ /**
213
+ * Credit line allowance approve widget to top up a pool's ERC20 token allowance.
214
+ * To be used when re-enabling autopay and other pool actions that require allowance.
215
+ *
216
+ * @param {CreditLineApproveWidgetProps} props - The credit line pool approve widget props.
217
+ * @returns Credit line pool approve widget component
218
+ */
219
+ export function CreditLineApproveWidget(props: CreditLineApproveWidgetProps) {
220
+ return (
221
+ <Widget {...props}>
222
+ <CreditLineApprove {...props} />
223
+ </Widget>
224
+ )
225
+ }
226
+
227
+ /**
228
+ * Lend pool supply widget props
229
+ * @typedef {Object} LendSupplyWidgetProps
230
+ * @property {LendSupplyProps} LendSupplyProps - Lend pool supply props.
231
+ * @property {WidgetProps} WidgetProps - Widget general props.
232
+ */
233
+ type LendSupplyWidgetProps = LendSupplyProps & WidgetProps
234
+
235
+ /**
236
+ * Lend supply widget
237
+ *
238
+ * @param {LendSupplyWidgetProps} props - The lend pool supply widget props.
239
+ * @returns Lend pool supply widget component
240
+ */
241
+ export function LendSupplyWidget(props: LendSupplyWidgetProps) {
242
+ return (
243
+ <Widget {...props}>
244
+ <LendSupply {...props} />
245
+ </Widget>
246
+ )
247
+ }
248
+
249
+ /**
250
+ * Lend pool withdraw widget props
251
+ * @typedef {Object} LendWithdrawWidgetProps
252
+ * @property {LendWithdrawProps} LendWithdrawProps - Lend pool withdraw props.
253
+ * @property {WidgetProps} WidgetProps - Widget general props.
254
+ */
255
+ type LendWithdrawWidgetProps = LendWithdrawProps & WidgetProps
256
+
257
+ /**
258
+ * Lend withdraw widget
259
+ *
260
+ * @param {LendWithdrawWidgetProps} props The lend pool withdraw widget props
261
+ * @returns Lend pool withdraw widget component
262
+ */
263
+ export function LendWithdrawWidget(props: LendWithdrawWidgetProps) {
264
+ return (
265
+ <Widget {...props}>
266
+ <LendWithdraw {...props} />
267
+ </Widget>
268
+ )
269
+ }
270
+
271
+ /**
272
+ * Superfluid factoring widget
273
+ *
274
+ * @param {WidgetProps} props - The superfluid factoring widget props.
275
+ * @returns Superfluid factoring widget component
276
+ */
277
+ export function SuperfluidFactoringWidget(props: WidgetProps) {
278
+ return (
279
+ <Widget {...props}>
280
+ <SuperfluidFactoring />
281
+ </Widget>
282
+ )
283
+ }
@@ -1 +1 @@
1
- /// <reference types="react-scripts" />
1
+ /// <reference types="react-scripts" />
@@ -1,15 +1,15 @@
1
- import { ReportHandler } from 'web-vitals'
2
-
3
- const reportWebVitals = (onPerfEntry?: ReportHandler) => {
4
- if (onPerfEntry && onPerfEntry instanceof Function) {
5
- import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
6
- getCLS(onPerfEntry)
7
- getFID(onPerfEntry)
8
- getFCP(onPerfEntry)
9
- getLCP(onPerfEntry)
10
- getTTFB(onPerfEntry)
11
- })
12
- }
13
- }
14
-
15
- export default reportWebVitals
1
+ import { ReportHandler } from 'web-vitals'
2
+
3
+ const reportWebVitals = (onPerfEntry?: ReportHandler) => {
4
+ if (onPerfEntry && onPerfEntry instanceof Function) {
5
+ import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
6
+ getCLS(onPerfEntry)
7
+ getFID(onPerfEntry)
8
+ getFCP(onPerfEntry)
9
+ getLCP(onPerfEntry)
10
+ getTTFB(onPerfEntry)
11
+ })
12
+ }
13
+ }
14
+
15
+ export default reportWebVitals
package/src/setupTests.ts CHANGED
@@ -1,6 +1,6 @@
1
- /* eslint-disable import/no-extraneous-dependencies */
2
- // jest-dom adds custom jest matchers for asserting on DOM nodes.
3
- // allows you to do things like:
4
- // expect(element).toHaveTextContent(/react/i)
5
- // learn more: https://github.com/testing-library/jest-dom
6
- import '@testing-library/jest-dom/extend-expect'
1
+ /* eslint-disable import/no-extraneous-dependencies */
2
+ // jest-dom adds custom jest matchers for asserting on DOM nodes.
3
+ // allows you to do things like:
4
+ // expect(element).toHaveTextContent(/react/i)
5
+ // learn more: https://github.com/testing-library/jest-dom
6
+ import '@testing-library/jest-dom/extend-expect'
@@ -1,27 +1,27 @@
1
- import {
2
- Action,
3
- ActionCreator,
4
- AnyAction,
5
- configureStore,
6
- ThunkAction,
7
- } from '@reduxjs/toolkit'
8
-
9
- import widgetsReducers from './widgets.reducers'
10
-
11
- export const store = configureStore({
12
- reducer: {
13
- widget: widgetsReducers,
14
- },
15
- })
16
-
17
- export type AppDispatch = typeof store.dispatch
18
- export type RootState = ReturnType<typeof store.getState>
19
- export type AppThunk<ReturnType = void> = ThunkAction<
20
- ReturnType,
21
- RootState,
22
- unknown,
23
- Action<string>
24
- >
25
- export type AppActionThunk<ReturnType = void> = ActionCreator<
26
- ThunkAction<ReturnType, RootState, unknown, AnyAction>
27
- >
1
+ import {
2
+ Action,
3
+ ActionCreator,
4
+ AnyAction,
5
+ configureStore,
6
+ ThunkAction,
7
+ } from '@reduxjs/toolkit'
8
+
9
+ import widgetsReducers from './widgets.reducers'
10
+
11
+ export const store = configureStore({
12
+ reducer: {
13
+ widget: widgetsReducers,
14
+ },
15
+ })
16
+
17
+ export type AppDispatch = typeof store.dispatch
18
+ export type RootState = ReturnType<typeof store.getState>
19
+ export type AppThunk<ReturnType = void> = ThunkAction<
20
+ ReturnType,
21
+ RootState,
22
+ unknown,
23
+ Action<string>
24
+ >
25
+ export type AppActionThunk<ReturnType = void> = ActionCreator<
26
+ ThunkAction<ReturnType, RootState, unknown, AnyAction>
27
+ >