Skip to content
This repository was archived by the owner on Nov 10, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
9b3c973
Merge branch 'development' into feature/#413-SpendingLimit-in-app
fernandomg Jul 30, 2020
5e24cfc
fix: Card component requires `className` instead of `styles`
fernandomg Jul 30, 2020
f669a3a
update `safe-react-components`
fernandomg Jul 30, 2020
2583e57
change `Spending Limit` icon from `allowances` to `fuelIndicator`
fernandomg Jul 30, 2020
5fca120
Merge branch 'feature/#413-SpendingLimit-in-app' into feature/#690-ne…
fernandomg Aug 4, 2020
df6547a
add types to `TokenSelectField` component
fernandomg Aug 7, 2020
7616e8f
refactor `AddressBookInput`
fernandomg Aug 7, 2020
32e5d50
add types to `GnoModal` component
fernandomg Aug 7, 2020
d0b2c7d
update `safe-react-components`
fernandomg Aug 7, 2020
cea0817
WIP: New Spending Limit form
fernandomg Aug 7, 2020
b603512
Merge branch 'feature/#413-SpendingLimit-in-app' into feature/#690-ne…
fernandomg Aug 7, 2020
83a0478
fix compatibility with new `safe-react-components` version
fernandomg Aug 7, 2020
66c1e85
update `safe-react-components` version
fernandomg Aug 7, 2020
debf1ce
fix styles for `TokenSelectField`'s placeholder
fernandomg Aug 11, 2020
7c109f0
WIP: add review screen
fernandomg Aug 11, 2020
b854053
WIP: fix styles/layout
fernandomg Aug 11, 2020
3c9543d
disable Spending Limit button for non-owners
fernandomg Aug 13, 2020
ec4408e
Merge branch 'feature/#413-SpendingLimit-in-app' into feature/#690-ne…
fernandomg Aug 13, 2020
a3b9ee2
WIP: Add new spending limit
fernandomg Aug 16, 2020
b5aadc8
WIP: verify module is enabled and works
fernandomg Aug 16, 2020
1fea250
WIP: complete New Spending Limit flow
fernandomg Aug 18, 2020
4bd62a6
WIP: properly handle tokens' decimals also fix typos and existentSpen…
fernandomg Aug 18, 2020
53f9e4a
refactor: split code into components
fernandomg Aug 18, 2020
8307abd
Merge branch 'feature/#413-SpendingLimit-in-app' into feature/#690-ne…
fernandomg Aug 18, 2020
9be7cd7
fix reference after merge
fernandomg Aug 18, 2020
b465670
add `REACT_APP_SPENDING_LIMIT_MODULE_ADDRESS` as .env variable
fernandomg Aug 18, 2020
9182621
set return type for array map
fernandomg Aug 18, 2020
e0a62ae
add return value
fernandomg Aug 18, 2020
1000ffa
replace map with for..of loop
fernandomg Aug 18, 2020
b81938a
move MODULE_ADDRESS constant to .env.example
fernandomg Aug 19, 2020
f2d333a
replace native button with src Button component
fernandomg Aug 19, 2020
c06f903
remove unneeded button styles
fernandomg Aug 19, 2020
54b45ff
rename `TextField` to `SRCTextField`, and `GnoTextField` to `TextField`
fernandomg Aug 19, 2020
43bf62c
extract inline event handlers
fernandomg Aug 19, 2020
ea27f97
extract utility functions
fernandomg Aug 19, 2020
9781dee
add TODO for `YetAnotherButton`
fernandomg Aug 19, 2020
e131e25
add TODO for StyledSwitch
fernandomg Aug 19, 2020
30f3c2f
WIP: listing Spending Limits
fernandomg Aug 19, 2020
8df6201
cleanup imports
fernandomg Aug 19, 2020
68d8181
fix delegates retrieval
fernandomg Aug 19, 2020
d90b029
fix logic for one-time allowance
fernandomg Aug 20, 2020
aa1dff3
Merge branch 'feature/#690-new-SpendingLimit' into feature/#1039-list…
fernandomg Aug 20, 2020
6661611
set message for one-time 'resetTime'
fernandomg Aug 20, 2020
72ab5f9
support ETH Spending Limit
fernandomg Aug 20, 2020
de1d682
Merge branch 'feature/#690-new-SpendingLimit' into feature/#1039-list…
fernandomg Aug 20, 2020
c49f5f8
display ETH allowance
fernandomg Aug 20, 2020
20fd94a
add back SPENDING_LIMIT_MODULE_ADDRESS default value in `constants` file
fernandomg Aug 20, 2020
01b7b1b
Merge branch 'feature/#690-new-SpendingLimit' into feature/#1039-list…
fernandomg Aug 20, 2020
74761a5
WIP add "delete" spending limit functionality
fernandomg Aug 20, 2020
8be577d
refactor: store SpendingLimit in the store
fernandomg Aug 21, 2020
157f539
refactor: convert `scannedAddress` to a oneliner
fernandomg Aug 21, 2020
45303d5
Merge branch 'feature/#690-new-SpendingLimit' into feature/#1039-list…
fernandomg Aug 21, 2020
f3e74a7
fix typo
fernandomg Aug 21, 2020
0335f5f
refactor: extract common data display components
fernandomg Aug 21, 2020
69d035c
refactor: extract spending limit table
fernandomg Aug 21, 2020
ed87c7e
refactor: use common data display components
fernandomg Aug 21, 2020
dacfc4a
refactor: reorg files and rename components
fernandomg Aug 21, 2020
767ecb6
refactor: move token discovery into hook
fernandomg Aug 21, 2020
4b17b17
fix: adjust amount to token's decimals
fernandomg Aug 21, 2020
a42a33c
add typings and comments to the NewLimitModal component and helper fu…
fernandomg Aug 21, 2020
9acdf05
refactor: reorganize Modal and related components
fernandomg Aug 21, 2020
6aa4b59
refactor: use Modal component for RemoveLimitModal
fernandomg Aug 21, 2020
37daea1
refactor: retrieve allowances data from store
fernandomg Aug 21, 2020
2298533
refactor: reword "one-time" legend
fernandomg Aug 21, 2020
0de201b
refactor: reorg code and use AddressInfo to display address info
fernandomg Aug 21, 2020
de07e5c
refactor: reorg LimitsTable and split into components for better read…
fernandomg Aug 22, 2020
81c1dd0
refactor: use `useMemo` whenever is possible
fernandomg Aug 23, 2020
28347f8
refactor: move `Allowance.json` into `src/logic/contracts/artifacts` …
fernandomg Aug 24, 2020
330e1de
refactor: moved `dataFetcher` into `/LimitsTable`
fernandomg Aug 24, 2020
bdee939
refactor: move away from Apps' `sendTransactions` method. Using custo…
fernandomg Aug 24, 2020
d5bec40
refactor: undo `previousResetTime` as a memoized value
fernandomg Aug 24, 2020
b7f6083
feature: use `multiSend` txs only when needed
fernandomg Aug 24, 2020
2fab251
fix: add support for ETH allowance modification
fernandomg Aug 24, 2020
a35be6d
fix: support non existent `spendingLimits`
fernandomg Aug 24, 2020
b0890b6
Merge branch 'feature/#413-SpendingLimit-in-app' into feature/#1039-l…
fernandomg Aug 24, 2020
5550ca9
fix: set fixed length for addresses
fernandomg Aug 25, 2020
e8c8c34
Update React import
Aug 26, 2020
073a065
fix: avoid `UNKNOWN` as contact name
fernandomg Aug 26, 2020
a634f18
Merge branch 'feature/#413-SpendingLimit-in-app' into feature/#1039-l…
fernandomg Aug 28, 2020
813fa68
fixes after merge
fernandomg Aug 28, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,7 @@ REACT_APP_APP_VERSION=$npm_package_version

