@huma-finance/widgets 0.0.31 → 0.0.33

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 (176) 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 +1026 -296
  19. package/dist/cjs/index.cjs.map +1 -1
  20. package/dist/index.d.ts +193 -193
  21. package/dist/index.js +1028 -299
  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 +132 -132
  30. package/src/components/ApolloWrapper.tsx +15 -15
  31. package/src/components/ApproveAllowanceModal.tsx +121 -121
  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/borrow/1-Evaluation.tsx +157 -157
  37. package/src/components/CreditLine/borrow/2-ChooseAmount.tsx +68 -68
  38. package/src/components/CreditLine/borrow/3-Transfer.tsx +44 -44
  39. package/src/components/CreditLine/borrow/4-ApproveAllowance.tsx +29 -29
  40. package/src/components/CreditLine/borrow/5-Success.tsx +38 -30
  41. package/src/components/CreditLine/borrow/6-Notifications.tsx +10 -0
  42. package/src/components/CreditLine/borrow/index.tsx +136 -117
  43. package/src/components/CreditLine/payment/1-ChooseAmount.tsx +67 -67
  44. package/src/components/CreditLine/payment/2-ApproveAllowance.tsx +23 -23
  45. package/src/components/CreditLine/payment/3-Transfer.tsx +34 -34
  46. package/src/components/CreditLine/payment/4-Success.tsx +39 -39
  47. package/src/components/CreditLine/payment/index.tsx +94 -94
  48. package/src/components/ErrorModal.tsx +132 -132
  49. package/src/components/Factoring/FactoredList.tsx +143 -143
  50. package/src/components/Factoring/UpcomingList.tsx +90 -90
  51. package/src/components/Factoring/index.ts +2 -2
  52. package/src/components/HumaLoading.tsx +68 -68
  53. package/src/components/HumaSnackBar.tsx +60 -0
  54. package/src/components/HumaTable.tsx +158 -158
  55. package/src/components/InvoiceFactoring/borrow/1-Evaluation.tsx +49 -49
  56. package/src/components/InvoiceFactoring/borrow/2-ChooseAmount.tsx +88 -88
  57. package/src/components/InvoiceFactoring/borrow/3-ConfirmTransfer.tsx +37 -37
  58. package/src/components/InvoiceFactoring/borrow/4-ApproveNFT.tsx +55 -55
  59. package/src/components/InvoiceFactoring/borrow/5-Transfer.tsx +34 -34
  60. package/src/components/InvoiceFactoring/borrow/6-Success.tsx +20 -20
  61. package/src/components/InvoiceFactoring/borrow/index.tsx +94 -94
  62. package/src/components/InvoiceFactoring/payment/1-ChooseAmount.tsx +67 -67
  63. package/src/components/InvoiceFactoring/payment/2-ApproveAllowance.tsx +23 -23
  64. package/src/components/InvoiceFactoring/payment/3-Transfer.tsx +34 -34
  65. package/src/components/InvoiceFactoring/payment/4-Success.tsx +23 -23
  66. package/src/components/InvoiceFactoring/payment/index.tsx +86 -86
  67. package/src/components/Lend/supply/1-Evaluation/EvaluationEA.tsx +86 -0
  68. package/src/components/Lend/supply/1-Evaluation/EvaluationKYC.tsx +287 -0
  69. package/src/components/Lend/supply/1-Evaluation/index.tsx +31 -0
  70. package/src/components/Lend/supply/2-ChooseAmount.tsx +69 -70
  71. package/src/components/Lend/supply/3-ApproveAllowance.tsx +25 -25
  72. package/src/components/Lend/supply/{6-Transfer.tsx → 4-Transfer.tsx} +32 -32
  73. package/src/components/Lend/supply/{7-Success.tsx → 5-Success.tsx} +60 -49
  74. package/src/components/Lend/supply/6-Notifications.tsx +10 -0
  75. package/src/components/Lend/supply/index.tsx +167 -144
  76. package/src/components/Lend/withdraw/1-CheckWithdrawble.tsx +73 -73
  77. package/src/components/Lend/withdraw/2-ChooseAmount.tsx +50 -50
  78. package/src/components/Lend/withdraw/3-Transfer.tsx +32 -32
  79. package/src/components/Lend/withdraw/4-Success.tsx +49 -49
  80. package/src/components/Lend/withdraw/index.tsx +101 -101
  81. package/src/components/LoadingModal.tsx +49 -49
  82. package/src/components/Notifi/NotifiSubscriptionModal.tsx +264 -0
  83. package/src/components/StreamFactoring/borrow/1-Evaluation.tsx +55 -55
  84. package/src/components/StreamFactoring/borrow/2-ChooseAmount.tsx +127 -127
  85. package/src/components/StreamFactoring/borrow/3-ConfirmTransfer.tsx +42 -42
  86. package/src/components/StreamFactoring/borrow/4-ApproveAllowance.tsx +33 -33
  87. package/src/components/StreamFactoring/borrow/5-Permit.tsx +144 -144
  88. package/src/components/StreamFactoring/borrow/6-Transfer.tsx +37 -37
  89. package/src/components/StreamFactoring/borrow/7-Success.tsx +20 -20
  90. package/src/components/StreamFactoring/borrow/index.tsx +94 -94
  91. package/src/components/StreamFactoring/payment/ChooseAmount.tsx +54 -54
  92. package/src/components/StreamFactoring/payment/Success.tsx +23 -23
  93. package/src/components/StreamFactoring/payment/Transfer.tsx +34 -34
  94. package/src/components/StreamFactoring/payment/index.tsx +66 -66
  95. package/src/components/SuperfluidFactoring/SuperfluidFactoredList.tsx +70 -70
  96. package/src/components/SuperfluidFactoring/SuperfluidUpcomingList.tsx +167 -167
  97. package/src/components/SuperfluidFactoring/index.tsx +85 -85
  98. package/src/components/TxDoneModal.tsx +85 -83
  99. package/src/components/TxSendModal.tsx +59 -59
  100. package/src/components/ViewOnExplorer.tsx +26 -26
  101. package/src/components/WidgetWrapper.tsx +74 -74
  102. package/src/components/WrapperModal.tsx +54 -54
  103. package/src/components/buttons/TableActionButton.tsx +36 -36
  104. package/src/components/buttons/index.ts +1 -1
  105. package/src/components/humaModal/HumaModal.tsx +68 -68
  106. package/src/components/humaModal/HumaModalHeader.tsx +70 -70
  107. package/src/components/humaModal/index.tsx +2 -2
  108. package/src/components/icons/approve-lender.svg +30 -30
  109. package/src/components/icons/auto-payback.svg +40 -40
  110. package/src/components/icons/check-circle.svg +3 -3
  111. package/src/components/icons/check-green.svg +3 -3
  112. package/src/components/icons/check.svg +10 -10
  113. package/src/components/icons/donut.svg +904 -904
  114. package/src/components/icons/ellipse.svg +3 -3
  115. package/src/components/icons/huma-full.svg +22 -22
  116. package/src/components/icons/huma.svg +15 -15
  117. package/src/components/icons/index.tsx +93 -93
  118. package/src/components/icons/loader.svg +229 -229
  119. package/src/components/icons/metamask.svg +31 -31
  120. package/src/components/icons/polygon.svg +16 -16
  121. package/src/components/icons/receipt.svg +3 -3
  122. package/src/components/icons/separator.svg +3 -3
  123. package/src/components/icons/sorry.svg +31 -31
  124. package/src/components/icons/usdc.svg +5 -5
  125. package/src/components/icons/wallet-connect.svg +11 -11
  126. package/src/cosmos/CreditLineBorrow.fixture.tsx +86 -86
  127. package/src/cosmos/CreditLinePayment.fixture.tsx +50 -50
  128. package/src/cosmos/InvoiceFactoringBorrow.fixture.tsx +111 -111
  129. package/src/cosmos/InvoiceFactoringPayment.fixture.tsx +67 -67
  130. package/src/cosmos/LendSupply.fixture.tsx +75 -75
  131. package/src/cosmos/LendWithdraw.fixture.tsx +43 -43
  132. package/src/cosmos/SDKTesting.fixture.tsx +616 -616
  133. package/src/cosmos/SuperfluidFactoringBorrow.fixture.tsx +15 -15
  134. package/src/cosmos/WalletWrapper.tsx +52 -52
  135. package/src/cosmos/abis/InvoiceNFT.json +644 -644
  136. package/src/cosmos/abis/ReceivableFactoringPool.json +1529 -1529
  137. package/src/cosmos/utils/env.ts +6 -6
  138. package/src/cosmos/utils/index.ts +169 -169
  139. package/src/fonts/Recoleta/Recoleta-Black.otf +0 -0
  140. package/src/fonts/Recoleta/Recoleta-Bold.otf +0 -0
  141. package/src/fonts/Recoleta/Recoleta-Light.otf +0 -0
  142. package/src/fonts/Recoleta/Recoleta-Medium.otf +0 -0
  143. package/src/fonts/Recoleta/Recoleta-Regular.otf +0 -0
  144. package/src/fonts/Recoleta/Recoleta-RegularDEMO.otf +0 -0
  145. package/src/fonts/Recoleta/Recoleta-SemiBold.otf +0 -0
  146. package/src/fonts/Recoleta/Recoleta-Thin.otf +0 -0
  147. package/src/hooks/useEA.ts +53 -53
  148. package/src/hooks/useNotifi.ts +71 -0
  149. package/src/hooks/useRedux.ts +6 -6
  150. package/src/index.css +61 -61
  151. package/src/index.tsx +301 -301
  152. package/src/react-app-env.d.ts +1 -1
  153. package/src/reportWebVitals.ts +15 -15
  154. package/src/setupTests.ts +6 -6
  155. package/src/store/index.ts +27 -27
  156. package/src/store/widgets.reducers.ts +120 -120
  157. package/src/store/widgets.selectors.ts +3 -3
  158. package/src/store/widgets.store.ts +55 -54
  159. package/src/theme/breakpoints.ts +10 -10
  160. package/src/theme/components.ts +70 -70
  161. package/src/theme/coreThemeConstants.ts +29 -29
  162. package/src/theme/cssMixins.ts +92 -92
  163. package/src/theme/hooks/useGetSizes.ts +31 -31
  164. package/src/theme/index.ts +24 -24
  165. package/src/theme/palette.ts +150 -150
  166. package/src/theme/shape.ts +7 -7
  167. package/src/theme/theme.types.ts +80 -80
  168. package/src/theme/typography.ts +117 -117
  169. package/src/utilTypes.d.ts +31 -31
  170. package/src/utils/env.ts +10 -10
  171. package/tsconfig.build.json +7 -7
  172. package/tsconfig.json +32 -32
  173. package/webpack.cosmos.js +54 -54
  174. package/src/components/Lend/supply/1-Evaluation.tsx +0 -175
  175. package/src/components/Lend/supply/4-ConfirmTransfer.tsx +0 -104
  176. package/src/components/NotifiSubscriptionModal.tsx +0 -84
