diff --git a/.babelrc b/.babelrc new file mode 100644 index 00000000..8148cfc2 --- /dev/null +++ b/.babelrc @@ -0,0 +1,16 @@ +{ + "presets": [ + "@babel/react", + [ + "@babel/env", + { + "forceAllTransforms": true + } + ], + "@babel/stage-0" + ], + "plugins": [ + "transform-es3-member-expression-literals", + "transform-es3-property-literals" + ] +} diff --git a/.gitignore b/.gitignore index 2b1a9754..cbbb0b96 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ build/ build_webpack/ build/contracts/ truffle-config.js +gnosis-safe-contracts/ diff --git a/box-img-lg.png b/box-img-lg.png deleted file mode 100644 index 60c19962..00000000 Binary files a/box-img-lg.png and /dev/null differ diff --git a/box-img-sm.png b/box-img-sm.png deleted file mode 100644 index 466e7097..00000000 Binary files a/box-img-sm.png and /dev/null differ diff --git a/config/webpack.config.dev.js b/config/webpack.config.dev.js index b62ace96..d54eec8c 100644 --- a/config/webpack.config.dev.js +++ b/config/webpack.config.dev.js @@ -1,38 +1,44 @@ -var autoprefixer = require('autoprefixer'); -var cssvars = require('postcss-simple-vars'); -var webpack = require('webpack'); -var HtmlWebpackPlugin = require('html-webpack-plugin'); -var CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin'); -var InterpolateHtmlPlugin = require('react-dev-utils/InterpolateHtmlPlugin'); -var WatchMissingNodeModulesPlugin = require('react-dev-utils/WatchMissingNodeModulesPlugin'); -var getClientEnvironment = require('./env'); -var paths = require('./paths'); +const autoprefixer = require('autoprefixer'); +const cssvars = require('postcss-simple-vars'); +const webpack = require('webpack'); +const HtmlWebPackPlugin = require("html-webpack-plugin"); +const paths = require('./paths'); +const getClientEnvironment = require('./env'); +const publicPath = '/'; -// Webpack uses `publicPath` to determine where the app is being served from. -// In development, we always serve from the root. This makes config easier. -var publicPath = '/'; -// `publicUrl` is just like `publicPath`, but 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. // Omit trailing slash as %PUBLIC_PATH%/xyz looks better than %PUBLIC_PATH%xyz. var publicUrl = ''; // Get environment variables to inject into our app. var env = getClientEnvironment(publicUrl); -var cssvariables = require(paths.appSrc + '/theme/variables'); +const cssvariables = require(paths.appSrc + '/theme/variables'); + +const postcssPlugins = [ + autoprefixer({ + browsers: [ + '>1%', + 'last 4 versions', + 'Firefox ESR', + 'not ie < 9', // React doesn't support IE8 anyway + ] + }), + cssvars({ + variables: function () { + return Object.assign({}, cssvariables); + }, + silent: false + }), +]; -// This is the development configuration. -// It is focused on developer experience and fast rebuilds. -// The production configuration is different and lives in a separate file. module.exports = { - // You may want 'eval' instead if you prefer to see the compiled output in DevTools. - // See the discussion in https://github.com/facebookincubator/create-react-app/issues/343. - devtool: 'cheap-module-source-map', - // These are the "entry points" to our application. - // This means they will be the "root" imports that are included in JS bundle. - // The first two entry points enable "hot" CSS and auto-refreshes for JS. + devtool: 'eval-source-map', + mode: 'development', entry: [ + "babel-polyfill", // Include an alternative client for WebpackDevServer. A client's job is to // 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 @@ -52,6 +58,13 @@ module.exports = { // initialization, it doesn't blow up the WebpackDevServer client, and // changing JS code would still trigger a refresh. ], + resolve: { + // These are the reasonable defaults supported by the Node ecosystem. + // We also include JSX as a common component filename extension to support + // some tools, although we do not recommend using it, see: + // https://github.com/facebookincubator/create-react-app/issues/290 + extensions: ['.js', '.json', '.jsx'], + }, output: { // Next line is not used in dev but WebpackDevServer crashes without it: path: paths.appBuild, @@ -63,188 +76,54 @@ module.exports = { filename: 'static/js/bundle.js', // This is the URL that app is served from. We use "/" in development. publicPath: publicPath - }, - resolve: { - // This allows you to set a fallback for where Webpack should look for modules. - // We read `NODE_PATH` environment variable in `paths.js` and pass paths here. - // We use `fallback` instead of `root` because we want `node_modules` to "win" - // if there any conflicts. This matches Node resolution mechanism. - // https://github.com/facebookincubator/create-react-app/issues/253 - fallback: paths.nodePaths, - // These are the reasonable defaults supported by the Node ecosystem. - // We also include JSX as a common component filename extension to support - // some tools, although we do not recommend using it, see: - // https://github.com/facebookincubator/create-react-app/issues/290 - extensions: ['.js', '.json', '.jsx', ''], - alias: { - // Support React Native Web - // https://www.smashingmagazine.com/2016/08/a-glimpse-into-the-future-with-react-native-for-web/ - 'react-native': 'react-native-web' - } - }, - + }, module: { - // First, run the linter. - // It's important to do this before Babel processes the JS. - preLoaders: [ + rules: [ { test: /\.(js|jsx)$/, - loader: 'eslint', - include: paths.appSrc, - } - ], - loaders: [ - // Default loader: load all assets that are not handled - // by other loaders with the url loader. - // Note: This list needs to be updated with every change of extensions - // the other loaders match. - // E.g., when adding a loader for a new supported file extension, - // we need to add the supported extension to this loader too. - // Add one new line in `exclude` for each loader. - // - // "file" loader makes sure those assets get served by WebpackDevServer. - // When you `import` an asset, you get its (virtual) filename. - // In production, they would get copied to the `build` folder. - // "url" loader works like "file" loader except that it embeds assets - // smaller than specified limit in bytes as data URLs to avoid requests. - // A missing `test` is equivalent to a match. - { - exclude: [ - /\.html$/, - /\.(js|jsx)$/, - /\.css$/, - /\.scss$/, - /\.json$/, - /\.woff$/, - /\.woff2$/, - /\.(ttf|svg|eot)$/ - ], - loader: 'url', - query: { - limit: 10000, - name: 'static/media/[name].[hash:8].[ext]' - } - }, - // Process JS with Babel. - { - test: /\.(js|jsx)$/, - include: paths.appSrc, - loader: 'babel', - query: { - - // This is a feature of `babel-loader` for webpack (not Babel itself). - // It enables caching results in ./node_modules/.cache/babel-loader/ - // directory for faster rebuilds. - cacheDirectory: true + exclude: /node_modules/, + use: { + loader: "babel-loader" } }, { test: /\.(scss|css)$/, - loader: 'style!css?importLoaders=1&modules=true&minimize=false&localIdentName=[name]__[local]___[hash:base64:5]!postcss?sourceMap' - }, - // "postcss" loader applies autoprefixer to our CSS. - // "css" loader resolves paths in CSS and adds assets as dependencies. - // "style" loader turns CSS into JS modules that inject