# For Apps
REACT_APP_GNOSIS_APPS_URL=https://safe-apps.staging.gnosisdev.com

# Contracts Addresses
REACT_APP_SPENDING_LIMIT_MODULE_ADDRESS=0x9e9Bf12b5a66c0f0A7435835e0365477E121B110

90 changes: 54 additions & 36 deletions src/components/Modal/index.tsx
Original file line number Diff line number Diff line change
@@ -1,52 +1,70 @@
import Modal from '@material-ui/core/Modal'
import { withStyles } from '@material-ui/core/styles'
import { makeStyles, createStyles } from '@material-ui/core/styles'
import cn from 'classnames'
import * as React from 'react'
import React from 'react'

import { sm } from 'src/theme/variables'

const styles = () => ({
root: {
alignItems: 'center',
justifyContent: 'center',
display: 'flex',
overflowY: 'scroll',
},
paper: {
position: 'absolute',
top: '120px',
width: '500px',
height: '530px',
borderRadius: sm,
backgroundColor: '#ffffff',
boxShadow: '0 0 5px 0 rgba(74, 85, 121, 0.5)',
'&:focus': {
outline: 'none',
const useStyles = makeStyles(
createStyles({
root: {
alignItems: 'center',
justifyContent: 'center',
display: 'flex',
overflowY: 'scroll',
},
display: 'flex',
flexDirection: 'column',
},
})
paper: {
position: 'absolute',
top: '120px',
width: '500px',
height: '530px',
borderRadius: sm,
backgroundColor: '#ffffff',
boxShadow: '0 0 5px 0 rgba(74, 85, 121, 0.5)',
'&:focus': {
outline: 'none',
},
display: 'flex',
flexDirection: 'column',
},
}),
)

interface GnoModalProps {
children: React.ReactNode
description: string
// type copied from Material-UI Modal's `close` prop
handleClose?: {
bivarianceHack(event: Record<string, unknown>, reason: 'backdropClick' | 'escapeKeyDown'): void
}['bivarianceHack']
modalClassName?: string
open: boolean
paperClassName?: string
title: string
}

const GnoModal = ({
children,
classes,
description,
handleClose,
modalClassName,
open,
paperClassName,
title,
}: any) => (
<Modal
aria-describedby={description}
aria-labelledby={title}
className={cn(classes.root, modalClassName)}
onClose={handleClose}
open={open}
>
<div className={cn(classes.paper, paperClassName)}>{children}</div>
</Modal>
)
}: GnoModalProps): React.ReactElement => {
const classes = useStyles()

return (
<Modal
aria-describedby={description}
aria-labelledby={title}
className={cn(classes.root, modalClassName)}
onClose={handleClose}
open={open}
>
<div className={cn(classes.paper, paperClassName)}>{children}</div>
</Modal>
)
}

