@huma-finance/widgets 0.0.29 → 0.0.31

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 (167) 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 +144 -142
  19. package/dist/cjs/index.cjs.map +1 -1
  20. package/dist/index.d.ts +193 -193
  21. package/dist/index.js +145 -143
  22. package/dist/index.js.map +1 -1
  23. package/jsdoc2md.json +20 -20
  24. package/package.json +5 -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/ConfirmTransferModal.tsx +153 -153
  35. package/src/components/CreditLine/borrow/1-Evaluation.tsx +157 -157
  36. package/src/components/CreditLine/borrow/2-ChooseAmount.tsx +68 -68
  37. package/src/components/CreditLine/borrow/3-Transfer.tsx +44 -44
  38. package/src/components/CreditLine/borrow/4-ApproveAllowance.tsx +29 -29
  39. package/src/components/CreditLine/borrow/5-Success.tsx +30 -30
  40. package/src/components/CreditLine/borrow/index.tsx +117 -117
  41. package/src/components/CreditLine/payment/1-ChooseAmount.tsx +67 -67
  42. package/src/components/CreditLine/payment/2-ApproveAllowance.tsx +23 -23
  43. package/src/components/CreditLine/payment/3-Transfer.tsx +34 -34
  44. package/src/components/CreditLine/payment/4-Success.tsx +39 -39
  45. package/src/components/CreditLine/payment/index.tsx +94 -94
  46. package/src/components/ErrorModal.tsx +132 -132
  47. package/src/components/Factoring/FactoredList.tsx +143 -143
  48. package/src/components/Factoring/UpcomingList.tsx +90 -90
  49. package/src/components/Factoring/index.ts +2 -2
  50. package/src/components/HumaLoading.tsx +68 -68
  51. package/src/components/HumaTable.tsx +158 -158
  52. package/src/components/InvoiceFactoring/borrow/1-Evaluation.tsx +49 -49
  53. package/src/components/InvoiceFactoring/borrow/2-ChooseAmount.tsx +88 -88
  54. package/src/components/InvoiceFactoring/borrow/3-ConfirmTransfer.tsx +37 -37
  55. package/src/components/InvoiceFactoring/borrow/4-ApproveNFT.tsx +55 -55
  56. package/src/components/InvoiceFactoring/borrow/5-Transfer.tsx +34 -34
  57. package/src/components/InvoiceFactoring/borrow/6-Success.tsx +20 -20
  58. package/src/components/InvoiceFactoring/borrow/index.tsx +94 -94
  59. package/src/components/InvoiceFactoring/payment/1-ChooseAmount.tsx +67 -67
  60. package/src/components/InvoiceFactoring/payment/2-ApproveAllowance.tsx +23 -23
  61. package/src/components/InvoiceFactoring/payment/3-Transfer.tsx +34 -34
  62. package/src/components/InvoiceFactoring/payment/4-Success.tsx +23 -23
  63. package/src/components/InvoiceFactoring/payment/index.tsx +86 -86
  64. package/src/components/Lend/supply/1-Evaluation.tsx +175 -171
  65. package/src/components/Lend/supply/2-ChooseAmount.tsx +70 -70
  66. package/src/components/Lend/supply/3-ApproveAllowance.tsx +25 -25
  67. package/src/components/Lend/supply/4-ConfirmTransfer.tsx +104 -104
  68. package/src/components/Lend/supply/6-Transfer.tsx +32 -32
  69. package/src/components/Lend/supply/7-Success.tsx +49 -49
  70. package/src/components/Lend/supply/index.tsx +144 -144
  71. package/src/components/Lend/withdraw/1-CheckWithdrawble.tsx +73 -73
  72. package/src/components/Lend/withdraw/2-ChooseAmount.tsx +50 -50
  73. package/src/components/Lend/withdraw/3-Transfer.tsx +32 -32
  74. package/src/components/Lend/withdraw/4-Success.tsx +49 -49
  75. package/src/components/Lend/withdraw/index.tsx +101 -101
  76. package/src/components/LoadingModal.tsx +49 -49
  77. package/src/components/NotifiSubscriptionModal.tsx +84 -0
  78. package/src/components/StreamFactoring/borrow/1-Evaluation.tsx +55 -55
  79. package/src/components/StreamFactoring/borrow/2-ChooseAmount.tsx +127 -127
  80. package/src/components/StreamFactoring/borrow/3-ConfirmTransfer.tsx +42 -42
  81. package/src/components/StreamFactoring/borrow/4-ApproveAllowance.tsx +33 -33
  82. package/src/components/StreamFactoring/borrow/5-Permit.tsx +144 -144
  83. package/src/components/StreamFactoring/borrow/6-Transfer.tsx +37 -37
  84. package/src/components/StreamFactoring/borrow/7-Success.tsx +20 -20
  85. package/src/components/StreamFactoring/borrow/index.tsx +94 -94
  86. package/src/components/StreamFactoring/payment/ChooseAmount.tsx +54 -54
  87. package/src/components/StreamFactoring/payment/Success.tsx +23 -23
  88. package/src/components/StreamFactoring/payment/Transfer.tsx +34 -34
  89. package/src/components/StreamFactoring/payment/index.tsx +66 -66
  90. package/src/components/SuperfluidFactoring/SuperfluidFactoredList.tsx +70 -70
  91. package/src/components/SuperfluidFactoring/SuperfluidUpcomingList.tsx +167 -167
  92. package/src/components/SuperfluidFactoring/index.tsx +85 -85
  93. package/src/components/TxDoneModal.tsx +83 -83
  94. package/src/components/TxSendModal.tsx +59 -59
  95. package/src/components/ViewOnExplorer.tsx +26 -26
  96. package/src/components/WidgetWrapper.tsx +74 -74
  97. package/src/components/WrapperModal.tsx +54 -54
  98. package/src/components/buttons/TableActionButton.tsx +36 -36
  99. package/src/components/buttons/index.ts +1 -1
  100. package/src/components/humaModal/HumaModal.tsx +68 -68
  101. package/src/components/humaModal/HumaModalHeader.tsx +70 -70
  102. package/src/components/humaModal/index.tsx +2 -2
  103. package/src/components/icons/approve-lender.svg +30 -30
  104. package/src/components/icons/auto-payback.svg +40 -40
  105. package/src/components/icons/check-circle.svg +3 -3
  106. package/src/components/icons/check-green.svg +3 -3
  107. package/src/components/icons/check.svg +10 -10
  108. package/src/components/icons/donut.svg +904 -904
  109. package/src/components/icons/ellipse.svg +3 -3
  110. package/src/components/icons/huma-full.svg +22 -22
  111. package/src/components/icons/huma.svg +15 -15
  112. package/src/components/icons/index.tsx +93 -93
  113. package/src/components/icons/loader.svg +229 -229
  114. package/src/components/icons/metamask.svg +31 -31
  115. package/src/components/icons/polygon.svg +16 -16
  116. package/src/components/icons/receipt.svg +3 -3
  117. package/src/components/icons/separator.svg +3 -3
  118. package/src/components/icons/sorry.svg +31 -31
  119. package/src/components/icons/usdc.svg +5 -5
  120. package/src/components/icons/wallet-connect.svg +11 -11
  121. package/src/cosmos/CreditLineBorrow.fixture.tsx +86 -86
  122. package/src/cosmos/CreditLinePayment.fixture.tsx +50 -50
  123. package/src/cosmos/InvoiceFactoringBorrow.fixture.tsx +111 -111
  124. package/src/cosmos/InvoiceFactoringPayment.fixture.tsx +67 -67
  125. package/src/cosmos/LendSupply.fixture.tsx +75 -75
  126. package/src/cosmos/LendWithdraw.fixture.tsx +43 -43
  127. package/src/cosmos/SDKTesting.fixture.tsx +4 -3
  128. package/src/cosmos/SuperfluidFactoringBorrow.fixture.tsx +15 -15
  129. package/src/cosmos/WalletWrapper.tsx +52 -52
  130. package/src/cosmos/abis/InvoiceNFT.json +644 -644
  131. package/src/cosmos/abis/ReceivableFactoringPool.json +1529 -1529
  132. package/src/cosmos/utils/env.ts +6 -6
  133. package/src/cosmos/utils/index.ts +169 -169
  134. package/src/fonts/Recoleta/Recoleta-Black.otf +0 -0
  135. package/src/fonts/Recoleta/Recoleta-Bold.otf +0 -0
  136. package/src/fonts/Recoleta/Recoleta-Light.otf +0 -0
  137. package/src/fonts/Recoleta/Recoleta-Medium.otf +0 -0
  138. package/src/fonts/Recoleta/Recoleta-Regular.otf +0 -0
  139. package/src/fonts/Recoleta/Recoleta-RegularDEMO.otf +0 -0
  140. package/src/fonts/Recoleta/Recoleta-SemiBold.otf +0 -0
  141. package/src/fonts/Recoleta/Recoleta-Thin.otf +0 -0
  142. package/src/hooks/useEA.ts +53 -53
  143. package/src/hooks/useRedux.ts +6 -6
  144. package/src/index.css +61 -61
  145. package/src/index.tsx +301 -301
  146. package/src/react-app-env.d.ts +1 -1
  147. package/src/reportWebVitals.ts +15 -15
  148. package/src/setupTests.ts +6 -6
  149. package/src/store/index.ts +27 -27
  150. package/src/store/widgets.reducers.ts +120 -120
  151. package/src/store/widgets.selectors.ts +3 -3
  152. package/src/store/widgets.store.ts +54 -54
  153. package/src/theme/breakpoints.ts +10 -10
  154. package/src/theme/components.ts +70 -70
  155. package/src/theme/coreThemeConstants.ts +29 -29
  156. package/src/theme/cssMixins.ts +92 -92
  157. package/src/theme/hooks/useGetSizes.ts +31 -31
  158. package/src/theme/index.ts +24 -24
  159. package/src/theme/palette.ts +150 -150
  160. package/src/theme/shape.ts +7 -7
  161. package/src/theme/theme.types.ts +80 -80
  162. package/src/theme/typography.ts +117 -117
  163. package/src/utilTypes.d.ts +31 -31
  164. package/src/utils/env.ts +10 -10
  165. package/tsconfig.build.json +7 -7
  166. package/tsconfig.json +32 -32
  167. package/webpack.cosmos.js +54 -54
