@huma-finance/widgets 0.0.10 → 0.0.12

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 (169) 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 +331 -331
  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/assets/output-15e10f9f.css +44 -0
  19. package/dist/cjs/assets/output-15e10f9f.css +44 -0
  20. package/dist/cjs/index.cjs +7740 -0
  21. package/dist/cjs/index.cjs.map +1 -0
  22. package/dist/index.d.ts +211 -0
  23. package/dist/index.js +7696 -0
  24. package/dist/index.js.map +1 -0
  25. package/jsdoc2md.json +20 -20
  26. package/package.json +4 -4
  27. package/public/index.html +40 -40
  28. package/public/manifest.json +25 -25
  29. package/public/robots.txt +3 -3
  30. package/rollup.config.js +81 -81
  31. package/src/components/Activity.tsx +123 -123
  32. package/src/components/AllowListModal.tsx +113 -113
  33. package/src/components/ApolloWrapper.tsx +15 -15
  34. package/src/components/ApproveAllowanceModal.tsx +118 -118
  35. package/src/components/BottomButton.tsx +31 -31
  36. package/src/components/ChooseAmountModal.tsx +322 -315
  37. package/src/components/CreditLine/borrow/1-Evaluation.tsx +158 -159
  38. package/src/components/CreditLine/borrow/2-AllowList.tsx +34 -34
  39. package/src/components/CreditLine/borrow/3-ChooseAmount.tsx +68 -74
  40. package/src/components/CreditLine/borrow/{5-Transfer.tsx → 4-Transfer.tsx} +44 -30
  41. package/src/components/CreditLine/borrow/{4-ApproveAllowance.tsx → 5-ApproveAllowance.tsx} +29 -29
  42. package/src/components/CreditLine/borrow/6-Success.tsx +30 -30
  43. package/src/components/CreditLine/borrow/index.tsx +119 -119
  44. package/src/components/CreditLine/payment/1-ChooseAmount.tsx +67 -67
  45. package/src/components/CreditLine/payment/2-ApproveAllowance.tsx +23 -23
  46. package/src/components/CreditLine/payment/3-Transfer.tsx +34 -34
  47. package/src/components/CreditLine/payment/4-Success.tsx +39 -39
  48. package/src/components/CreditLine/payment/index.tsx +94 -94
  49. package/src/components/ErrorModal.tsx +132 -132
  50. package/src/components/Factoring/FactoredList.tsx +143 -143
  51. package/src/components/Factoring/UpcomingList.tsx +90 -90
  52. package/src/components/Factoring/index.ts +2 -2
  53. package/src/components/HumaLoading.tsx +68 -68
  54. package/src/components/HumaTable.tsx +158 -158
  55. package/src/components/InvoiceFactoring/borrow/1-Evaluation.tsx +52 -46
  56. package/src/components/InvoiceFactoring/borrow/2-AllowList.tsx +34 -34
  57. package/src/components/InvoiceFactoring/borrow/3-ChooseAmount.tsx +86 -86
  58. package/src/components/InvoiceFactoring/borrow/4-ConfirmTransfer.tsx +104 -104
  59. package/src/components/InvoiceFactoring/borrow/5-ApproveNFT.tsx +55 -55
  60. package/src/components/InvoiceFactoring/borrow/6-Transfer.tsx +34 -34
  61. package/src/components/InvoiceFactoring/borrow/7-Success.tsx +20 -20
  62. package/src/components/InvoiceFactoring/borrow/index.tsx +96 -96
  63. package/src/components/InvoiceFactoring/payment/1-ChooseAmount.tsx +67 -67
  64. package/src/components/InvoiceFactoring/payment/2-ApproveAllowance.tsx +23 -23
  65. package/src/components/InvoiceFactoring/payment/3-Transfer.tsx +34 -34
  66. package/src/components/InvoiceFactoring/payment/4-Success.tsx +23 -23
  67. package/src/components/InvoiceFactoring/payment/index.tsx +86 -86
  68. package/src/components/Lend/supply/1-Evaluation.tsx +86 -86
  69. package/src/components/Lend/supply/2-ChooseAmount.tsx +70 -70
  70. package/src/components/Lend/supply/3-ApproveAllowance.tsx +25 -25
  71. package/src/components/Lend/supply/4-ConfirmTransfer.tsx +104 -104
  72. package/src/components/Lend/supply/6-Transfer.tsx +32 -32
  73. package/src/components/Lend/supply/7-Success.tsx +49 -49
  74. package/src/components/Lend/supply/index.tsx +144 -144
  75. package/src/components/Lend/withdraw/1-CheckWithdrawble.tsx +73 -73
  76. package/src/components/Lend/withdraw/2-ChooseAmount.tsx +50 -50
  77. package/src/components/Lend/withdraw/3-Transfer.tsx +32 -32
  78. package/src/components/Lend/withdraw/4-Success.tsx +49 -49
  79. package/src/components/Lend/withdraw/index.tsx +101 -101
  80. package/src/components/LoadingModal.tsx +49 -49
  81. package/src/components/StreamFactoring/borrow/1-Evaluation.tsx +47 -57
  82. package/src/components/StreamFactoring/borrow/2-ChooseAmount.tsx +124 -124
  83. package/src/components/StreamFactoring/borrow/3-ConfirmTransfer.tsx +104 -104
  84. package/src/components/StreamFactoring/borrow/4-ApproveAllowance.tsx +65 -65
  85. package/src/components/StreamFactoring/borrow/5-Permit.tsx +144 -144
  86. package/src/components/StreamFactoring/borrow/6-Transfer.tsx +37 -37
  87. package/src/components/StreamFactoring/borrow/7-Success.tsx +20 -20
  88. package/src/components/StreamFactoring/borrow/index.tsx +94 -95
  89. package/src/components/StreamFactoring/payment/ChooseAmount.tsx +54 -54
  90. package/src/components/StreamFactoring/payment/Success.tsx +23 -23
  91. package/src/components/StreamFactoring/payment/Transfer.tsx +34 -34
  92. package/src/components/StreamFactoring/payment/index.tsx +66 -66
  93. package/src/components/SuperfluidFactoring/SuperfluidFactoredList.tsx +61 -61
  94. package/src/components/SuperfluidFactoring/SuperfluidUpcomingList.tsx +185 -185
  95. package/src/components/SuperfluidFactoring/index.tsx +85 -85
  96. package/src/components/TxDoneModal.tsx +83 -83
  97. package/src/components/TxSendModal.tsx +59 -59
  98. package/src/components/ViewOnExplorer.tsx +26 -26
  99. package/src/components/WidgetWrapper.tsx +74 -74
  100. package/src/components/WrapperModal.tsx +54 -54
  101. package/src/components/buttons/TableActionButton.tsx +36 -36
  102. package/src/components/buttons/index.ts +1 -1
  103. package/src/components/humaModal/HumaModal.tsx +68 -68
  104. package/src/components/humaModal/HumaModalHeader.tsx +70 -70
  105. package/src/components/humaModal/index.tsx +2 -2
  106. package/src/components/icons/approve-lender.svg +30 -30
  107. package/src/components/icons/auto-payback.svg +40 -40
  108. package/src/components/icons/check-circle.svg +3 -3
  109. package/src/components/icons/check-green.svg +3 -3
  110. package/src/components/icons/check.svg +10 -10
  111. package/src/components/icons/donut.svg +904 -904
  112. package/src/components/icons/ellipse.svg +3 -3
  113. package/src/components/icons/huma-full.svg +22 -22
  114. package/src/components/icons/huma.svg +15 -15
  115. package/src/components/icons/index.tsx +93 -93
  116. package/src/components/icons/loader.svg +229 -229
  117. package/src/components/icons/metamask.svg +31 -31
  118. package/src/components/icons/polygon.svg +16 -16
  119. package/src/components/icons/receipt.svg +3 -3
  120. package/src/components/icons/separator.svg +3 -3
  121. package/src/components/icons/sorry.svg +31 -31
  122. package/src/components/icons/usdc.svg +5 -5
  123. package/src/components/icons/wallet-connect.svg +11 -11
  124. package/src/cosmos/CreditLineBorrow.fixture.tsx +85 -85
  125. package/src/cosmos/CreditLinePayment.fixture.tsx +49 -49
  126. package/src/cosmos/InvoiceFactoringBorrow.fixture.tsx +111 -111
  127. package/src/cosmos/InvoiceFactoringPayment.fixture.tsx +67 -67
  128. package/src/cosmos/LendSupply.fixture.tsx +75 -75
  129. package/src/cosmos/LendWithdraw.fixture.tsx +43 -43
  130. package/src/cosmos/SDKTesting.fixture.tsx +615 -516
  131. package/src/cosmos/SuperfluidFactoringBorrow.fixture.tsx +12 -12
  132. package/src/cosmos/WalletWrapper.tsx +52 -52
  133. package/src/cosmos/abis/InvoiceNFT.json +644 -644
  134. package/src/cosmos/abis/ReceivableFactoringPool.json +1529 -1529
  135. package/src/cosmos/utils/index.ts +169 -169
  136. package/src/fonts/Recoleta/Recoleta-Black.otf +0 -0
  137. package/src/fonts/Recoleta/Recoleta-Bold.otf +0 -0
  138. package/src/fonts/Recoleta/Recoleta-Light.otf +0 -0
  139. package/src/fonts/Recoleta/Recoleta-Medium.otf +0 -0
  140. package/src/fonts/Recoleta/Recoleta-Regular.otf +0 -0
  141. package/src/fonts/Recoleta/Recoleta-RegularDEMO.otf +0 -0
  142. package/src/fonts/Recoleta/Recoleta-SemiBold.otf +0 -0
  143. package/src/fonts/Recoleta/Recoleta-Thin.otf +0 -0
  144. package/src/hooks/useEA.ts +72 -72
  145. package/src/hooks/useRedux.ts +6 -6
  146. package/src/index.css +61 -61
  147. package/src/index.tsx +219 -213
  148. package/src/react-app-env.d.ts +1 -1
  149. package/src/reportWebVitals.ts +15 -15
  150. package/src/setupTests.ts +6 -6
  151. package/src/store/index.ts +27 -27
  152. package/src/store/widgets.reducers.ts +120 -120
  153. package/src/store/widgets.selectors.ts +3 -3
  154. package/src/store/widgets.store.ts +55 -55
  155. package/src/theme/breakpoints.ts +10 -10
  156. package/src/theme/components.ts +70 -70
  157. package/src/theme/coreThemeConstants.ts +29 -29
  158. package/src/theme/cssMixins.ts +92 -92
  159. package/src/theme/hooks/useGetSizes.ts +31 -31
  160. package/src/theme/index.ts +24 -24
  161. package/src/theme/palette.ts +150 -150
  162. package/src/theme/shape.ts +7 -7
  163. package/src/theme/theme.types.ts +80 -80
  164. package/src/theme/typography.ts +117 -117
  165. package/src/utilTypes.d.ts +29 -29
  166. package/src/utils/env.ts +9 -9
  167. package/tsconfig.build.json +7 -7
  168. package/tsconfig.json +32 -32
  169. package/webpack.cosmos.js +54 -54
