Dependencies bump, fix babel configuration, use connected-react-router instead of react-redux-router
This commit is contained in:
parent
3e305d3267
commit
5b2fb5f87f
36
.babelrc
36
.babelrc
|
@ -7,19 +7,41 @@
|
||||||
{
|
{
|
||||||
"forceAllTransforms": true
|
"forceAllTransforms": true
|
||||||
}
|
}
|
||||||
],
|
]
|
||||||
["@babel/preset-stage-0", { "decoratorsLegacy": true }]
|
|
||||||
],
|
],
|
||||||
"plugins": [
|
"plugins": [
|
||||||
"@babel/plugin-syntax-dynamic-import",
|
"@babel/plugin-syntax-dynamic-import",
|
||||||
"transform-es3-member-expression-literals",
|
"@babel/plugin-transform-member-expression-literals",
|
||||||
"transform-es3-property-literals"
|
"@babel/plugin-transform-property-literals",
|
||||||
|
"@babel/plugin-syntax-import-meta",
|
||||||
|
"@babel/plugin-proposal-class-properties",
|
||||||
|
"@babel/plugin-proposal-json-strings",
|
||||||
|
[
|
||||||
|
"@babel/plugin-proposal-decorators",
|
||||||
|
{
|
||||||
|
"legacy": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"@babel/plugin-proposal-function-sent",
|
||||||
|
"@babel/plugin-proposal-export-namespace-from",
|
||||||
|
"@babel/plugin-proposal-numeric-separator",
|
||||||
|
"@babel/plugin-proposal-throw-expressions",
|
||||||
|
"@babel/plugin-proposal-export-default-from",
|
||||||
|
"@babel/plugin-proposal-logical-assignment-operators",
|
||||||
|
"@babel/plugin-proposal-optional-chaining",
|
||||||
|
[
|
||||||
|
"@babel/plugin-proposal-pipeline-operator",
|
||||||
|
{
|
||||||
|
"proposal": "minimal"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"@babel/plugin-proposal-nullish-coalescing-operator",
|
||||||
|
"@babel/plugin-proposal-do-expressions",
|
||||||
|
"@babel/plugin-proposal-function-bind"
|
||||||
],
|
],
|
||||||
"env": {
|
"env": {
|
||||||
"test": {
|
"test": {
|
||||||
"plugins": [
|
"plugins": ["dynamic-import-node"]
|
||||||
"dynamic-import-node"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,13 +2,13 @@ if (typeof Promise === 'undefined') {
|
||||||
// Rejection tracking prevents a common issue where React gets into an
|
// Rejection tracking prevents a common issue where React gets into an
|
||||||
// inconsistent state due to an error, but it gets swallowed by a Promise,
|
// inconsistent state due to an error, but it gets swallowed by a Promise,
|
||||||
// and the user has no idea what causes React's erratic future behavior.
|
// and the user has no idea what causes React's erratic future behavior.
|
||||||
require('promise/lib/rejection-tracking').enable();
|
require('promise/lib/rejection-tracking').enable()
|
||||||
window.Promise = require('promise/lib/es6-extensions.js');
|
window.Promise = require('promise/lib/es6-extensions.js')
|
||||||
}
|
}
|
||||||
|
|
||||||
// fetch() polyfill for making API calls.
|
// fetch() polyfill for making API calls.
|
||||||
require('whatwg-fetch');
|
require('whatwg-fetch')
|
||||||
|
|
||||||
// Object.assign() is commonly used with React.
|
// Object.assign() is commonly used with React.
|
||||||
// It will use the native implementation if it's present and isn't buggy.
|
// It will use the native implementation if it's present and isn't buggy.
|
||||||
Object.assign = require('object-assign');
|
Object.assign = require('object-assign')
|
||||||
|
|
|
@ -1,23 +1,23 @@
|
||||||
/*eslint-disable*/
|
/*eslint-disable*/
|
||||||
const autoprefixer = require('autoprefixer');
|
const autoprefixer = require('autoprefixer')
|
||||||
const cssmixins = require('postcss-mixins');
|
const cssmixins = require('postcss-mixins')
|
||||||
const cssvars = require('postcss-simple-vars');
|
const cssvars = require('postcss-simple-vars')
|
||||||
const webpack = require('webpack');
|
const webpack = require('webpack')
|
||||||
const HtmlWebPackPlugin = require("html-webpack-plugin");
|
const HtmlWebPackPlugin = require('html-webpack-plugin')
|
||||||
|
|
||||||
const paths = require('./paths');
|
const paths = require('./paths')
|
||||||
const getClientEnvironment = require('./env');
|
const getClientEnvironment = require('./env')
|
||||||
|
|
||||||
const publicPath = '/';
|
const publicPath = '/'
|
||||||
|
|
||||||
// `publicUrl` we will provide it to our app
|
// `publicUrl` we will provide it to our app
|
||||||
// as %PUBLIC_URL% in `index.html` and `process.env.PUBLIC_URL` in JavaScript.
|
// as %PUBLIC_URL% in `index.html` and `process.env.PUBLIC_URL` in JavaScript.
|
||||||
// Omit trailing slash as %PUBLIC_PATH%/xyz looks better than %PUBLIC_PATH%xyz.
|
// Omit trailing slash as %PUBLIC_PATH%/xyz looks better than %PUBLIC_PATH%xyz.
|
||||||
var publicUrl = '';
|
var publicUrl = ''
|
||||||
// Get environment variables to inject into our app.
|
// Get environment variables to inject into our app.
|
||||||
var env = getClientEnvironment(publicUrl);
|
var env = getClientEnvironment(publicUrl)
|
||||||
|
|
||||||
const cssvariables = require(paths.appSrc + '/theme/variables');
|
const cssvariables = require(paths.appSrc + '/theme/variables')
|
||||||
|
|
||||||
const postcssPlugins = [
|
const postcssPlugins = [
|
||||||
autoprefixer({
|
autoprefixer({
|
||||||
|
@ -26,22 +26,22 @@ const postcssPlugins = [
|
||||||
'last 4 versions',
|
'last 4 versions',
|
||||||
'Firefox ESR',
|
'Firefox ESR',
|
||||||
'not ie < 9', // React doesn't support IE8 anyway
|
'not ie < 9', // React doesn't support IE8 anyway
|
||||||
]
|
],
|
||||||
}),
|
}),
|
||||||
cssmixins,
|
cssmixins,
|
||||||
cssvars({
|
cssvars({
|
||||||
variables: function () {
|
variables: function() {
|
||||||
return Object.assign({}, cssvariables);
|
return Object.assign({}, cssvariables)
|
||||||
},
|
},
|
||||||
silent: false
|
silent: false,
|
||||||
}),
|
}),
|
||||||
];
|
]
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
devtool: 'eval-source-map',
|
devtool: 'eval-source-map',
|
||||||
mode: 'development',
|
mode: 'development',
|
||||||
entry: [
|
entry: [
|
||||||
"babel-polyfill",
|
'babel-polyfill',
|
||||||
// Include an alternative client for WebpackDevServer. A client's job is to
|
// Include an alternative client for WebpackDevServer. A client's job is to
|
||||||
// connect to WebpackDevServer by a socket and get notified about changes.
|
// connect to WebpackDevServer by a socket and get notified about changes.
|
||||||
// When you save a file, the client will either apply hot updates (in case
|
// When you save a file, the client will either apply hot updates (in case
|
||||||
|
@ -56,17 +56,13 @@ module.exports = {
|
||||||
// We ship a few polyfills by default:
|
// We ship a few polyfills by default:
|
||||||
require.resolve('./polyfills'),
|
require.resolve('./polyfills'),
|
||||||
// Finally, this is your app's code:
|
// Finally, this is your app's code:
|
||||||
paths.appIndexJs
|
paths.appIndexJs,
|
||||||
// We include the app code last so that if there is a runtime error during
|
// We include the app code last so that if there is a runtime error during
|
||||||
// initialization, it doesn't blow up the WebpackDevServer client, and
|
// initialization, it doesn't blow up the WebpackDevServer client, and
|
||||||
// changing JS code would still trigger a refresh.
|
// changing JS code would still trigger a refresh.
|
||||||
],
|
],
|
||||||
resolve: {
|
resolve: {
|
||||||
modules: [
|
modules: [paths.appSrc, 'node_modules', paths.appContracts],
|
||||||
paths.appSrc,
|
|
||||||
'node_modules',
|
|
||||||
paths.appContracts,
|
|
||||||
],
|
|
||||||
// These are the reasonable defaults supported by the Node ecosystem.
|
// These are the reasonable defaults supported by the Node ecosystem.
|
||||||
// We also include JSX as a common component filename extension to support
|
// We also include JSX as a common component filename extension to support
|
||||||
// some tools, although we do not recommend using it, see:
|
// some tools, although we do not recommend using it, see:
|
||||||
|
@ -75,7 +71,7 @@ module.exports = {
|
||||||
alias: {
|
alias: {
|
||||||
'~': paths.appSrc,
|
'~': paths.appSrc,
|
||||||
'#': paths.appContracts,
|
'#': paths.appContracts,
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
output: {
|
output: {
|
||||||
// Next line is not used in dev but WebpackDevServer crashes without it:
|
// Next line is not used in dev but WebpackDevServer crashes without it:
|
||||||
|
@ -87,7 +83,7 @@ module.exports = {
|
||||||
// containing code from all our entry points, and the Webpack runtime.
|
// containing code from all our entry points, and the Webpack runtime.
|
||||||
filename: 'static/js/bundle.js',
|
filename: 'static/js/bundle.js',
|
||||||
// This is the URL that app is served from. We use "/" in development.
|
// This is the URL that app is served from. We use "/" in development.
|
||||||
publicPath: publicPath
|
publicPath: publicPath,
|
||||||
},
|
},
|
||||||
module: {
|
module: {
|
||||||
rules: [
|
rules: [
|
||||||
|
@ -95,20 +91,20 @@ module.exports = {
|
||||||
test: /\.(js|jsx)$/,
|
test: /\.(js|jsx)$/,
|
||||||
exclude: /node_modules/,
|
exclude: /node_modules/,
|
||||||
use: {
|
use: {
|
||||||
loader: "babel-loader"
|
loader: 'babel-loader',
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: /\.(scss|css)$/,
|
test: /\.(scss|css)$/,
|
||||||
use: [
|
use: [
|
||||||
'style-loader',
|
'style-loader',
|
||||||
{ loader: 'css-loader',
|
{
|
||||||
|
loader: 'css-loader',
|
||||||
options: {
|
options: {
|
||||||
importLoaders: 1,
|
importLoaders: 1,
|
||||||
modules: true,
|
modules: true,
|
||||||
minimize: false,
|
|
||||||
localIdentName: '[name]__[local]___[hash:base64:5]',
|
localIdentName: '[name]__[local]___[hash:base64:5]',
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
loader: 'postcss-loader',
|
loader: 'postcss-loader',
|
||||||
|
@ -123,22 +119,24 @@ module.exports = {
|
||||||
test: /\.html$/,
|
test: /\.html$/,
|
||||||
use: [
|
use: [
|
||||||
{
|
{
|
||||||
loader: "html-loader",
|
loader: 'html-loader',
|
||||||
options: { minimize: false }
|
options: { minimize: false },
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: /\.(jpe?g|png|svg)$/i,
|
test: /\.(jpe?g|png|svg)$/i,
|
||||||
exclude: /node_modules/,
|
exclude: /node_modules/,
|
||||||
use: [{
|
use: [
|
||||||
loader: "file-loader",
|
{
|
||||||
options: {
|
loader: 'file-loader',
|
||||||
name: 'img/[hash].[ext]'
|
options: {
|
||||||
}
|
name: 'img/[hash].[ext]',
|
||||||
}]
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
new HtmlWebPackPlugin({
|
new HtmlWebPackPlugin({
|
||||||
|
@ -152,6 +150,6 @@ module.exports = {
|
||||||
node: {
|
node: {
|
||||||
fs: 'empty',
|
fs: 'empty',
|
||||||
net: 'empty',
|
net: 'empty',
|
||||||
tls: 'empty'
|
tls: 'empty',
|
||||||
}
|
},
|
||||||
};
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
96
package.json
96
package.json
|
@ -31,86 +31,102 @@
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/cli": "^7.0.0-beta.40",
|
"@babel/cli": "^7.0.0-beta.40",
|
||||||
"@babel/core": "^7.0.0-beta.40",
|
"@babel/core": "^7.0.0-beta.40",
|
||||||
"@babel/plugin-syntax-dynamic-import": "^7.0.0-beta.40",
|
"@babel/plugin-proposal-class-properties": "^7.0.0",
|
||||||
|
"@babel/plugin-proposal-decorators": "^7.0.0",
|
||||||
|
"@babel/plugin-proposal-do-expressions": "^7.0.0",
|
||||||
|
"@babel/plugin-proposal-export-default-from": "^7.0.0",
|
||||||
|
"@babel/plugin-proposal-export-namespace-from": "^7.0.0",
|
||||||
|
"@babel/plugin-proposal-function-bind": "^7.0.0",
|
||||||
|
"@babel/plugin-proposal-function-sent": "^7.0.0",
|
||||||
|
"@babel/plugin-proposal-json-strings": "^7.0.0",
|
||||||
|
"@babel/plugin-proposal-logical-assignment-operators": "^7.0.0",
|
||||||
|
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0",
|
||||||
|
"@babel/plugin-proposal-numeric-separator": "^7.0.0",
|
||||||
|
"@babel/plugin-proposal-optional-chaining": "^7.0.0",
|
||||||
|
"@babel/plugin-proposal-pipeline-operator": "^7.0.0",
|
||||||
|
"@babel/plugin-proposal-throw-expressions": "^7.0.0",
|
||||||
|
"@babel/plugin-syntax-dynamic-import": "^7.0.0",
|
||||||
|
"@babel/plugin-syntax-import-meta": "^7.0.0",
|
||||||
|
"@babel/plugin-transform-member-expression-literals": "^7.2.0",
|
||||||
|
"@babel/plugin-transform-property-literals": "^7.2.0",
|
||||||
"@babel/polyfill": "^7.0.0-beta.40",
|
"@babel/polyfill": "^7.0.0-beta.40",
|
||||||
"@babel/preset-env": "^7.0.0-beta.40",
|
"@babel/preset-env": "^7.0.0-beta.40",
|
||||||
"@babel/preset-flow": "^7.0.0-beta.40",
|
"@babel/preset-flow": "^7.0.0-beta.40",
|
||||||
"@babel/preset-react": "^7.0.0-beta.40",
|
"@babel/preset-react": "^7.0.0-beta.40",
|
||||||
"@babel/preset-stage-0": "^7.0.0-beta.40",
|
|
||||||
"@sambego/storybook-state": "^1.0.7",
|
"@sambego/storybook-state": "^1.0.7",
|
||||||
"@storybook/addon-actions": "^3.3.15",
|
"@storybook/addon-actions": "^5.0.0",
|
||||||
"@storybook/addon-knobs": "^3.3.15",
|
"@storybook/addon-knobs": "^5.0.0",
|
||||||
"@storybook/addon-links": "^3.3.15",
|
"@storybook/addon-links": "^5.0.0",
|
||||||
"@storybook/react": "^3.3.15",
|
"@storybook/react": "^5.0.0",
|
||||||
"autoprefixer": "^8.1.0",
|
"autoprefixer": "^9.4.10",
|
||||||
"babel-core": "^7.0.0-bridge.0",
|
"babel-core": "^7.0.0-bridge.0",
|
||||||
"babel-eslint": "8",
|
"babel-eslint": "^10.0.1",
|
||||||
"babel-jest": "^22.4.1",
|
"babel-jest": "^24.1.0",
|
||||||
"babel-loader": "^8.0.0-beta.0",
|
"babel-loader": "^8.0.0-beta.0",
|
||||||
"babel-plugin-dynamic-import-node": "^1.2.0",
|
"babel-plugin-dynamic-import-node": "^2.2.0",
|
||||||
"babel-plugin-transform-es3-member-expression-literals": "^6.22.0",
|
"babel-plugin-transform-es3-member-expression-literals": "^6.22.0",
|
||||||
"babel-plugin-transform-es3-property-literals": "^6.22.0",
|
"babel-plugin-transform-es3-property-literals": "^6.22.0",
|
||||||
"bignumber.js": "^7.2.1",
|
"bignumber.js": "^8.1.1",
|
||||||
"classnames": "^2.2.5",
|
"classnames": "^2.2.5",
|
||||||
"css-loader": "^0.28.10",
|
"css-loader": "^2.1.0",
|
||||||
"detect-port": "^1.2.2",
|
"detect-port": "^1.2.2",
|
||||||
"dotenv": "^5.0.1",
|
"dotenv": "^6.2.0",
|
||||||
"eslint": "^4.18.2",
|
"eslint": "^5.15.1",
|
||||||
"eslint-config-airbnb": "^16.1.0",
|
"eslint-config-airbnb": "^17.1.0",
|
||||||
"eslint-plugin-flowtype": "^2.46.1",
|
"eslint-plugin-flowtype": "^3.4.2",
|
||||||
"eslint-plugin-import": "^2.9.0",
|
"eslint-plugin-import": "^2.9.0",
|
||||||
"eslint-plugin-jest": "^21.13.0",
|
"eslint-plugin-jest": "^22.3.0",
|
||||||
"eslint-plugin-jsx-a11y": "^6.0.3",
|
"eslint-plugin-jsx-a11y": "^6.0.3",
|
||||||
"eslint-plugin-react": "^7.7.0",
|
"eslint-plugin-react": "^7.7.0",
|
||||||
"ethereumjs-abi": "^0.6.5",
|
"ethereumjs-abi": "^0.6.5",
|
||||||
"extract-text-webpack-plugin": "^4.0.0-beta.0",
|
"extract-text-webpack-plugin": "^4.0.0-beta.0",
|
||||||
"file-loader": "^1.1.11",
|
"file-loader": "^3.0.1",
|
||||||
"flow-bin": "^0.79.1",
|
"flow-bin": "^0.94.0",
|
||||||
"fs-extra": "^5.0.0",
|
"fs-extra": "^7.0.1",
|
||||||
"html-loader": "^0.5.5",
|
"html-loader": "^0.5.5",
|
||||||
"html-webpack-plugin": "^3.0.4",
|
"html-webpack-plugin": "^3.0.4",
|
||||||
"immutable": "^4.0.0-rc.9",
|
"immutable": "^4.0.0-rc.9",
|
||||||
"jest": "^22.4.2",
|
"jest": "^24.1.0",
|
||||||
"json-loader": "^0.5.7",
|
"json-loader": "^0.5.7",
|
||||||
"material-ui-search-bar": "^1.0.0-beta.13",
|
"material-ui-search-bar": "^1.0.0-beta.13",
|
||||||
"postcss-loader": "^2.1.1",
|
"postcss-loader": "^3.0.0",
|
||||||
"postcss-mixins": "^6.2.0",
|
"postcss-mixins": "^6.2.0",
|
||||||
"postcss-simple-vars": "^4.1.0",
|
"postcss-simple-vars": "^5.0.2",
|
||||||
"pre-commit": "^1.2.2",
|
"pre-commit": "^1.2.2",
|
||||||
"react": "^16.4.0",
|
"react": "^16.4.0",
|
||||||
"react-dev-utils": "^5.0.1",
|
"react-dev-utils": "^7.0.3",
|
||||||
"react-dom": "^16.4.0",
|
"react-dom": "^16.4.0",
|
||||||
"react-redux": "^5.0.7",
|
"react-redux": "^6.0.1",
|
||||||
"react-router-redux": "^5.0.0-alpha.9",
|
"redux": "^4.0.1",
|
||||||
"redux": "^3.7.2",
|
|
||||||
"redux-actions": "^2.3.0",
|
"redux-actions": "^2.3.0",
|
||||||
"redux-thunk": "^2.2.0",
|
"redux-thunk": "^2.2.0",
|
||||||
"reselect": "^3.0.1",
|
"reselect": "^4.0.0",
|
||||||
"run-with-testrpc": "^0.3.0",
|
"run-with-testrpc": "^0.3.0",
|
||||||
"storybook-host": "^4.1.5",
|
"storybook-host": "^5.0.3",
|
||||||
"storybook-router": "^0.3.3",
|
"storybook-router": "^0.3.3",
|
||||||
"style-loader": "^0.20.2",
|
"style-loader": "^0.23.1",
|
||||||
"truffle": "^4.1.11",
|
"truffle": "^5.0.6",
|
||||||
"truffle-contract": "^1.1.8",
|
"truffle-contract": "^4.0.7",
|
||||||
"truffle-solidity-loader": "0.0.8",
|
"truffle-solidity-loader": "^0.1.6",
|
||||||
"uglifyjs-webpack-plugin": "^1.2.2",
|
"uglifyjs-webpack-plugin": "^2.1.2",
|
||||||
"web3": "0.18.4",
|
"web3": "^0.20.7",
|
||||||
"webpack": "^4.1.1",
|
"webpack": "^4.1.1",
|
||||||
"webpack-bundle-analyzer": "^2.11.1",
|
"webpack-bundle-analyzer": "^3.1.0",
|
||||||
"webpack-cli": "^2.0.8",
|
"webpack-cli": "^3.2.3",
|
||||||
"webpack-dev-server": "^3.1.0",
|
"webpack-dev-server": "^3.1.0",
|
||||||
"webpack-manifest-plugin": "^2.0.0-rc.2"
|
"webpack-manifest-plugin": "^2.0.0-rc.2"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@gnosis.pm/util-contracts": "^0.2.14",
|
"@gnosis.pm/util-contracts": "^2.0.0",
|
||||||
"@material-ui/core": "^3.0.1",
|
"@material-ui/core": "^3.0.1",
|
||||||
"@material-ui/icons": "^3.0.1",
|
"@material-ui/icons": "^3.0.1",
|
||||||
|
"connected-react-router": "^6.3.1",
|
||||||
"final-form": "^4.2.1",
|
"final-form": "^4.2.1",
|
||||||
"history": "^4.7.2",
|
"history": "^4.7.2",
|
||||||
"react-final-form": "^3.1.2",
|
"react-final-form": "^4.1.0",
|
||||||
"react-loadable": "^5.3.1",
|
"react-loadable": "^5.3.1",
|
||||||
"react-router-dom": "^4.2.2",
|
"react-router-dom": "^4.2.2",
|
||||||
"recompose": "^0.27.1"
|
"recompose": "^0.30.0"
|
||||||
},
|
},
|
||||||
"jest": {
|
"jest": {
|
||||||
"verbose": true,
|
"verbose": true,
|
||||||
|
|
|
@ -39,21 +39,19 @@ const ConnectDetails = ({ classes, onConnect }: Props) => (
|
||||||
<React.Fragment>
|
<React.Fragment>
|
||||||
<div className={classes.container}>
|
<div className={classes.container}>
|
||||||
<Row margin="lg" align="center">
|
<Row margin="lg" align="center">
|
||||||
<Paragraph className={classes.text} size="lg" noMargin weight="bolder">Connect a Wallet</Paragraph>
|
<Paragraph className={classes.text} size="lg" noMargin weight="bolder">
|
||||||
|
Connect a Wallet
|
||||||
|
</Paragraph>
|
||||||
</Row>
|
</Row>
|
||||||
</div>
|
</div>
|
||||||
<Row className={classes.logo} margin="lg">
|
<Row className={classes.logo} margin="lg">
|
||||||
<CircleDot keySize={32} circleSize={75} dotSize={25} dotTop={50} dotRight={25} center mode="error" />
|
<CircleDot keySize={32} circleSize={75} dotSize={25} dotTop={50} dotRight={25} center mode="error" />
|
||||||
</Row>
|
</Row>
|
||||||
<Row className={classes.connect}>
|
<Row className={classes.connect}>
|
||||||
<Button
|
<Button onClick={onConnect} size="medium" variant="contained" color="primary" fullWidth>
|
||||||
onClick={onConnect}
|
<Paragraph className={classes.connectText} size="sm" weight="regular" color="white" noMargin>
|
||||||
size="medium"
|
CONNECT
|
||||||
variant="raised"
|
</Paragraph>
|
||||||
color="primary"
|
|
||||||
fullWidth
|
|
||||||
>
|
|
||||||
<Paragraph className={classes.connectText} size="sm" weight="regular" color="white" noMargin>CONNECT</Paragraph>
|
|
||||||
</Button>
|
</Button>
|
||||||
</Row>
|
</Row>
|
||||||
</React.Fragment>
|
</React.Fragment>
|
||||||
|
|
|
@ -96,9 +96,7 @@ const styles = () => ({
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const UserDetails = ({
|
const UserDetails = ({ provider, connected, network, userAddress, classes, onDisconnect }: Props) => {
|
||||||
provider, connected, network, userAddress, classes, onDisconnect,
|
|
||||||
}: Props) => {
|
|
||||||
const status = connected ? 'Connected' : 'Connection error'
|
const status = connected ? 'Connected' : 'Connection error'
|
||||||
const address = userAddress ? shortVersionOf(userAddress, 6) : 'Address not available'
|
const address = userAddress ? shortVersionOf(userAddress, 6) : 'Address not available'
|
||||||
const identiconAddress = userAddress || 'random'
|
const identiconAddress = userAddress || 'random'
|
||||||
|
@ -108,25 +106,30 @@ const UserDetails = ({
|
||||||
<React.Fragment>
|
<React.Fragment>
|
||||||
<Block className={classes.container}>
|
<Block className={classes.container}>
|
||||||
<Row className={classes.identicon} margin="md" align="center">
|
<Row className={classes.identicon} margin="md" align="center">
|
||||||
{ connected
|
{connected ? (
|
||||||
? <Identicon address={identiconAddress} diameter={60} />
|
<Identicon address={identiconAddress} diameter={60} />
|
||||||
: <CircleDot keySize={30} circleSize={75} dotSize={25} dotTop={50} dotRight={25} mode="warning" hideDot />
|
) : (
|
||||||
}
|
<CircleDot keySize={30} circleSize={75} dotSize={25} dotTop={50} dotRight={25} mode="warning" hideDot />
|
||||||
|
)}
|
||||||
</Row>
|
</Row>
|
||||||
<Block align="center" className={classes.user}>
|
<Block align="center" className={classes.user}>
|
||||||
<Paragraph className={classes.address} size="sm" noMargin>{address}</Paragraph>
|
<Paragraph className={classes.address} size="sm" noMargin>
|
||||||
{ userAddress &&
|
{address}
|
||||||
|
</Paragraph>
|
||||||
|
{userAddress && (
|
||||||
<OpenInNew
|
<OpenInNew
|
||||||
className={classes.open}
|
className={classes.open}
|
||||||
style={openIconStyle}
|
style={openIconStyle}
|
||||||
onClick={openAddressInEtherScan(userAddress, network)}
|
onClick={openAddressInEtherScan(userAddress, network)}
|
||||||
/>
|
/>
|
||||||
}
|
)}
|
||||||
</Block>
|
</Block>
|
||||||
</Block>
|
</Block>
|
||||||
<Hairline margin="xs" />
|
<Hairline margin="xs" />
|
||||||
<Row className={classes.details}>
|
<Row className={classes.details}>
|
||||||
<Paragraph noMargin align="right" className={classes.labels}>Status </Paragraph>
|
<Paragraph noMargin align="right" className={classes.labels}>
|
||||||
|
Status{' '}
|
||||||
|
</Paragraph>
|
||||||
<Spacer />
|
<Spacer />
|
||||||
<Dot className={classNames(classes.dot, connected ? classes.connected : classes.warning)} />
|
<Dot className={classNames(classes.dot, connected ? classes.connected : classes.warning)} />
|
||||||
<Paragraph noMargin align="right" color={color} weight="bolder" className={classes.labels}>
|
<Paragraph noMargin align="right" color={color} weight="bolder" className={classes.labels}>
|
||||||
|
@ -135,7 +138,9 @@ const UserDetails = ({
|
||||||
</Row>
|
</Row>
|
||||||
<Hairline margin="xs" />
|
<Hairline margin="xs" />
|
||||||
<Row className={classes.details}>
|
<Row className={classes.details}>
|
||||||
<Paragraph noMargin align="right" className={classes.labels}>Client </Paragraph>
|
<Paragraph noMargin align="right" className={classes.labels}>
|
||||||
|
Client{' '}
|
||||||
|
</Paragraph>
|
||||||
<Spacer />
|
<Spacer />
|
||||||
<Img className={classes.logo} src={metamask} height={14} alt="Metamask client" />
|
<Img className={classes.logo} src={metamask} height={14} alt="Metamask client" />
|
||||||
<Paragraph noMargin align="right" weight="bolder" className={classes.labels}>
|
<Paragraph noMargin align="right" weight="bolder" className={classes.labels}>
|
||||||
|
@ -144,7 +149,9 @@ const UserDetails = ({
|
||||||
</Row>
|
</Row>
|
||||||
<Hairline margin="xs" />
|
<Hairline margin="xs" />
|
||||||
<Row className={classes.details}>
|
<Row className={classes.details}>
|
||||||
<Paragraph noMargin align="right" className={classes.labels}>Network </Paragraph>
|
<Paragraph noMargin align="right" className={classes.labels}>
|
||||||
|
Network{' '}
|
||||||
|
</Paragraph>
|
||||||
<Spacer />
|
<Spacer />
|
||||||
<Img className={classes.logo} src={dot} height={14} alt="Network" />
|
<Img className={classes.logo} src={dot} height={14} alt="Network" />
|
||||||
<Paragraph noMargin align="right" weight="bolder" className={classes.labels}>
|
<Paragraph noMargin align="right" weight="bolder" className={classes.labels}>
|
||||||
|
@ -153,14 +160,10 @@ const UserDetails = ({
|
||||||
</Row>
|
</Row>
|
||||||
<Hairline margin="xs" />
|
<Hairline margin="xs" />
|
||||||
<Row className={classes.disconnect}>
|
<Row className={classes.disconnect}>
|
||||||
<Button
|
<Button onClick={onDisconnect} size="medium" variant="contained" color="primary" fullWidth>
|
||||||
onClick={onDisconnect}
|
<Paragraph className={classes.disconnectText} size="sm" weight="bold" color="white" noMargin>
|
||||||
size="medium"
|
DISCONNECT
|
||||||
variant="raised"
|
</Paragraph>
|
||||||
color="primary"
|
|
||||||
fullWidth
|
|
||||||
>
|
|
||||||
<Paragraph className={classes.disconnectText} size="sm" weight="bold" color="white" noMargin>DISCONNECT</Paragraph>
|
|
||||||
</Button>
|
</Button>
|
||||||
</Row>
|
</Row>
|
||||||
</React.Fragment>
|
</React.Fragment>
|
||||||
|
|
|
@ -48,7 +48,7 @@ const Controls = ({
|
||||||
<Button
|
<Button
|
||||||
style={secondButtonStyle}
|
style={secondButtonStyle}
|
||||||
size="small"
|
size="small"
|
||||||
variant="raised"
|
variant="contained"
|
||||||
color="primary"
|
color="primary"
|
||||||
type="submit"
|
type="submit"
|
||||||
disabled={disabled}
|
disabled={disabled}
|
||||||
|
|
|
@ -46,7 +46,7 @@ class GnoStepper extends React.PureComponent<Props, State> {
|
||||||
static FinishButton = ({
|
static FinishButton = ({
|
||||||
component, to, title, ...props
|
component, to, title, ...props
|
||||||
}) => (
|
}) => (
|
||||||
<Button component={component} to={to} variant="raised" color="primary" {...props}>
|
<Button component={component} to={to} variant="contained" color="primary" {...props}>
|
||||||
{title}
|
{title}
|
||||||
</Button>
|
</Button>
|
||||||
)
|
)
|
||||||
|
|
|
@ -5,7 +5,7 @@ import { MuiThemeProvider } from '@material-ui/core/styles'
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import ReactDOM from 'react-dom'
|
import ReactDOM from 'react-dom'
|
||||||
import { Provider } from 'react-redux'
|
import { Provider } from 'react-redux'
|
||||||
import { ConnectedRouter } from 'react-router-redux'
|
import { ConnectedRouter } from 'connected-react-router'
|
||||||
import PageFrame from '~/components/layout/PageFrame'
|
import PageFrame from '~/components/layout/PageFrame'
|
||||||
import { history, store } from '~/store'
|
import { history, store } from '~/store'
|
||||||
import theme from '~/theme/mui'
|
import theme from '~/theme/mui'
|
||||||
|
@ -25,7 +25,4 @@ const Root = () => (
|
||||||
</Provider>
|
</Provider>
|
||||||
)
|
)
|
||||||
|
|
||||||
ReactDOM.render(
|
ReactDOM.render(<Root />, document.getElementById('root'))
|
||||||
<Root />,
|
|
||||||
document.getElementById('root'),
|
|
||||||
)
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ const NoRights = () => (
|
||||||
<Button
|
<Button
|
||||||
component={Link}
|
component={Link}
|
||||||
to={SAFELIST_ADDRESS}
|
to={SAFELIST_ADDRESS}
|
||||||
variant="raised"
|
variant="contained"
|
||||||
color="primary"
|
color="primary"
|
||||||
>
|
>
|
||||||
Safe List
|
Safe List
|
||||||
|
|
|
@ -75,7 +75,7 @@ const BalanceComponent = openHoc(({
|
||||||
<Img src={token.get('logoUrl')} height={30} alt={name} />
|
<Img src={token.get('logoUrl')} height={30} alt={name} />
|
||||||
</ListItemIcon>
|
</ListItemIcon>
|
||||||
<ListItemText primary={name} secondary={`${token.get('funds')} ${symbol}`} />
|
<ListItemText primary={name} secondary={`${token.get('funds')} ${symbol}`} />
|
||||||
<Button variant="raised" color="primary" onClick={onMoveFundsClick} disabled={disabled}>
|
<Button variant="contained" color="primary" onClick={onMoveFundsClick} disabled={disabled}>
|
||||||
{MOVE_FUNDS_BUTTON_TEXT}
|
{MOVE_FUNDS_BUTTON_TEXT}
|
||||||
</Button>
|
</Button>
|
||||||
</ListItem>
|
</ListItem>
|
||||||
|
|
|
@ -24,7 +24,7 @@ const Confirmations = ({ confirmations, onEditThreshold }: Props) => (
|
||||||
cut
|
cut
|
||||||
/>
|
/>
|
||||||
<Button
|
<Button
|
||||||
variant="raised"
|
variant="contained"
|
||||||
color="primary"
|
color="primary"
|
||||||
onClick={onEditThreshold}
|
onClick={onEditThreshold}
|
||||||
>
|
>
|
||||||
|
|
|
@ -22,7 +22,7 @@ const MultisigTransactionsComponent = ({ onSeeTxs }: Props) => {
|
||||||
</Avatar>
|
</Avatar>
|
||||||
<ListItemText primary="Safe's Multisig Transaction" secondary={text} />
|
<ListItemText primary="Safe's Multisig Transaction" secondary={text} />
|
||||||
<Button
|
<Button
|
||||||
variant="raised"
|
variant="contained"
|
||||||
color="primary"
|
color="primary"
|
||||||
onClick={onSeeTxs}
|
onClick={onSeeTxs}
|
||||||
>
|
>
|
||||||
|
|
|
@ -51,7 +51,7 @@ const Owners = openHoc(({
|
||||||
}
|
}
|
||||||
</ListItemIcon>
|
</ListItemIcon>
|
||||||
<Button
|
<Button
|
||||||
variant="raised"
|
variant="contained"
|
||||||
color="primary"
|
color="primary"
|
||||||
onClick={onAddOwner}
|
onClick={onAddOwner}
|
||||||
>
|
>
|
||||||
|
|
|
@ -86,7 +86,7 @@ class GnoTransaction extends React.PureComponent<Props> {
|
||||||
}
|
}
|
||||||
{ !executionHash && !userConfirmed &&
|
{ !executionHash && !userConfirmed &&
|
||||||
<Button
|
<Button
|
||||||
variant="raised"
|
variant="contained"
|
||||||
color="primary"
|
color="primary"
|
||||||
onClick={this.onProccesClick}
|
onClick={this.onProccesClick}
|
||||||
>
|
>
|
||||||
|
|
|
@ -26,7 +26,7 @@ const SafeTable = ({ safes }: Props) => (
|
||||||
<TableRow key={safe.address}>
|
<TableRow key={safe.address}>
|
||||||
<TableCell>
|
<TableCell>
|
||||||
<Link to={`${SAFELIST_ADDRESS}/${safe.address}`}>
|
<Link to={`${SAFELIST_ADDRESS}/${safe.address}`}>
|
||||||
<Button variant="raised" size="small" color="primary">Open</Button>
|
<Button variant="contained" size="small" color="primary">Open</Button>
|
||||||
</Link>
|
</Link>
|
||||||
</TableCell>
|
</TableCell>
|
||||||
<TableCell padding="none">{safe.get('name')}</TableCell>
|
<TableCell padding="none">{safe.get('name')}</TableCell>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
import { List, Map } from 'immutable'
|
import { List, Map } from 'immutable'
|
||||||
import contract from 'truffle-contract'
|
import contract from 'truffle-contract'
|
||||||
import type { Dispatch as ReduxDispatch } from 'redux'
|
import type { Dispatch as ReduxDispatch } from 'redux'
|
||||||
import StandardToken from '@gnosis.pm/util-contracts/build/contracts/StandardToken.json'
|
import StandardToken from '@gnosis.pm/util-contracts/build/contracts/GnosisStandardToken.json'
|
||||||
import HumanFriendlyToken from '@gnosis.pm/util-contracts/build/contracts/HumanFriendlyToken.json'
|
import HumanFriendlyToken from '@gnosis.pm/util-contracts/build/contracts/HumanFriendlyToken.json'
|
||||||
import { getWeb3 } from '~/logic/wallets/getWeb3'
|
import { getWeb3 } from '~/logic/wallets/getWeb3'
|
||||||
import { type GlobalState } from '~/store/index'
|
import { type GlobalState } from '~/store/index'
|
||||||
|
@ -35,7 +35,8 @@ export const getStandardTokenContract = ensureOnce(createStandardTokenContract)
|
||||||
export const calculateBalanceOf = async (tokenAddress: string, address: string, decimals: number) => {
|
export const calculateBalanceOf = async (tokenAddress: string, address: string, decimals: number) => {
|
||||||
const erc20Token = await getStandardTokenContract()
|
const erc20Token = await getStandardTokenContract()
|
||||||
|
|
||||||
return erc20Token.at(tokenAddress)
|
return erc20Token
|
||||||
|
.at(tokenAddress)
|
||||||
.then(instance => instance.balanceOf(address).then(funds => funds.div(10 ** decimals).toString()))
|
.then(instance => instance.balanceOf(address).then(funds => funds.div(10 ** decimals).toString()))
|
||||||
.catch(() => '0')
|
.catch(() => '0')
|
||||||
}
|
}
|
||||||
|
@ -46,40 +47,43 @@ export const fetchTokensData = async () => {
|
||||||
return enhancedFetch(url, errMsg)
|
return enhancedFetch(url, errMsg)
|
||||||
}
|
}
|
||||||
|
|
||||||
export const fetchTokens = (safeAddress: string) =>
|
export const fetchTokens = (safeAddress: string) => async (dispatch: ReduxDispatch<GlobalState>) => {
|
||||||
async (dispatch: ReduxDispatch<GlobalState>) => {
|
const tokens: List<string> = getActiveTokenAddresses(safeAddress)
|
||||||
const tokens: List<string> = getActiveTokenAddresses(safeAddress)
|
const ethBalance = await getSafeEthToken(safeAddress)
|
||||||
const ethBalance = await getSafeEthToken(safeAddress)
|
const customTokens = getTokens(safeAddress)
|
||||||
const customTokens = getTokens(safeAddress)
|
const json = await exports.fetchTokensData()
|
||||||
const json = await exports.fetchTokensData()
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const balancesRecords = await Promise.all(json.map(async (item: TokenProps) => {
|
const balancesRecords = await Promise.all(
|
||||||
|
json.map(async (item: TokenProps) => {
|
||||||
const status = tokens.includes(item.address)
|
const status = tokens.includes(item.address)
|
||||||
const funds = status ? await calculateBalanceOf(item.address, safeAddress, item.decimals) : '0'
|
const funds = status ? await calculateBalanceOf(item.address, safeAddress, item.decimals) : '0'
|
||||||
|
|
||||||
return makeToken({ ...item, status, funds })
|
return makeToken({ ...item, status, funds })
|
||||||
}))
|
}),
|
||||||
|
)
|
||||||
|
|
||||||
const customTokenRecords = await Promise.all(customTokens.map(async (item: TokenProps) => {
|
const customTokenRecords = await Promise.all(
|
||||||
|
customTokens.map(async (item: TokenProps) => {
|
||||||
const status = tokens.includes(item.address)
|
const status = tokens.includes(item.address)
|
||||||
const funds = status ? await calculateBalanceOf(item.address, safeAddress, item.decimals) : '0'
|
const funds = status ? await calculateBalanceOf(item.address, safeAddress, item.decimals) : '0'
|
||||||
|
|
||||||
return makeToken({ ...item, status, funds })
|
return makeToken({ ...item, status, funds })
|
||||||
}))
|
}),
|
||||||
|
)
|
||||||
|
|
||||||
const balances: Map<string, Token> = Map().withMutations((map) => {
|
const balances: Map<string, Token> = Map().withMutations(map => {
|
||||||
balancesRecords.forEach(record => map.set(record.get('address'), record))
|
balancesRecords.forEach(record => map.set(record.get('address'), record))
|
||||||
customTokenRecords.forEach(record => map.set(record.get('address'), record))
|
customTokenRecords.forEach(record => map.set(record.get('address'), record))
|
||||||
|
|
||||||
map.set(ethBalance.get('address'), ethBalance)
|
map.set(ethBalance.get('address'), ethBalance)
|
||||||
})
|
})
|
||||||
|
|
||||||
return dispatch(addTokens(safeAddress, balances))
|
return dispatch(addTokens(safeAddress, balances))
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line
|
||||||
console.log("Error fetching token balances... " + err)
|
console.log('Error fetching token balances... ' + err)
|
||||||
|
|
||||||
return Promise.resolve()
|
return Promise.resolve()
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -29,7 +29,7 @@ export const CreateSafe = ({ size, provider }: SafeProps) => (
|
||||||
<Button
|
<Button
|
||||||
component={Link}
|
component={Link}
|
||||||
to={OPEN_ADDRESS}
|
to={OPEN_ADDRESS}
|
||||||
variant="raised"
|
variant="contained"
|
||||||
size={size || 'medium'}
|
size={size || 'medium'}
|
||||||
color="primary"
|
color="primary"
|
||||||
disabled={!provider}
|
disabled={!provider}
|
||||||
|
|
|
@ -1,21 +1,21 @@
|
||||||
// @flow
|
// @flow
|
||||||
import { createBrowserHistory } from 'history'
|
import createBrowserHistory from 'history/createBrowserHistory'
|
||||||
import { routerMiddleware, routerReducer } from 'react-router-redux'
|
import { connectRouter, routerMiddleware } from 'connected-react-router'
|
||||||
import { combineReducers, createStore, applyMiddleware, compose, type Reducer, type Store } from 'redux'
|
import { combineReducers, createStore, applyMiddleware, compose, type Reducer, type Store } from 'redux'
|
||||||
import thunk from 'redux-thunk'
|
import thunk from 'redux-thunk'
|
||||||
import provider, { PROVIDER_REDUCER_ID, type State as ProviderState } from '~/logic/wallets/store/reducer/provider'
|
import provider, { PROVIDER_REDUCER_ID, type State as ProviderState } from '~/logic/wallets/store/reducer/provider'
|
||||||
import safe, { SAFE_REDUCER_ID, type State as SafeState, safesInitialState } from '~/routes/safe/store/reducer/safe'
|
import safe, { SAFE_REDUCER_ID, type State as SafeState, safesInitialState } from '~/routes/safe/store/reducer/safe'
|
||||||
import tokens, { TOKEN_REDUCER_ID, type State as TokensState } from '~/routes/tokens/store/reducer/tokens'
|
import tokens, { TOKEN_REDUCER_ID, type State as TokensState } from '~/routes/tokens/store/reducer/tokens'
|
||||||
import transactions, { type State as TransactionsState, TRANSACTIONS_REDUCER_ID } from '~/routes/safe/store/reducer/transactions'
|
import transactions, {
|
||||||
|
type State as TransactionsState,
|
||||||
|
TRANSACTIONS_REDUCER_ID,
|
||||||
|
} from '~/routes/safe/store/reducer/transactions'
|
||||||
|
|
||||||
export const history = createBrowserHistory()
|
export const history = createBrowserHistory()
|
||||||
|
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line
|
||||||
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose
|
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose
|
||||||
const finalCreateStore = composeEnhancers(applyMiddleware(
|
const finalCreateStore = composeEnhancers(applyMiddleware(thunk, routerMiddleware(history)))
|
||||||
thunk,
|
|
||||||
routerMiddleware(history),
|
|
||||||
))
|
|
||||||
|
|
||||||
export type GlobalState = {
|
export type GlobalState = {
|
||||||
providers: ProviderState,
|
providers: ProviderState,
|
||||||
|
@ -27,7 +27,7 @@ export type GlobalState = {
|
||||||
export type GetState = () => GlobalState
|
export type GetState = () => GlobalState
|
||||||
|
|
||||||
const reducers: Reducer<GlobalState> = combineReducers({
|
const reducers: Reducer<GlobalState> = combineReducers({
|
||||||
routing: routerReducer,
|
router: connectRouter(history),
|
||||||
[PROVIDER_REDUCER_ID]: provider,
|
[PROVIDER_REDUCER_ID]: provider,
|
||||||
[SAFE_REDUCER_ID]: safe,
|
[SAFE_REDUCER_ID]: safe,
|
||||||
[TOKEN_REDUCER_ID]: tokens,
|
[TOKEN_REDUCER_ID]: tokens,
|
||||||
|
|
|
@ -1,6 +1,18 @@
|
||||||
// @flow
|
// @flow
|
||||||
import { createMuiTheme } from '@material-ui/core/styles'
|
import { createMuiTheme } from '@material-ui/core/styles'
|
||||||
import { largeFontSize, mediumFontSize, smallFontSize, disabled, primary, secondary, md, lg, bolderFont, boldFont, buttonLargeFontSize } from './variables'
|
import {
|
||||||
|
largeFontSize,
|
||||||
|
mediumFontSize,
|
||||||
|
smallFontSize,
|
||||||
|
disabled,
|
||||||
|
primary,
|
||||||
|
secondary,
|
||||||
|
md,
|
||||||
|
lg,
|
||||||
|
bolderFont,
|
||||||
|
boldFont,
|
||||||
|
buttonLargeFontSize,
|
||||||
|
} from './variables'
|
||||||
|
|
||||||
export type WithStyles = {
|
export type WithStyles = {
|
||||||
classes: Object,
|
classes: Object,
|
||||||
|
@ -31,12 +43,12 @@ export default createMuiTheme({
|
||||||
root: {
|
root: {
|
||||||
fontFamily: 'Roboto Mono, monospace',
|
fontFamily: 'Roboto Mono, monospace',
|
||||||
letterSpacing: '0.9px',
|
letterSpacing: '0.9px',
|
||||||
'&:disabled': {
|
'&$disabled': {
|
||||||
color: disabled,
|
color: disabled,
|
||||||
},
|
},
|
||||||
color: disabled,
|
color: disabled,
|
||||||
},
|
},
|
||||||
disabled: {
|
'&$disabled': {
|
||||||
cursor: 'pointer',
|
cursor: 'pointer',
|
||||||
},
|
},
|
||||||
contained: {
|
contained: {
|
||||||
|
@ -160,7 +172,7 @@ export default createMuiTheme({
|
||||||
fontFamily: 'Roboto Mono, monospace',
|
fontFamily: 'Roboto Mono, monospace',
|
||||||
fontWeight: 'normal',
|
fontWeight: 'normal',
|
||||||
},
|
},
|
||||||
selected: {
|
'&$selected': {
|
||||||
fontWeight: bolderFont,
|
fontWeight: bolderFont,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue