mirror of
https://github.com/status-im/safe-react.git
synced 2025-02-17 20:17:02 +00:00
Allow passing dismissAll to closeSnackbar action, to be polished
This commit is contained in:
parent
cca6fda0a3
commit
d5e076a307
@ -43,7 +43,7 @@
|
|||||||
"axios": "0.19.0",
|
"axios": "0.19.0",
|
||||||
"bignumber.js": "9.0.0",
|
"bignumber.js": "9.0.0",
|
||||||
"connected-react-router": "6.5.2",
|
"connected-react-router": "6.5.2",
|
||||||
"date-fns": "2.6.0",
|
"date-fns": "2.7.0",
|
||||||
"ethereum-ens": "0.7.8",
|
"ethereum-ens": "0.7.8",
|
||||||
"final-form": "4.18.6",
|
"final-form": "4.18.6",
|
||||||
"history": "4.10.1",
|
"history": "4.10.1",
|
||||||
@ -118,7 +118,7 @@
|
|||||||
"eslint-config-airbnb": "18.0.1",
|
"eslint-config-airbnb": "18.0.1",
|
||||||
"eslint-plugin-flowtype": "4.3.0",
|
"eslint-plugin-flowtype": "4.3.0",
|
||||||
"eslint-plugin-import": "2.18.2",
|
"eslint-plugin-import": "2.18.2",
|
||||||
"eslint-plugin-jest": "23.0.2",
|
"eslint-plugin-jest": "23.0.3",
|
||||||
"eslint-plugin-jsx-a11y": "6.2.3",
|
"eslint-plugin-jsx-a11y": "6.2.3",
|
||||||
"eslint-plugin-react": "7.16.0",
|
"eslint-plugin-react": "7.16.0",
|
||||||
"ethereumjs-abi": "0.6.8",
|
"ethereumjs-abi": "0.6.8",
|
||||||
@ -141,7 +141,7 @@
|
|||||||
"storybook-host": "5.1.0",
|
"storybook-host": "5.1.0",
|
||||||
"storybook-router": "^0.3.4",
|
"storybook-router": "^0.3.4",
|
||||||
"style-loader": "1.0.0",
|
"style-loader": "1.0.0",
|
||||||
"truffle": "5.0.43",
|
"truffle": "5.0.44",
|
||||||
"truffle-contract": "4.0.31",
|
"truffle-contract": "4.0.31",
|
||||||
"truffle-solidity-loader": "0.1.32",
|
"truffle-solidity-loader": "0.1.32",
|
||||||
"uglifyjs-webpack-plugin": "2.2.0",
|
"uglifyjs-webpack-plugin": "2.2.0",
|
||||||
|
@ -152,7 +152,7 @@ export const enhanceSnackbarForAction = (notification: Notification) => ({
|
|||||||
options: {
|
options: {
|
||||||
...notification.options,
|
...notification.options,
|
||||||
action: (key) => (
|
action: (key) => (
|
||||||
<IconButton onClick={() => store.dispatch(closeSnackbarAction(key))}>
|
<IconButton onClick={() => store.dispatch(closeSnackbarAction({key}))}>
|
||||||
<IconClose />
|
<IconClose />
|
||||||
</IconButton>
|
</IconButton>
|
||||||
),
|
),
|
||||||
|
@ -18,9 +18,20 @@ export default handleActions<NotificationReducerState, *>(
|
|||||||
return state.set(notification.key, makeNotification(notification))
|
return state.set(notification.key, makeNotification(notification))
|
||||||
},
|
},
|
||||||
[CLOSE_SNACKBAR]: (state: NotificationReducerState, action: ActionType<Function>): NotificationReducerState => {
|
[CLOSE_SNACKBAR]: (state: NotificationReducerState, action: ActionType<Function>): NotificationReducerState => {
|
||||||
const key = action.payload
|
const { key, dismissAll } = action.payload
|
||||||
|
|
||||||
return state.update(key, (prev) => prev.set('dismissed', true))
|
if (key) {
|
||||||
|
return state.update(key, (prev) => prev.set('dismissed', true))
|
||||||
|
}
|
||||||
|
if (dismissAll) {
|
||||||
|
return state.withMutations((map) => {
|
||||||
|
map.forEach((notification, notificationKey) => {
|
||||||
|
map.set(notificationKey, notification.set('dismissed', true))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
return state
|
||||||
},
|
},
|
||||||
[REMOVE_SNACKBAR]: (state: NotificationReducerState, action: ActionType<Function>): NotificationReducerState => {
|
[REMOVE_SNACKBAR]: (state: NotificationReducerState, action: ActionType<Function>): NotificationReducerState => {
|
||||||
const key = action.payload
|
const key = action.payload
|
||||||
|
@ -2,9 +2,10 @@
|
|||||||
import type { Store, AnyAction } from 'redux'
|
import type { Store, AnyAction } from 'redux'
|
||||||
import { type GlobalState } from '~/store/'
|
import { type GlobalState } from '~/store/'
|
||||||
import { ADD_PROVIDER, REMOVE_PROVIDER } from '../actions'
|
import { ADD_PROVIDER, REMOVE_PROVIDER } from '../actions'
|
||||||
import { getWeb3, getProviderInfo } from '~/logic/wallets/getWeb3'
|
import { getWeb3, getProviderInfo, WALLET_PROVIDER } from '~/logic/wallets/getWeb3'
|
||||||
import { fetchProvider } from '~/logic/wallets/store/actions'
|
import { fetchProvider } from '~/logic/wallets/store/actions'
|
||||||
import { loadFromStorage, saveToStorage, removeFromStorage } from '~/utils/storage'
|
import { loadFromStorage, saveToStorage, removeFromStorage } from '~/utils/storage'
|
||||||
|
import closeSnackbar from '~/logic/notifications/store/actions/closeSnackbar'
|
||||||
|
|
||||||
const watchedActions = [ADD_PROVIDER, REMOVE_PROVIDER]
|
const watchedActions = [ADD_PROVIDER, REMOVE_PROVIDER]
|
||||||
|
|
||||||
@ -30,17 +31,24 @@ const providerWatcherMware = (store: Store<GlobalState>) => (next: Function) =>
|
|||||||
clearInterval(watcherInterval)
|
clearInterval(watcherInterval)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (currentProviderProps.name === WALLET_PROVIDER.METAMASK && window.ethereum) {
|
||||||
|
window.ethereum.autoRefreshOnNetworkChange = false
|
||||||
|
}
|
||||||
|
|
||||||
saveToStorage(LAST_USED_PROVIDER_KEY, currentProviderProps.name)
|
saveToStorage(LAST_USED_PROVIDER_KEY, currentProviderProps.name)
|
||||||
|
|
||||||
watcherInterval = setInterval(async () => {
|
watcherInterval = setInterval(async () => {
|
||||||
const web3 = getWeb3()
|
const web3 = getWeb3()
|
||||||
const providerInfo = await getProviderInfo(web3)
|
const providerInfo = await getProviderInfo(web3)
|
||||||
|
|
||||||
|
const networkChanged = currentProviderProps.network !== providerInfo.network
|
||||||
|
|
||||||
|
store.dispatch(closeSnackbar({ dismissAll: true }))
|
||||||
if (
|
if (
|
||||||
currentProviderProps.account !== providerInfo.account
|
currentProviderProps.account !== providerInfo.account
|
||||||
|| currentProviderProps.network !== providerInfo.network
|
|| networkChanged
|
||||||
) {
|
) {
|
||||||
store.dispatch(fetchProvider(web3, () => {}, () => {}))
|
store.dispatch(fetchProvider(web3))
|
||||||
}
|
}
|
||||||
}, 2000)
|
}, 2000)
|
||||||
|
|
||||||
|
24
yarn.lock
24
yarn.lock
@ -6570,10 +6570,10 @@ data-urls@^1.0.0:
|
|||||||
whatwg-mimetype "^2.2.0"
|
whatwg-mimetype "^2.2.0"
|
||||||
whatwg-url "^7.0.0"
|
whatwg-url "^7.0.0"
|
||||||
|
|
||||||
date-fns@2.6.0:
|
date-fns@2.7.0:
|
||||||
version "2.6.0"
|
version "2.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.6.0.tgz#a5bc82e6a4c3995ae124b0ba1a71aec7b8cbd666"
|
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.7.0.tgz#8271d943cc4636a1f27698f1b8d6a9f1ceb74026"
|
||||||
integrity sha512-F55YxqRdEfP/eYQmQjLN798v0AwLjmZ8nMBjdQvNwEE3N/zWVrlkkqT+9seBlPlsbkybG4JmWg3Ee3dIV9BcGQ==
|
integrity sha512-wxYp2PGoUDN5ZEACc61aOtYFvSsJUylIvCjpjDOqM1UDaKIIuMJ9fAnMYFHV3TQaDpfTVxhwNK/GiCaHKuemTA==
|
||||||
|
|
||||||
debug-fabulous@0.0.X:
|
debug-fabulous@0.0.X:
|
||||||
version "0.0.4"
|
version "0.0.4"
|
||||||
@ -7493,10 +7493,10 @@ eslint-plugin-import@2.18.2:
|
|||||||
read-pkg-up "^2.0.0"
|
read-pkg-up "^2.0.0"
|
||||||
resolve "^1.11.0"
|
resolve "^1.11.0"
|
||||||
|
|
||||||
eslint-plugin-jest@23.0.2:
|
eslint-plugin-jest@23.0.3:
|
||||||
version "23.0.2"
|
version "23.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-23.0.2.tgz#54a59bfe77245186afe13711a297067aefefff0a"
|
resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-23.0.3.tgz#d3f157f7791f97713372c13259ba1dfc436eb4c1"
|
||||||
integrity sha512-fkxcvOJm0hC/jbJqYJjtuC9mvpTJqXd0Nixx7joVQvJoBQuXk/ws3+MtRYzD/4TcKSgvr21uuSLdwSxKJKC2cg==
|
integrity sha512-9cNxr66zeOyz1S9AkQL4/ouilR6QHpYj8vKOQZ60fu9hAt5PJWS4KqWqfr1aqN5NFEZSPjFOla2Azn+KTWiGwg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/experimental-utils" "^2.5.0"
|
"@typescript-eslint/experimental-utils" "^2.5.0"
|
||||||
|
|
||||||
@ -18120,10 +18120,10 @@ truffle-solidity-loader@0.1.32:
|
|||||||
truffle-config "^1.1.19"
|
truffle-config "^1.1.19"
|
||||||
truffle-core "^5.0.33"
|
truffle-core "^5.0.33"
|
||||||
|
|
||||||
truffle@5.0.43:
|
truffle@5.0.44:
|
||||||
version "5.0.43"
|
version "5.0.44"
|
||||||
resolved "https://registry.yarnpkg.com/truffle/-/truffle-5.0.43.tgz#b5508807ec59789b90749daefb16f8b6fef8ce96"
|
resolved "https://registry.yarnpkg.com/truffle/-/truffle-5.0.44.tgz#791df87992e32cf87840d3a58450e9e0331ccc0c"
|
||||||
integrity sha512-PbqOjgtYlkNAbJqzHeiMGvgBCLSuPVAWbM4+TNIGsRyqVCRIvXdLeQXUmdCRcGMWMteCvQ9Knhu4zNzT2Eo53A==
|
integrity sha512-nbJAu5P76AU7wZxbQl/yPhf8g8gXMkVQtWZGRec5lz6w4fc4cOLrbAD6G6IJYVJqK3s8FTIjox0YKsI/Az/O6w==
|
||||||
dependencies:
|
dependencies:
|
||||||
app-module-path "^2.2.0"
|
app-module-path "^2.2.0"
|
||||||
mocha "5.2.0"
|
mocha "5.2.0"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user