@@ -1,185 +1,185 @@
1
- import { gql, useQuery } from '@apollo/client'
2
- import { EmotionJSX } from '@emotion/react/types/jsx-namespace'
3
- import { Button } from '@mui/material'
4
- import { useWeb3React } from '@web3-react/core'
5
- import { History } from 'history'
6
- import {
7
- downScale,
8
- getWalletAddressAbbr,
9
- PoolInfoType,
10
- toBigNumber,
11
- } from '@huma-finance/shared'
12
- import React, { useCallback, useEffect, useState } from 'react'
13
- import { useHistory } from 'react-router'
14
-
15
- import { ColumnType } from '../../utilTypes'
16
- import { TableActionButton } from '../buttons'
17
- import { UpcomingList } from '../Factoring'
18
- import { ReceiptIcon } from '../icons'
19
-
20
- const GET_RECEIVED_STREAMS = gql`
21
- query GetReceivedStreams($receiver: String!, $tokenIds: [String]!) {
22
- streams(
23
- where: { receiver: $receiver, token_in: $tokenIds, currentFlowRate_gt: 0 }
24
- orderBy: updatedAtTimestamp
25
- orderDirection: desc
26
- ) {
27
- id
28
- currentFlowRate
29
- sender {
30
- id
31
- }
32
- token {
33
- id
34
- symbol
35
- decimals
36
- }
37
- }
38
- }
39
- `
40
-
41
- export type StreamItem = {
42
- id: string
43
- icon: EmotionJSX.Element
44
- token: string
45
- tokenId: string
46
- payer: string
47
- flowrate: string
48
- flowrateMonth: string
49
- }
50
-
51
- type Stream = {
52
- id: string
53
- currentFlowRate: string
54
- sender: {
55
- id: string
56
- }
57
- token: {
58
- id: string
59
- symbol: string
60
- decimals: number
61
- }
62
- }
63
-
64
- type Props = {
65
- hasActiveLoan: boolean
66
- poolInfo?: PoolInfoType
67
- loading: boolean
68
- handleGetPaid: (item: StreamItem) => void
69
- }
70
-
71
- const getUpcomingColumns = (
72
- userHasActiveLoan: boolean,
73
- handleGetPaid: (id: StreamItem) => void,
74
- history: History,
75
- ): ColumnType<StreamItem>[] => [
76
- {
77
- title: '',
78
- dataIndex: 'icon',
79
- noSeparator: true,
80
- width: 10,
81
- style: { padding: '0 0 0 16px' },
82
- },
83
- { title: 'Stream', dataIndex: 'token' },
84
- {
85
- title: 'Payer',
86
- dataIndex: 'payerAbbr',
87
- },
88
- { title: 'Flow rate', dataIndex: 'flowrateMonth' },
89
- {
90
- title: 'Payer Approve',
91
- action: (record) => (
92
- <TableActionButton
93
- title='Go To Approve'
94
- handleClick={() =>
95
- history.push(
96
- `/superfluid?payer=${record.payer}&superToken=${record.tokenId}`,
97
- )
98
- }
99
- disabled={userHasActiveLoan}
100
- />
101
- ),
102
- },
103
- {
104
- title: 'Get Paid',
105
- action: (record) => (
106
- <TableActionButton
107
- title='GET PAID NOW'
108
- handleClick={() => handleGetPaid(record)}
109
- disabled={userHasActiveLoan}
110
- />
111
- ),
112
- },
113
- ]
114
-
115
- export function SuperfluidUpcomingList({
116
- hasActiveLoan,
117
- poolInfo,
118
- loading,
119
- handleGetPaid,
120
- }: Props): React.ReactElement {
121
- const history = useHistory()
122
- const { account, isActive } = useWeb3React()
123
- const [streams, setStreams] = useState<StreamItem[] | undefined>()
124
- const { data } = useQuery<{ streams: Stream[] }>(GET_RECEIVED_STREAMS, {
125
- variables: {
126
- receiver: account ? account.toLowerCase() : undefined,
127
- tokenIds: poolInfo?.extra?.superTokens?.map((item) => item.id) ?? [],
128
- },
129
- })
130
-
131
- useEffect(() => {
132
- if (data?.streams?.length) {
133
- let result: Array<StreamItem | undefined> = data.streams.map((item) => {
134
- const ONE_MONTH_SECONDS = 30 * 24 * 60 * 60
135
- const flowrateMonth = downScale(
136
- toBigNumber(item.currentFlowRate).mul(ONE_MONTH_SECONDS),
137
- item.token.decimals,
138
- )
139
- if (Number(Number(flowrateMonth).toFixed(0)) > 0) {
140
- return {
141
- id: item.id,
142
- icon: <ReceiptIcon css={{ width: '18px' }} />,
143
- token: item.token.symbol,
144
- tokenId: item.token.id,
145
- payer: item.sender.id,
146
- payerAbbr: getWalletAddressAbbr(item.sender.id),
147
- flowrate: item.currentFlowRate,
148
- flowrateMonth: `${Number(flowrateMonth).toFixed(0)}/mo`,
149
- }
150
- }
151
- return undefined
152
- })
153
- result = result.filter((item) => !!item)
154
- setStreams(result as StreamItem[])
155
- }
156
- }, [data])
157
-
158
- const goToCreateStream = useCallback(() => {}, [])
159
-
160
- return (
161
- <UpcomingList<StreamItem>
162
- items={streams}
163
- loading={loading}
164
- columns={getUpcomingColumns(hasActiveLoan, handleGetPaid, history)}
165
- title='Ongoing Streams'
166
- connectWalletDesc='Please connect wallet to check your ongoing streams.'
167
- noItemDesc='You don’t have any ongoing streams eligible for factoring. For now, you can click the button
168
- below to create streams.'
169
- >
170
- {isActive && (
171
- <Button
172
- onClick={goToCreateStream}
173
- type='link'
174
- size='small'
175
- variant='contained'
176
- sx={{ marginTop: '20px' }}
177
- href='https://app.superfluid.finance/'
178
- target='_blank'
179
- >
180
- CREATE STREAM
181
- </Button>
182
- )}
183
- </UpcomingList>
184
- )
185
- }
1
+ import { gql, useQuery } from '@apollo/client'
2
+ import { EmotionJSX } from '@emotion/react/types/jsx-namespace'
3
+ import { Button } from '@mui/material'
4
+ import { useWeb3React } from '@web3-react/core'
5
+ import { History } from 'history'
6
+ import {
7
+ downScale,
8
+ getWalletAddressAbbr,
9
+ PoolInfoType,
10
+ toBigNumber,
11
+ } from '@huma-finance/shared'
12
+ import React, { useCallback, useEffect, useState } from 'react'
13
+ import { useHistory } from 'react-router'
14
+
15
+ import { ColumnType } from '../../utilTypes'
16
+ import { TableActionButton } from '../buttons'
17
+ import { UpcomingList } from '../Factoring'
18
+ import { ReceiptIcon } from '../icons'
19
+
20
+ const GET_RECEIVED_STREAMS = gql`
21
+ query GetReceivedStreams($receiver: String!, $tokenIds: [String]!) {
22
+ streams(
23
+ where: { receiver: $receiver, token_in: $tokenIds, currentFlowRate_gt: 0 }
24
+ orderBy: updatedAtTimestamp
25
+ orderDirection: desc
26
+ ) {
27
+ id
28
+ currentFlowRate
29
+ sender {
30
+ id
31
+ }
32
+ token {
33
+ id
34
+ symbol
35
+ decimals
36
+ }
37
+ }
38
+ }
39
+ `
40
+
41
+ export type StreamItem = {
42
+ id: string
43
+ icon: EmotionJSX.Element
44
+ token: string
45
+ tokenId: string
46
+ payer: string
47
+ flowrate: string
48
+ flowrateMonth: string
49
+ }
50
+
51
+ type Stream = {
52
+ id: string
53
+ currentFlowRate: string
54
+ sender: {
55
+ id: string
56
+ }
57
+ token: {
58
+ id: string
59
+ symbol: string
60
+ decimals: number
61
+ }
62
+ }
63
+
64
+ type Props = {
65
+ hasActiveLoan: boolean
66
+ poolInfo?: PoolInfoType
67
+ loading: boolean
68
+ handleGetPaid: (item: StreamItem) => void
69
+ }
70
+
71
+ const getUpcomingColumns = (
72
+ userHasActiveLoan: boolean,
73
+ handleGetPaid: (id: StreamItem) => void,
74
+ history: History,
75
+ ): ColumnType<StreamItem>[] => [
76
+ {
77
+ title: '',
78
+ dataIndex: 'icon',
79
+ noSeparator: true,
80
+ width: 10,
81
+ style: { padding: '0 0 0 16px' },
82
+ },
83
+ { title: 'Stream', dataIndex: 'token' },
84
+ {
85
+ title: 'Payer',
86
+ dataIndex: 'payerAbbr',
87
+ },
88
+ { title: 'Flow rate', dataIndex: 'flowrateMonth' },
89
+ {
90
+ title: 'Payer Approve',
91
+ action: (record) => (
92
+ <TableActionButton
93
+ title='Go To Approve'
94
+ handleClick={() =>
95
+ history.push(
96
+ `/superfluid?payer=${record.payer}&superToken=${record.tokenId}`,
97
+ )
98
+ }
99
+ disabled={userHasActiveLoan}
100
+ />
101
+ ),
102
+ },
103
+ {
104
+ title: 'Get Paid',
105
+ action: (record) => (
106
+ <TableActionButton
107
+ title='GET PAID NOW'
108
+ handleClick={() => handleGetPaid(record)}
109
+ disabled={userHasActiveLoan}
110
+ />
111
+ ),
112
+ },
113
+ ]
114
+
115
+ export function SuperfluidUpcomingList({
116
+ hasActiveLoan,
117
+ poolInfo,
118
+ loading,
119
+ handleGetPaid,
120
+ }: Props): React.ReactElement {
121
+ const history = useHistory()
122
+ const { account, isActive } = useWeb3React()
123
+ const [streams, setStreams] = useState<StreamItem[] | undefined>()
124
+ const { data } = useQuery<{ streams: Stream[] }>(GET_RECEIVED_STREAMS, {
125
+ variables: {
126
+ receiver: account ? account.toLowerCase() : undefined,
127
+ tokenIds: poolInfo?.extra?.superTokens?.map((item) => item.id) ?? [],
128
+ },
129
+ })
130
+
131
+ useEffect(() => {
132
+ if (data?.streams?.length) {
133
+ let result: Array<StreamItem | undefined> = data.streams.map((item) => {
134
+ const ONE_MONTH_SECONDS = 30 * 24 * 60 * 60
135
+ const flowrateMonth = downScale(
136
+ toBigNumber(item.currentFlowRate).mul(ONE_MONTH_SECONDS),
137
+ item.token.decimals,
138
+ )
139
+ if (Number(Number(flowrateMonth).toFixed(0)) > 0) {
140
+ return {
141
+ id: item.id,
142
+ icon: <ReceiptIcon css={{ width: '18px' }} />,
143
+ token: item.token.symbol,
144
+ tokenId: item.token.id,
145
+ payer: item.sender.id,
146
+ payerAbbr: getWalletAddressAbbr(item.sender.id),
147
+ flowrate: item.currentFlowRate,
148
+ flowrateMonth: `${Number(flowrateMonth).toFixed(0)}/mo`,
149
+ }
150
+ }
151
+ return undefined
152
+ })
153
+ result = result.filter((item) => !!item)
154
+ setStreams(result as StreamItem[])
155
+ }
156
+ }, [data])
157
+
158
+ const goToCreateStream = useCallback(() => {}, [])
159
+
160
+ return (
161
+ <UpcomingList<StreamItem>
162
+ items={streams}
163
+ loading={loading}
164
+ columns={getUpcomingColumns(hasActiveLoan, handleGetPaid, history)}
165
+ title='Ongoing Streams'
166
+ connectWalletDesc='Please connect wallet to check your ongoing streams.'
167
+ noItemDesc='You don’t have any ongoing streams eligible for factoring. For now, you can click the button
168
+ below to create streams.'
169
+ >
170
+ {isActive && (
171
+ <Button
172
+ onClick={goToCreateStream}
173
+ type='link'
174
+ size='small'
175
+ variant='contained'
176
+ sx={{ marginTop: '20px' }}
177
+ href='https://app.superfluid.finance/'
178
+ target='_blank'
179
+ >
180
+ CREATE STREAM
181
+ </Button>
182
+ )}
183
+ </UpcomingList>
184
+ )
185
+ }
@@ -1,85 +1,85 @@
1
- import { Box } from '@mui/material'
2
- import { useWeb3React } from '@web3-react/core'
3
- import {
4
- CreditEvent,
5
- POOL_NAME,
6
- POOL_TYPE,
7
- PoolContractMap,
8
- PoolMap,
9
- useFactoring,
10
- } from '@huma-finance/shared'
11
- import React from 'react'
12
-
13
- import { Activity } from '../Activity'
14
- import { ApolloWrapper } from '../ApolloWrapper'
15
- import { StreamFactoringBorrow } from '../StreamFactoring/borrow'
16
- import { SuperfluidFactoredList } from './SuperfluidFactoredList'
17
- import { StreamItem, SuperfluidUpcomingList } from './SuperfluidUpcomingList'
18
-
19
- export function SuperfluidFactoring(): React.ReactElement {
20
- const poolName = POOL_NAME.Superfluid
21
- const { chainId } = useWeb3React()
22
- const {
23
- accountStats,
24
- accountHasActiveLoan,
25
- actionType,
26
- loading,
27
- poolInfo,
28
- modalIsOpen,
29
- selectedItem,
30
- styles,
31
- handleGetPaid,
32
- handleGetPaidSuccess,
33
- handlePayManually,
34
- handleClose,
35
- } = useFactoring<StreamItem>(poolName, POOL_TYPE.Stream)
36
-
37
- return (
38
- <Box css={styles.wrapper}>
39
- <Box css={styles.title}>Stream Factoring</Box>
40
- <Box css={styles.description} marginBottom='47px'>
41
- {PoolMap.Stream[poolName]?.borrowDesc}
42
- </Box>
43
- {poolInfo && (
44
- <SuperfluidFactoredList
45
- poolInfo={poolInfo}
46
- handlePayManually={handlePayManually}
47
- loading={loading && actionType === 'payment'}
48
- accountStats={accountStats}
49
- />
50
- )}
51
- <ApolloWrapper uri={poolInfo?.extra?.subgraph!}>
52
- <SuperfluidUpcomingList
53
- poolInfo={poolInfo}
54
- handleGetPaid={handleGetPaid}
55
- hasActiveLoan={accountHasActiveLoan}
56
- loading={loading && actionType === 'borrow'}
57
- />
58
- </ApolloWrapper>
59
- <ApolloWrapper uri={PoolContractMap[chainId!]?.subgraph}>
60
- {poolInfo && (
61
- <Activity
62
- poolInfo={poolInfo}
63
- targetEvents={[
64
- CreditEvent.DrawdownMadeWithReceivable,
65
- CreditEvent.PaymentMade,
66
- CreditEvent.ReceivedPaymentProcessed,
67
- ]}
68
- />
69
- )}
70
- </ApolloWrapper>
71
- {poolInfo && selectedItem && actionType === 'borrow' && (
72
- <StreamFactoringBorrow
73
- poolName={POOL_NAME.Superfluid}
74
- poolType={POOL_TYPE.Stream}
75
- payerAddress={selectedItem.payer}
76
- superToken={selectedItem.tokenId}
77
- currentFlowRate={selectedItem.flowrate}
78
- isOpen={modalIsOpen}
79
- handleClose={handleClose}
80
- handleSuccess={handleGetPaidSuccess}
81
- />
82
- )}
83
- </Box>
84
- )
85
- }
1
+ import { Box } from '@mui/material'
2
+ import { useWeb3React } from '@web3-react/core'
3
+ import {
4
+ CreditEvent,
5
+ POOL_NAME,
6
+ POOL_TYPE,
7
+ PoolContractMap,
8
+ PoolMap,
9
+ useFactoring,
10
+ } from '@huma-finance/shared'
11
+ import React from 'react'
12
+
13
+ import { Activity } from '../Activity'
14
+ import { ApolloWrapper } from '../ApolloWrapper'
15
+ import { StreamFactoringBorrow } from '../StreamFactoring/borrow'
16
+ import { SuperfluidFactoredList } from './SuperfluidFactoredList'
17
+ import { StreamItem, SuperfluidUpcomingList } from './SuperfluidUpcomingList'
18
+
19
+ export function SuperfluidFactoring(): React.ReactElement {
20
+ const poolName = POOL_NAME.Superfluid
21
+ const { chainId } = useWeb3React()
22
+ const {
23
+ accountStats,
24
+ accountHasActiveLoan,
25
+ actionType,
26
+ loading,
27
+ poolInfo,
28
+ modalIsOpen,
29
+ selectedItem,
30
+ styles,
31
+ handleGetPaid,
32
+ handleGetPaidSuccess,
33
+ handlePayManually,
34
+ handleClose,
35
+ } = useFactoring<StreamItem>(poolName, POOL_TYPE.Stream)
36
+
37
+ return (
38
+ <Box css={styles.wrapper}>
39
+ <Box css={styles.title}>Stream Factoring</Box>
40
+ <Box css={styles.description} marginBottom='47px'>
41
+ {PoolMap.Stream[poolName]?.borrowDesc}
42
+ </Box>
43
+ {poolInfo && (
44
+ <SuperfluidFactoredList
45
+ poolInfo={poolInfo}
46
+ handlePayManually={handlePayManually}
47
+ loading={loading && actionType === 'payment'}
48
+ accountStats={accountStats}
49
+ />
50
+ )}
51
+ <ApolloWrapper uri={poolInfo?.extra?.subgraph!}>
52
+ <SuperfluidUpcomingList
53
+ poolInfo={poolInfo}
54
+ handleGetPaid={handleGetPaid}
55
+ hasActiveLoan={accountHasActiveLoan}
56
+ loading={loading && actionType === 'borrow'}
57
+ />
58
+ </ApolloWrapper>
59
+ <ApolloWrapper uri={PoolContractMap[chainId!]?.subgraph}>
60
+ {poolInfo && (
61
+ <Activity
62
+ poolInfo={poolInfo}
63
+ targetEvents={[
64
+ CreditEvent.DrawdownMadeWithReceivable,
65
+ CreditEvent.PaymentMade,
66
+ CreditEvent.ReceivedPaymentProcessed,
67
+ ]}
68
+ />
69
+ )}
70
+ </ApolloWrapper>
71
+ {poolInfo && selectedItem && actionType === 'borrow' && (
72
+ <StreamFactoringBorrow
73
+ poolName={POOL_NAME.Superfluid}
74
+ poolType={POOL_TYPE.Stream}
75
+ payerAddress={selectedItem.payer}
76
+ superToken={selectedItem.tokenId}
77
+ currentFlowRate={selectedItem.flowrate}
78
+ isOpen={modalIsOpen}
79
+ handleClose={handleClose}
80
+ handleSuccess={handleGetPaidSuccess}
81
+ />
82
+ )}
83
+ </Box>
84
+ )
85
+ }