export default withStyles(styles as any)(GnoModal)
export default GnoModal
38 changes: 20 additions & 18 deletions src/components/ScanQRModal/ScanQRWrapper/index.tsx
Original file line number Diff line number Diff line change
@@ -1,20 +1,23 @@
import { Button, Icon } from '@gnosis.pm/safe-react-components'
import { makeStyles } from '@material-ui/core/styles'
import { useState } from 'react'
import * as React from 'react'
import React from 'react'

import QRIcon from 'src/assets/icons/qrcode.svg'
import ScanQRModal from 'src/components/ScanQRModal'
import Img from 'src/components/layout/Img'

const useStyles = makeStyles({
qrCodeBtn: {
cursor: 'pointer',
padding: '0 !important',
minWidth: '40px',
},
})

export const ScanQRWrapper = (props) => {
interface ScanQRWrapperProps {
handleScan: (value: string, closeQRCallback: () => void) => void
}

export const ScanQRWrapper = ({ handleScan }: ScanQRWrapperProps): React.ReactElement => {
const classes = useStyles()
const [qrModalOpen, setQrModalOpen] = useState(false)
const [qrModalOpen, setQrModalOpen] = React.useState(false)

const openQrModal = () => {
setQrModalOpen(true)
Expand All @@ -25,22 +28,21 @@ export const ScanQRWrapper = (props) => {
}

const onScanFinished = (value) => {
props.handleScan(value, closeQrModal)
handleScan(value, closeQrModal)
}

return (
<>
<Img
alt="Scan QR"
<Button
size="md"
color="secondary"
title="Scan QR"
type="button"
onClick={openQrModal}
className={classes.qrCodeBtn}
height={20}
onClick={() => {
openQrModal()
}}
role="button"
src={QRIcon}
testId="qr-icon"
/>
>
<Icon type="qrCode" size="sm" />
</Button>
{qrModalOpen && <ScanQRModal isOpen={qrModalOpen} onClose={closeQrModal} onScan={onScanFinished} />}
</>
)
Expand Down
Loading