@@ -1,153 +1,153 @@
1
- import { combineStyles } from '@huma-finance/shared'
2
- import ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos'
3
- import { Box, Button, css, Typography, useTheme } from '@mui/material'
4
- import React from 'react'
5
-
6
- import { ReceiptIcon, UsdcIcon } from './icons'
7
-
8
- type Props = {
9
- title: string
10
- description: string
11
- items: [
12
- { leftText: string; rightText: string },
13
- { leftText: string; rightText: string },
14
- ]
15
- actionText: string
16
- handleAction: () => void
17
- }
18
-
19
- export function ConfirmTransferModal({
20
- title,
21
- description,
22
- items,
23
- actionText,
24
- handleAction,
25
- }: Props): React.ReactElement | null {
26
- const theme = useTheme()
27
-
28
- const styles = {
29
- wrapper: css`
30
- height: 518px;
31
- position: relative;
32
- ${theme.cssMixins.colStretch};
33
- `,
34
- header: css`
35
- ${theme.cssMixins.rowHCentered};
36
- margin-top: -5px;
37
- `,
38
- description: css`
39
- font-family: 'Uni-Neue-Regular';
40
- font-size: 16px;
41
- color: #49505b;
42
- margin-top: 30px;
43
- text-align: center;
44
- `,
45
- transferWrapper: css`
46
- margin-top: 75px;
47
- `,
48
- transfer: css`
49
- font-family: 'Uni-Neue-Regular';
50
- ${theme.cssMixins.rowSpaceBetweened}
51
- ${theme.cssMixins.rowVCentered}
52
- height: 72px;
53
- background: #f9f8fa;
54
- border-radius: 4px;
55
- font-weight: 500;
56
- font-size: 16px;
57
- color: #49505b;
58
- padding: 24px 20px;
59
- margin-bottom: 9px;
60
- position: relative;
61
- box-sizing: border-box;
62
- `,
63
- transferItem: css`
64
- ${theme.cssMixins.rowVCentered}
65
- `,
66
- arrow: css`
67
- @keyframes bounceAlpha {
68
- 0% {
69
- opacity: 1;
70
- transform: translateX(0px) scale(1);
71
- }
72
- 25% {
73
- opacity: 0;
74
- transform: translateX(10px) scale(0.9);
75
- }
76
- 26% {
77
- opacity: 0;
78
- transform: translateX(-10px) scale(0.9);
79
- }
80
- 55% {
81
- opacity: 1;
82
- transform: translateX(0px) scale(1);
83
- }
84
- }
85
- animation-name: bounceAlpha;
86
- animation-duration: 1.4s;
87
- animation-iteration-count: infinite;
88
- animation-timing-function: linear;
89
-
90
- color: #b246ff;
91
- position: absolute;
92
- margin: auto;
93
- top: 0;
94
- left: calc(15% + 36px);
95
- bottom: 0;
96
- right: 0;
97
- width: 16px;
98
- height: 16px;
99
- `,
100
- arrowFirst: css`
101
- left: calc(15% + 20px);
102
- animation-delay: 0.2s;
103
- `,
104
- okButton: css`
105
- width: 100%;
106
- position: absolute;
107
- bottom: 0;
108
- `,
109
- usdcIcon: css`
110
- width: 22px;
111
- margin-right: 20px;
112
- & > path:first-of-type {
113
- fill: #76707e;
114
- }
115
- `,
116
- }
117
-
118
- return (
119
- <Box css={styles.wrapper}>
120
- <Typography variant='h6' css={styles.header}>
121
- {title}
122
- </Typography>
123
- <Box css={styles.description}>{description}</Box>
124
- <Box css={styles.transferWrapper}>
125
- <Box css={styles.transfer}>
126
- <Box css={styles.transferItem}>
127
- <ReceiptIcon css={{ width: '24px', marginRight: '20px' }} />
128
- {items[0].leftText}
129
- </Box>
130
- <ArrowForwardIosIcon
131
- css={combineStyles([styles.arrow, styles.arrowFirst])}
132
- />
133
- <ArrowForwardIosIcon css={styles.arrow} />
134
- <Box>{items[0].rightText}</Box>
135
- </Box>
136
- <Box css={styles.transfer}>
137
- <Box css={styles.transferItem}>
138
- <UsdcIcon css={styles.usdcIcon} />
139
- {items[1].leftText}
140
- </Box>
141
- <ArrowForwardIosIcon
142
- css={combineStyles([styles.arrow, styles.arrowFirst])}
143
- />
144
- <ArrowForwardIosIcon css={styles.arrow} />
145
- <Box>{items[1].rightText}</Box>
146
- </Box>
147
- </Box>
148
- <Button variant='contained' css={styles.okButton} onClick={handleAction}>
149
- {actionText}
150
- </Button>
151
- </Box>
152
- )
153
- }
1
+ import { combineStyles } from '@huma-finance/shared'
2
+ import ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos'
3
+ import { Box, Button, css, Typography, useTheme } from '@mui/material'
4
+ import React from 'react'
5
+
6
+ import { ReceiptIcon, UsdcIcon } from './icons'
7
+
8
+ type Props = {
9
+ title: string
10
+ description: string
11
+ items: [
12
+ { leftText: string; rightText: string },
13
+ { leftText: string; rightText: string },
14
+ ]
15
+ actionText: string
16
+ handleAction: () => void
17
+ }
18
+
19
+ export function ConfirmTransferModal({
20
+ title,
21
+ description,
22
+ items,
23
+ actionText,
24
+ handleAction,
25
+ }: Props): React.ReactElement | null {
26
+ const theme = useTheme()
27
+
28
+ const styles = {
29
+ wrapper: css`
30
+ height: 518px;
31
+ position: relative;
32
+ ${theme.cssMixins.colStretch};
33
+ `,
34
+ header: css`
35
+ ${theme.cssMixins.rowHCentered};
36
+ margin-top: -5px;
37
+ `,
38
+ description: css`
39
+ font-family: 'Uni-Neue-Regular';
40
+ font-size: 16px;
41
+ color: #49505b;
42
+ margin-top: 30px;
43
+ text-align: center;
44
+ `,
45
+ transferWrapper: css`
46
+ margin-top: 75px;
47
+ `,
48
+ transfer: css`
49
+ font-family: 'Uni-Neue-Regular';
50
+ ${theme.cssMixins.rowSpaceBetweened}
51
+ ${theme.cssMixins.rowVCentered}
52
+ height: 72px;
53
+ background: #f9f8fa;
54
+ border-radius: 4px;
55
+ font-weight: 500;
56
+ font-size: 16px;
57
+ color: #49505b;
58
+ padding: 24px 20px;
59
+ margin-bottom: 9px;
60
+ position: relative;
61
+ box-sizing: border-box;
62
+ `,
63
+ transferItem: css`
64
+ ${theme.cssMixins.rowVCentered}
65
+ `,
66
+ arrow: css`
67
+ @keyframes bounceAlpha {
68
+ 0% {
69
+ opacity: 1;
70
+ transform: translateX(0px) scale(1);
71
+ }
72
+ 25% {
73
+ opacity: 0;
74
+ transform: translateX(10px) scale(0.9);
75
+ }
76
+ 26% {
77
+ opacity: 0;
78
+ transform: translateX(-10px) scale(0.9);
79
+ }
80
+ 55% {
81
+ opacity: 1;
82
+ transform: translateX(0px) scale(1);
83
+ }
84
+ }
85
+ animation-name: bounceAlpha;
86
+ animation-duration: 1.4s;
87
+ animation-iteration-count: infinite;
88
+ animation-timing-function: linear;
89
+
90
+ color: #b246ff;
91
+ position: absolute;
92
+ margin: auto;
93
+ top: 0;
94
+ left: calc(15% + 36px);
95
+ bottom: 0;
96
+ right: 0;
97
+ width: 16px;
98
+ height: 16px;
99
+ `,
100
+ arrowFirst: css`
101
+ left: calc(15% + 20px);
102
+ animation-delay: 0.2s;
103
+ `,
104
+ okButton: css`
105
+ width: 100%;
106
+ position: absolute;
107
+ bottom: 0;
108
+ `,
109
+ usdcIcon: css`
110
+ width: 22px;
111
+ margin-right: 20px;
112
+ & > path:first-of-type {
113
+ fill: #76707e;
114
+ }
115
+ `,
116
+ }
117
+
118
+ return (
119
+ <Box css={styles.wrapper}>
120
+ <Typography variant='h6' css={styles.header}>
121
+ {title}
122
+ </Typography>
123
+ <Box css={styles.description}>{description}</Box>
124
+ <Box css={styles.transferWrapper}>
125
+ <Box css={styles.transfer}>
126
+ <Box css={styles.transferItem}>
127
+ <ReceiptIcon css={{ width: '24px', marginRight: '20px' }} />
128
+ {items[0].leftText}
129
+ </Box>
130
+ <ArrowForwardIosIcon
131
+ css={combineStyles([styles.arrow, styles.arrowFirst])}
132
+ />
133
+ <ArrowForwardIosIcon css={styles.arrow} />
134
+ <Box>{items[0].rightText}</Box>
135
+ </Box>
136
+ <Box css={styles.transfer}>
137
+ <Box css={styles.transferItem}>
138
+ <UsdcIcon css={styles.usdcIcon} />
139
+ {items[1].leftText}
140
+ </Box>
141
+ <ArrowForwardIosIcon
142
+ css={combineStyles([styles.arrow, styles.arrowFirst])}
143
+ />
144
+ <ArrowForwardIosIcon css={styles.arrow} />
145
+ <Box>{items[1].rightText}</Box>
146
+ </Box>
147
+ </Box>
148
+ <Button variant='contained' css={styles.okButton} onClick={handleAction}>
149
+ {actionText}
150
+ </Button>
151
+ </Box>
152
+ )
153
+ }
@@ -1,157 +1,157 @@
1
- import { Box, Button, css, Typography, useTheme } from '@mui/material'
2
- import { useWeb3React } from '@web3-react/core'
3
- import { PoolInfoType } from '@huma-finance/shared'
4
- import React, { useEffect, useState } from 'react'
5
-
6
- import useEA from '../../../hooks/useEA'
7
- import { useAppDispatch } from '../../../hooks/useRedux'
8
- import { setStep } from '../../../store/widgets.reducers'
9
- import { WIDGET_STEP } from '../../../store/widgets.store'
10
- import { CheckCircleIcon, CheckGreenIcon } from '../../icons'
11
- import spinner from '../../icons/spinner.gif'
12
-
13
- type Props = {
14
- poolInfo: PoolInfoType
15
- handleApprove: () => void
16
- }
17
-
18
- export function Evaluation({
19
- poolInfo,
20
- handleApprove,
21
- }: Props): React.ReactElement {
22
- const theme = useTheme()
23
- const { checkingEA } = useEA()
24
- const dispatch = useAppDispatch()
25
- const { account, chainId } = useWeb3React()
26
- const [status, setStatus] = useState<'checking' | 'success'>('checking')
27
-
28
- useEffect(() => {
29
- const fetchData = async () => {
30
- if (account && chainId) {
31
- await checkingEA(
32
- {
33
- poolAddress: poolInfo.pool,
34
- borrowerWalletAddress: account,
35
- },
36
- WIDGET_STEP.Evaluation,
37
- )
38
- handleApprove()
39
- setStatus('success')
40
- }
41
- }
42
- fetchData()
43
- }, [
44
- account,
45
- chainId,
46
- checkingEA,
47
- handleApprove,
48
- poolInfo.assetAddress,
49
- poolInfo.pool,
50
- ])
51
-
52
- const styles = {
53
- wrapper: css`
54
- height: 518px;
55
- position: relative;
56
- `,
57
- header: css`
58
- ${theme.cssMixins.rowHCentered};
59
- margin-top: -5px;
60
- `,
61
- content: css`
62
- ${theme.cssMixins.rowHCentered};
63
- margin-top: 30px;
64
- font-family: 'Uni-Neue-Regular';
65
- font-size: 16px;
66
- line-height: 24px;
67
- color: #49505b;
68
- margin-bottom: 65px;
69
- `,
70
- checkWrapper: css`
71
- ${theme.cssMixins.rowVCentered}
72
- width: 100%;
73
- height: 72px;
74
- background: #f9f8fa;
75
- border-radius: 4px;
76
- font-family: 'Uni-Neue-Regular';
77
- font-size: 16px;
78
- color: #49505b;
79
- `,
80
- checkIcon: css`
81
- ${theme.cssMixins.rowCentered}
82
- width: 105px;
83
- height: 100%;
84
-
85
- & > img {
86
- max-width: 100%;
87
- max-height: 100%;
88
- }
89
- `,
90
- congratsWrapper: css`
91
- font-family: 'Uni-Neue-Regular';
92
- font-size: 16px;
93
- padding: 0 16px;
94
- ${theme.cssMixins.rowVCentered}
95
- margin-top: 60px;
96
- height: 52px;
97
- background: linear-gradient(
98
- 0deg,
99
- rgba(255, 255, 255, 0.9),
100
- rgba(255, 255, 255, 0.9)
101
- ),
102
- #2e7d32;
103
- border-radius: 4px;
104
- `,
105
- bottom: css`
106
- & .MuiButtonBase-root {
107
- width: 100%;
108
- position: absolute;
109
- bottom: 0;
110
- }
111
- `,
112
- }
113
-
114
- const goToNextStep = () => {
115
- dispatch(setStep(WIDGET_STEP.ChooseAmount))
116
- }
117
-
118
- return (
119
- <Box css={styles.wrapper}>
120
- <Typography variant='h6' css={styles.header}>
121
- Borrow
122
- </Typography>
123
- <Box css={styles.content}>
124
- Looks like it’s your first time around here. Let’s see if you qualify...
125
- </Box>
126
- <Box css={styles.checkWrapper} sx={{ marginBottom: '16px' }}>
127
- <Box css={styles.checkIcon}>
128
- {status === 'checking' && <img src={spinner} alt='loading...' />}
129
- {status === 'success' && <CheckGreenIcon />}
130
- </Box>
131
- <Box>Checking your income</Box>
132
- </Box>
133
- <Box css={styles.checkWrapper}>
134
- <Box css={styles.checkIcon}>
135
- {status === 'checking' && <img src={spinner} alt='loading...' />}
136
- {status === 'success' && <CheckGreenIcon />}
137
- </Box>
138
- <Box>Checking other qualifications</Box>
139
- </Box>
140
- {status === 'success' && (
141
- <>
142
- <Box css={styles.congratsWrapper}>
143
- <CheckCircleIcon />
144
- <Box sx={{ marginLeft: '16px' }}>
145
- Congrats, you are qualified to borrow
146
- </Box>
147
- </Box>
148
- <Box css={styles.bottom}>
149
- <Button variant='contained' onClick={goToNextStep}>
150
- CONTINUE TO BORROW
151
- </Button>
152
- </Box>
153
- </>
154
- )}
155
- </Box>
156
- )
157
- }
1
+ import { Box, Button, css, Typography, useTheme } from '@mui/material'
2
+ import { useWeb3React } from '@web3-react/core'
3
+ import { PoolInfoType } from '@huma-finance/shared'
4
+ import React, { useEffect, useState } from 'react'
5
+
6
+ import useEA from '../../../hooks/useEA'
7
+ import { useAppDispatch } from '../../../hooks/useRedux'
8
+ import { setStep } from '../../../store/widgets.reducers'
9
+ import { WIDGET_STEP } from '../../../store/widgets.store'
10
+ import { CheckCircleIcon, CheckGreenIcon } from '../../icons'
11
+ import spinner from '../../icons/spinner.gif'
12
+
13
+ type Props = {
14
+ poolInfo: PoolInfoType
15
+ handleApprove: () => void
16
+ }
17
+
18
+ export function Evaluation({
19
+ poolInfo,
20
+ handleApprove,
21
+ }: Props): React.ReactElement {
22
+ const theme = useTheme()
23
+ const { checkingEA } = useEA()
24
+ const dispatch = useAppDispatch()
25
+ const { account, chainId } = useWeb3React()
26
+ const [status, setStatus] = useState<'checking' | 'success'>('checking')
27
+
28
+ useEffect(() => {
29
+ const fetchData = async () => {
30
+ if (account && chainId) {
31
+ await checkingEA(
32
+ {
33
+ poolAddress: poolInfo.pool,
34
+ borrowerWalletAddress: account,
35
+ },
36
+ WIDGET_STEP.Evaluation,
37
+ )
38
+ handleApprove()
39
+ setStatus('success')
40
+ }
41
+ }
42
+ fetchData()
43
+ }, [
44
+ account,
45
+ chainId,
46
+ checkingEA,
47
+ handleApprove,
48
+ poolInfo.assetAddress,
49
+ poolInfo.pool,
50
+ ])
51
+
52
+ const styles = {
53
+ wrapper: css`
54
+ height: 518px;
55
+ position: relative;
56
+ `,
57
+ header: css`
58
+ ${theme.cssMixins.rowHCentered};
59
+ margin-top: -5px;
60
+ `,
61
+ content: css`
62
+ ${theme.cssMixins.rowHCentered};
63
+ margin-top: 30px;
64
+ font-family: 'Uni-Neue-Regular';
65
+ font-size: 16px;
66
+ line-height: 24px;
67
+ color: #49505b;
68
+ margin-bottom: 65px;
69
+ `,
70
+ checkWrapper: css`
71
+ ${theme.cssMixins.rowVCentered}
72
+ width: 100%;
73
+ height: 72px;
74
+ background: #f9f8fa;
75
+ border-radius: 4px;
76
+ font-family: 'Uni-Neue-Regular';
77
+ font-size: 16px;
78
+ color: #49505b;
79
+ `,
80
+ checkIcon: css`
81
+ ${theme.cssMixins.rowCentered}
82
+ width: 105px;
83
+ height: 100%;
84
+
85
+ & > img {
86
+ max-width: 100%;
87
+ max-height: 100%;
88
+ }
89
+ `,
90
+ congratsWrapper: css`
91
+ font-family: 'Uni-Neue-Regular';
92
+ font-size: 16px;
93
+ padding: 0 16px;
94
+ ${theme.cssMixins.rowVCentered}
95
+ margin-top: 60px;
96
+ height: 52px;
97
+ background: linear-gradient(
98
+ 0deg,
99
+ rgba(255, 255, 255, 0.9),
100
+ rgba(255, 255, 255, 0.9)
101
+ ),
102
+ #2e7d32;
103
+ border-radius: 4px;
104
+ `,
105
+ bottom: css`
106
+ & .MuiButtonBase-root {
107
+ width: 100%;
108
+ position: absolute;
109
+ bottom: 0;
110
+ }
111
+ `,
112
+ }
113
+
114
+ const goToNextStep = () => {
115
+ dispatch(setStep(WIDGET_STEP.ChooseAmount))
116
+ }
117
+
118
+ return (
119
+ <Box css={styles.wrapper}>
120
+ <Typography variant='h6' css={styles.header}>
121
+ Borrow
122
+ </Typography>
123
+ <Box css={styles.content}>
124
+ Looks like it’s your first time around here. Let’s see if you qualify...
125
+ </Box>
126
+ <Box css={styles.checkWrapper} sx={{ marginBottom: '16px' }}>
127
+ <Box css={styles.checkIcon}>
128
+ {status === 'checking' && <img src={spinner} alt='loading...' />}
129
+ {status === 'success' && <CheckGreenIcon />}
130
+ </Box>
131
+ <Box>Checking your income</Box>
132
+ </Box>
133
+ <Box css={styles.checkWrapper}>
134
+ <Box css={styles.checkIcon}>
135
+ {status === 'checking' && <img src={spinner} alt='loading...' />}
136
+ {status === 'success' && <CheckGreenIcon />}
137
+ </Box>
138
+ <Box>Checking other qualifications</Box>
139
+ </Box>
140
+ {status === 'success' && (
141
+ <>
142
+ <Box css={styles.congratsWrapper}>
143
+ <CheckCircleIcon />
144
+ <Box sx={{ marginLeft: '16px' }}>
145
+ Congrats, you are qualified to borrow
146
+ </Box>
147
+ </Box>
148
+ <Box css={styles.bottom}>
149
+ <Button variant='contained' onClick={goToNextStep}>
150
+ CONTINUE TO BORROW
151
+ </Button>
152
+ </Box>
153
+ </>
154
+ )}
155
+ </Box>
156
+ )
157
+ }