@@ -1,59 +1,59 @@
1
- import { useWeb3React } from '@web3-react/core'
2
- import { Contract } from 'ethers'
3
- import {
4
- PoolInfoType,
5
- sendTxAtom,
6
- TxStateType,
7
- useMount,
8
- usePoolContract,
9
- } from '@huma-finance/shared'
10
- import { useAtom } from 'jotai'
11
- import React, { useEffect } from 'react'
12
-
13
- import { useAppDispatch } from '../hooks/useRedux'
14
- import { LoadingModal } from './LoadingModal'
15
- import { ViewOnExplorer } from './ViewOnExplorer'
16
-
17
- type Props = {
18
- poolInfo: PoolInfoType
19
- method: string
20
- params: unknown[]
21
- title?: string
22
- contract?: Contract
23
- handleSuccess?: () => void
24
- }
25
-
26
- export function TxSendModal({
27
- poolInfo,
28
- title,
29
- method,
30
- params,
31
- contract,
32
- handleSuccess,
33
- }: Props): React.ReactElement {
34
- const dispatch = useAppDispatch()
35
- const { provider } = useWeb3React()
36
- const poolContract = usePoolContract(poolInfo.poolName, poolInfo.poolType)
37
- const [{ state, txHash }, send] = useAtom(sendTxAtom)
38
-
39
- useEffect(() => {
40
- if (state === TxStateType.Success) {
41
- if (handleSuccess) {
42
- handleSuccess()
43
- }
44
- }
45
- }, [dispatch, handleSuccess, state])
46
-
47
- useMount(() => {
48
- send({ contract: contract ?? poolContract!, method, params, provider })
49
- })
50
-
51
- return (
52
- <LoadingModal
53
- title={title ?? 'Transaction Pending'}
54
- description='Waiting for confirmation...'
55
- >
56
- <ViewOnExplorer txHash={txHash} />
57
- </LoadingModal>
58
- )
59
- }
1
+ import { useWeb3React } from '@web3-react/core'
2
+ import { Contract } from 'ethers'
3
+ import {
4
+ PoolInfoType,
5
+ sendTxAtom,
6
+ TxStateType,
7
+ useMount,
8
+ usePoolContract,
9
+ } from '@huma-finance/shared'
10
+ import { useAtom } from 'jotai'
11
+ import React, { useEffect } from 'react'
12
+
13
+ import { useAppDispatch } from '../hooks/useRedux'
14
+ import { LoadingModal } from './LoadingModal'
15
+ import { ViewOnExplorer } from './ViewOnExplorer'
16
+
17
+ type Props = {
18
+ poolInfo: PoolInfoType
19
+ method: string
20
+ params: unknown[]
21
+ title?: string
22
+ contract?: Contract
23
+ handleSuccess?: () => void
24
+ }
25
+
26
+ export function TxSendModal({
27
+ poolInfo,
28
+ title,
29
+ method,
30
+ params,
31
+ contract,
32
+ handleSuccess,
33
+ }: Props): React.ReactElement {
34
+ const dispatch = useAppDispatch()
35
+ const { provider } = useWeb3React()
36
+ const poolContract = usePoolContract(poolInfo.poolName, poolInfo.poolType)
37
+ const [{ state, txHash }, send] = useAtom(sendTxAtom)
38
+
39
+ useEffect(() => {
40
+ if (state === TxStateType.Success) {
41
+ if (handleSuccess) {
42
+ handleSuccess()
43
+ }
44
+ }
45
+ }, [dispatch, handleSuccess, state])
46
+
47
+ useMount(() => {
48
+ send({ contract: contract ?? poolContract!, method, params, provider })
49
+ })
50
+
51
+ return (
52
+ <LoadingModal
53
+ title={title ?? 'Transaction Pending'}
54
+ description='Waiting for confirmation...'
55
+ >
56
+ <ViewOnExplorer txHash={txHash} />
57
+ </LoadingModal>
58
+ )
59
+ }
@@ -1,26 +1,26 @@
1
- import { Box, Button } from '@mui/material'
2
- import { useWeb3React } from '@web3-react/core'
3
- import { CHAINS, openInNewTab } from '@huma-finance/shared'
4
- import React from 'react'
5
-
6
- type Props = {
7
- txHash: string
8
- }
9
-
10
- export function ViewOnExplorer({ txHash }: Props): React.ReactElement | null {
11
- const { chainId } = useWeb3React()
12
- const chain = chainId ? CHAINS[chainId] : null
13
-
14
- if (!txHash || !chain) {
15
- return null
16
- }
17
-
18
- return (
19
- <Button
20
- variant='outlined'
21
- onClick={() => openInNewTab(`${chain.explorer}/${txHash}`)}
22
- >
23
- <Box component='span'>VIEW ON EXPLORER</Box>
24
- </Button>
25
- )
26
- }
1
+ import { Box, Button } from '@mui/material'
2
+ import { useWeb3React } from '@web3-react/core'
3
+ import { CHAINS, openInNewTab } from '@huma-finance/shared'
4
+ import React from 'react'
5
+
6
+ type Props = {
7
+ txHash: string
8
+ }
9
+
10
+ export function ViewOnExplorer({ txHash }: Props): React.ReactElement | null {
11
+ const { chainId } = useWeb3React()
12
+ const chain = chainId ? CHAINS[chainId] : null
13
+
14
+ if (!txHash || !chain) {
15
+ return null
16
+ }
17
+
18
+ return (
19
+ <Button
20
+ variant='outlined'
21
+ onClick={() => openInNewTab(`${chain.explorer}/${txHash}`)}
22
+ >
23
+ <Box component='span'>VIEW ON EXPLORER</Box>
24
+ </Button>
25
+ )
26
+ }
@@ -1,74 +1,74 @@
1
- import { isTxFailed, sendTxAtom, txAtom } from '@huma-finance/shared'
2
- import { useAtom } from 'jotai'
3
- import { useResetAtom } from 'jotai/utils'
4
- import React, { useCallback, useEffect } from 'react'
5
-
6
- import { useAppDispatch, useAppSelector } from '../hooks/useRedux'
7
- import { resetState, setError } from '../store/widgets.reducers'
8
- import { selectWidgetState } from '../store/widgets.selectors'
9
- import { WIDGET_STEP } from '../store/widgets.store'
10
- import { WCProps } from '../utilTypes'
11
- import { HumaModal, HumaModalHeader } from './humaModal'
12
- import { LoadingModal } from './LoadingModal'
13
-
14
- type Props = {
15
- isOpen: boolean
16
- isLoading?: boolean
17
- loadingTitle?: string
18
- handleClose: () => void
19
- handleSuccess?: (blockNumber: number) => void
20
- }
21
-
22
- export function WidgetWrapper({
23
- isOpen,
24
- isLoading = false,
25
- loadingTitle = '',
26
- handleClose,
27
- handleSuccess,
28
- children,
29
- }: WCProps<Props>): React.ReactElement | null {
30
- const dispatch = useAppDispatch()
31
- const { step } = useAppSelector(selectWidgetState)
32
- const [{ state, failReason, txReceipt }] = useAtom(sendTxAtom)
33
- const reset = useResetAtom(txAtom)
34
-
35
- useEffect(() => {
36
- if (isTxFailed(state) && failReason) {
37
- dispatch(setError({ errorMessage: failReason }))
38
- }
39
- }, [dispatch, failReason, state])
40
-
41
- useEffect(() => {
42
- if (step === WIDGET_STEP.Done && txReceipt) {
43
- if (handleSuccess) {
44
- handleSuccess(txReceipt.blockNumber)
45
- }
46
- }
47
- }, [handleSuccess, step, txReceipt])
48
-
49
- const handleCloseModal = useCallback(() => {
50
- reset()
51
- dispatch(resetState())
52
- handleClose()
53
- }, [dispatch, handleClose, reset])
54
-
55
- // when close modal, return null to make sure all the states are reset
56
- if (!isOpen) {
57
- return null
58
- }
59
-
60
- return (
61
- <HumaModal
62
- isOpen={isOpen}
63
- overflowY='auto'
64
- onClose={handleCloseModal}
65
- width='480px'
66
- padding='30px 40px'
67
- disableBackdropClick
68
- >
69
- <HumaModalHeader onClose={handleCloseModal} height={0} />
70
- {isLoading && <LoadingModal title={loadingTitle} />}
71
- {!isLoading && children}
72
- </HumaModal>
73
- )
74
- }
1
+ import { isTxFailed, sendTxAtom, txAtom } from '@huma-finance/shared'
2
+ import { useAtom } from 'jotai'
3
+ import { useResetAtom } from 'jotai/utils'
4
+ import React, { useCallback, useEffect } from 'react'
5
+
6
+ import { useAppDispatch, useAppSelector } from '../hooks/useRedux'
7
+ import { resetState, setError } from '../store/widgets.reducers'
8
+ import { selectWidgetState } from '../store/widgets.selectors'
9
+ import { WIDGET_STEP } from '../store/widgets.store'
10
+ import { WCProps } from '../utilTypes'
11
+ import { HumaModal, HumaModalHeader } from './humaModal'
12
+ import { LoadingModal } from './LoadingModal'
13
+
14
+ type Props = {
15
+ isOpen: boolean
16
+ isLoading?: boolean
17
+ loadingTitle?: string
18
+ handleClose: () => void
19
+ handleSuccess?: (blockNumber: number) => void
20
+ }
21
+
22
+ export function WidgetWrapper({
23
+ isOpen,
24
+ isLoading = false,
25
+ loadingTitle = '',
26
+ handleClose,
27
+ handleSuccess,
28
+ children,
29
+ }: WCProps<Props>): React.ReactElement | null {
30
+ const dispatch = useAppDispatch()
31
+ const { step } = useAppSelector(selectWidgetState)
32
+ const [{ state, failReason, txReceipt }] = useAtom(sendTxAtom)
33
+ const reset = useResetAtom(txAtom)
34
+
35
+ useEffect(() => {
36
+ if (isTxFailed(state) && failReason) {
37
+ dispatch(setError({ errorMessage: failReason }))
38
+ }
39
+ }, [dispatch, failReason, state])
40
+
41
+ useEffect(() => {
42
+ if (step === WIDGET_STEP.Done && txReceipt) {
43
+ if (handleSuccess) {
44
+ handleSuccess(txReceipt.blockNumber)
45
+ }
46
+ }
47
+ }, [handleSuccess, step, txReceipt])
48
+
49
+ const handleCloseModal = useCallback(() => {
50
+ reset()
51
+ dispatch(resetState())
52
+ handleClose()
53
+ }, [dispatch, handleClose, reset])
54
+
55
+ // when close modal, return null to make sure all the states are reset
56
+ if (!isOpen) {
57
+ return null
58
+ }
59
+
60
+ return (
61
+ <HumaModal
62
+ isOpen={isOpen}
63
+ overflowY='auto'
64
+ onClose={handleCloseModal}
65
+ width='480px'
66
+ padding='30px 40px'
67
+ disableBackdropClick
68
+ >
69
+ <HumaModalHeader onClose={handleCloseModal} height={0} />
70
+ {isLoading && <LoadingModal title={loadingTitle} />}
71
+ {!isLoading && children}
72
+ </HumaModal>
73
+ )
74
+ }
@@ -1,54 +1,54 @@
1
- import { Box, css, Typography, useTheme } from '@mui/material'
2
- import React from 'react'
3
-
4
- type Props = {
5
- title: string
6
- subTitle?: string | React.ReactNode
7
- children: React.ReactNode
8
- }
9
-
10
- export function WrapperModal({
11
- title,
12
- subTitle,
13
- children,
14
- }: Props): React.ReactElement {
15
- const theme = useTheme()
16
-
17
- const styles = {
18
- wrapper: css`
19
- height: 518px;
20
- position: relative;
21
- `,
22
- header: css`
23
- ${theme.cssMixins.rowHCentered};
24
- font-family: 'Uni-Neue-Bold';
25
- font-size: 20px;
26
- margin-top: -5px;
27
- `,
28
- content: css`
29
- ${theme.cssMixins.rowHCentered};
30
- margin-top: 30px;
31
- font-family: 'Uni-Neue-Regular';
32
- font-size: 16px;
33
- line-height: 24px;
34
- color: #49505b;
35
- `,
36
- bottom: css`
37
- & .MuiButtonBase-root {
38
- width: 100%;
39
- position: absolute;
40
- bottom: 0;
41
- }
42
- `,
43
- }
44
-
45
- return (
46
- <Box css={styles.wrapper}>
47
- <Typography variant='h6' css={styles.header}>
48
- {title}
49
- </Typography>
50
- {subTitle && <Box css={styles.content}>{subTitle}</Box>}
51
- {children}
52
- </Box>
53
- )
54
- }
1
+ import { Box, css, Typography, useTheme } from '@mui/material'
2
+ import React from 'react'
3
+
4
+ type Props = {
5
+ title: string
6
+ subTitle?: string | React.ReactNode
7
+ children: React.ReactNode
8
+ }
9
+
10
+ export function WrapperModal({
11
+ title,
12
+ subTitle,
13
+ children,
14
+ }: Props): React.ReactElement {
15
+ const theme = useTheme()
16
+
17
+ const styles = {
18
+ wrapper: css`
19
+ height: 518px;
20
+ position: relative;
21
+ `,
22
+ header: css`
23
+ ${theme.cssMixins.rowHCentered};
24
+ font-family: 'Uni-Neue-Bold';
25
+ font-size: 20px;
26
+ margin-top: -5px;
27
+ `,
28
+ content: css`
29
+ ${theme.cssMixins.rowHCentered};
30
+ margin-top: 30px;
31
+ font-family: 'Uni-Neue-Regular';
32
+ font-size: 16px;
33
+ line-height: 24px;
34
+ color: #49505b;
35
+ `,
36
+ bottom: css`
37
+ & .MuiButtonBase-root {
38
+ width: 100%;
39
+ position: absolute;
40
+ bottom: 0;
41
+ }
42
+ `,
43
+ }
44
+
45
+ return (
46
+ <Box css={styles.wrapper}>
47
+ <Typography variant='h6' css={styles.header}>
48
+ {title}
49
+ </Typography>
50
+ {subTitle && <Box css={styles.content}>{subTitle}</Box>}
51
+ {children}
52
+ </Box>
53
+ )
54
+ }
@@ -1,36 +1,36 @@
1
- import { Box, Button, css } from '@mui/material'
2
-
3
- type Props = {
4
- title: string
5
- className?: string
6
- handleClick: () => void
7
- disabled?: boolean
8
- }
9
-
10
- export function TableActionButton({
11
- title,
12
- className,
13
- handleClick,
14
- disabled = false,
15
- }: Props): React.ReactElement {
16
- const styles = css`
17
- border: none;
18
- padding: 0;
19
- background: ${disabled ? 'unset !important' : 'inherit'};
20
- &:hover {
21
- border: none;
22
- }
23
- `
24
-
25
- return (
26
- <Button
27
- className={className}
28
- variant={disabled ? undefined : 'outlined'}
29
- onClick={handleClick}
30
- css={styles}
31
- disabled={disabled}
32
- >
33
- <Box>{title}</Box>
34
- </Button>
35
- )
36
- }
1
+ import { Box, Button, css } from '@mui/material'
2
+
3
+ type Props = {
4
+ title: string
5
+ className?: string
6
+ handleClick: () => void
7
+ disabled?: boolean
8
+ }
9
+
10
+ export function TableActionButton({
11
+ title,
12
+ className,
13
+ handleClick,
14
+ disabled = false,
15
+ }: Props): React.ReactElement {
16
+ const styles = css`
17
+ border: none;
18
+ padding: 0;
19
+ background: ${disabled ? 'unset !important' : 'inherit'};
20
+ &:hover {
21
+ border: none;
22
+ }
23
+ `
24
+
25
+ return (
26
+ <Button
27
+ className={className}
28
+ variant={disabled ? undefined : 'outlined'}
29
+ onClick={handleClick}
30
+ css={styles}
31
+ disabled={disabled}
32
+ >
33
+ <Box>{title}</Box>
34
+ </Button>
35
+ )
36
+ }
@@ -1 +1 @@
1
- export * from './TableActionButton'
1
+ export * from './TableActionButton'
@@ -1,68 +1,68 @@
1
- import { css } from '@emotion/react'
2
- import { Dialog } from '@mui/material'
3
- import { useMQ } from '@huma-finance/shared'
4
- import React from 'react'
5
-
6
- import { white } from '../../theme/palette'
7
-
8
- type HumaModalType = {
9
- children?: React.ReactNode
10
- isOpen: boolean
11
- onClose: () => void
12
- overflow?: string
13
- overflowY?: 'visible' | 'hidden' | 'clip' | 'scroll' | 'auto'
14
- width?: string
15
- padding?: string
16
- disableBackdropClick?: boolean
17
- }
18
-
19
- export function HumaModal({
20
- children,
21
- isOpen,
22
- onClose,
23
- overflow,
24
- overflowY,
25
- width = '480px',
26
- padding = '30px',
27
- disableBackdropClick = false,
28
- }: HumaModalType): React.ReactElement {
29
- const { isXsSize } = useMQ()
30
-
31
- const styles = {
32
- wrapper: css`
33
- max-width: 100vw;
34
- width: ${isXsSize ? '100%' : width};
35
- height: auto;
36
- padding: ${padding};
37
- box-sizing: border-box;
38
- `,
39
- }
40
-
41
- const handleClose = (reason: 'backdropClick' | 'escapeKeyDown') => {
42
- if (!disableBackdropClick) {
43
- onClose()
44
- } else if (reason !== 'backdropClick' && reason !== 'escapeKeyDown') {
45
- onClose()
46
- }
47
- }
48
-
49
- return (
50
- <Dialog
51
- disableScrollLock
52
- maxWidth={false}
53
- fullScreen={isXsSize}
54
- open={isOpen}
55
- PaperProps={{
56
- style: {
57
- background: white,
58
- borderRadius: '16px',
59
- overflow: overflow || 'inherit',
60
- overflowY: overflowY || 'inherit',
61
- },
62
- }}
63
- onClose={(event, reason) => handleClose(reason)}
64
- >
65
- <div css={styles.wrapper}>{children}</div>
66
- </Dialog>
67
- )
68
- }
1
+ import { css } from '@emotion/react'
2
+ import { Dialog } from '@mui/material'
3
+ import { useMQ } from '@huma-finance/shared'
4
+ import React from 'react'
5
+
6
+ import { white } from '../../theme/palette'
7
+
8
+ type HumaModalType = {
9
+ children?: React.ReactNode
10
+ isOpen: boolean
11
+ onClose: () => void
12
+ overflow?: string
13
+ overflowY?: 'visible' | 'hidden' | 'clip' | 'scroll' | 'auto'
14
+ width?: string
15
+ padding?: string
16
+ disableBackdropClick?: boolean
17
+ }
18
+
19
+ export function HumaModal({
20
+ children,
21
+ isOpen,
22
+ onClose,
23
+ overflow,
24
+ overflowY,
25
+ width = '480px',
26
+ padding = '30px',
27
+ disableBackdropClick = false,
28
+ }: HumaModalType): React.ReactElement {
29
+ const { isXsSize } = useMQ()
30
+
31
+ const styles = {
32
+ wrapper: css`
33
+ max-width: 100vw;
34
+ width: ${isXsSize ? '100%' : width};
35
+ height: auto;
36
+ padding: ${padding};
37
+ box-sizing: border-box;
38
+ `,
39
+ }
40
+
41
+ const handleClose = (reason: 'backdropClick' | 'escapeKeyDown') => {
42
+ if (!disableBackdropClick) {
43
+ onClose()
44
+ } else if (reason !== 'backdropClick' && reason !== 'escapeKeyDown') {
45
+ onClose()
46
+ }
47
+ }
48
+
49
+ return (
50
+ <Dialog
51
+ disableScrollLock
52
+ maxWidth={false}
53
+ fullScreen={isXsSize}
54
+ open={isOpen}
55
+ PaperProps={{
56
+ style: {
57
+ background: white,
58
+ borderRadius: '16px',
59
+ overflow: overflow || 'inherit',
60
+ overflowY: overflowY || 'inherit',
61
+ },
62
+ }}
63
+ onClose={(event, reason) => handleClose(reason)}
64
+ >
65
+ <div css={styles.wrapper}>{children}</div>
66
+ </Dialog>
67
+ )
68
+ }