diff --git a/client/.flowconfig b/client/.flowconfig new file mode 100644 index 000000000..a8cd5ce7f --- /dev/null +++ b/client/.flowconfig @@ -0,0 +1,19 @@ +[ignore] +node_modules + +[libs] +flow-typed + +[lints] + +[options] +module.name_mapper='.*\(.scss\)' -> 'empty/object' +module.name_mapper='.*\(.css\)' -> 'empty/object' +module.name_mapper='^src/\(.*\)$' -> '/src/\1' + +suppress_comment=\\(.\\|\n\\)*\\$FlowIssue +suppress_type=$FlowIssue +suppress_type=$FlowFixMe +suppress_type=$FixMe + +[strict] diff --git a/client/html/index.html b/client/html/index.html index ef054f359..5de3933a4 100644 --- a/client/html/index.html +++ b/client/html/index.html @@ -27,7 +27,7 @@ topMargin: 130, urlPrefix: 'https://charts-dev.advancedalgos.net/' , /* 'http://localhost:1337/' */ /* 'https://charts-dev.advancedalgos.net/' */ graphQL: { - masterAppApiUrl: 'https://app-api.advancedalgos.net/graphql' + masterAppApiUrl: 'https://platform-api-dev.advancedalgos.net/graphql' }, context: {} }; diff --git a/client/package-lock.json b/client/package-lock.json index bbaa459c6..617465463 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -26,9 +26,9 @@ } }, "@advancedalgos/key-vault-client": { - "version": "0.0.24", - "resolved": "https://registry.npmjs.org/@advancedalgos/key-vault-client/-/key-vault-client-0.0.24.tgz", - "integrity": "sha512-yLQGx5pohKCkzFD+hiRmrGVN8xzIRi2V/OAErKLa1aRWIdSNZVpiQe7GAnB1zpHYUmjxh5YKH9WfurRNAIovLQ==", + "version": "0.0.25", + "resolved": "https://registry.npmjs.org/@advancedalgos/key-vault-client/-/key-vault-client-0.0.25.tgz", + "integrity": "sha512-CDGm4/ITV1sa01LNFh5LVlrd3OcwAAcL2ffNr7CZ+w2JRjZX6UnIzC21ZmypLZoTNmT34L8xk5dd7Tq3rh2TyQ==", "dev": true, "requires": { "@material-ui/core": "^3.2.2", @@ -46,9 +46,9 @@ } }, "@advancedalgos/teams-client": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@advancedalgos/teams-client/-/teams-client-0.0.29.tgz", - "integrity": "sha512-jObBNPVG2udT/36zzs6LfDwT1/KCT7NddFsnZc79irzNXXKDUIIoAxaFS08Z/Kis24cD24FFgjxjSLKEPMxBCA==", + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@advancedalgos/teams-client/-/teams-client-0.0.30.tgz", + "integrity": "sha512-L7i6GunMCdba9tDEq4SPQgnR8Ul8Qg6htMJUOukv78y2PgcWeTmWk3KtudN0NuUyzxw7SLBFEl3u66mTX/Tz6g==", "dev": true, "requires": { "@advancedalgos/web-components": "0.0.15", @@ -78,133 +78,6 @@ "react-router-dom": "^4.3.1", "recompose": "^0.30.0", "subscriptions-transport-ws": "^0.9.15" - }, - "dependencies": { - "@advancedalgos/web-components": { - "version": "0.0.15", - "resolved": "https://registry.npmjs.org/@advancedalgos/web-components/-/web-components-0.0.15.tgz", - "integrity": "sha512-Z9QyMqgpR/Al+0EYuLtSK3/9BJ/anB0zulBG7QMac9xCgNGSSbon9GndtSIFN3HwyirDCsIH3CZdPi6tJL3KnA==", - "dev": true, - "requires": { - "@azure/storage-blob": "^10.1.0-preview", - "@material-ui/core": "^3.2.2", - "@material-ui/icons": "^3.0.1", - "apollo-client": "^2.4.5", - "blob-util": "^2.0.2", - "browser-image-resizer": "^1.2.0", - "graphql": "^14.0.2", - "graphql-tag": "^2.10.0", - "prop-types": "^15.6.2", - "react": "^16.6.1", - "react-apollo": "^2.3.1", - "react-dom": "^16.6.1", - "react-dropzone": "^5.1.0", - "react-image-cropper": "^1.3.0" - }, - "dependencies": { - "@azure/storage-blob": { - "version": "10.1.0-preview", - "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-10.1.0-preview.tgz", - "integrity": "sha512-vKY4dF8VCRCOOQ03Z1ResyjZbWg4jPOnQtRtlSEKE6a7WwFE3EuIbhE7OQfEihuNYyE+XWLkTjrHxeHDFx1hFg==", - "dev": true, - "requires": { - "events": "3.0.0", - "ms-rest-js": "0.22.425", - "tslib": "^1.9.3" - } - }, - "apollo-client": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/apollo-client/-/apollo-client-2.4.6.tgz", - "integrity": "sha512-RsZVMYone7mu3Wj4sr7ehctN8pdaHsP4X1Sv6Ly4gZ/YDetCCVnhbmnk5q7kvDtfoo0jhhHblxgFyA3FLLImtA==", - "dev": true, - "requires": { - "@types/async": "2.0.50", - "@types/zen-observable": "^0.8.0", - "apollo-cache": "1.1.20", - "apollo-link": "^1.0.0", - "apollo-link-dedup": "^1.0.0", - "apollo-utilities": "1.0.25", - "symbol-observable": "^1.0.2", - "zen-observable": "^0.8.0" - } - }, - "apollo-utilities": { - "version": "1.0.25", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.0.25.tgz", - "integrity": "sha512-AXvqkhni3Ir1ffm4SA1QzXn8k8I5BBl4PVKEyak734i4jFdp+xgfUyi2VCqF64TJlFTA/B73TRDUvO2D+tKtZg==", - "dev": true, - "requires": { - "fast-json-stable-stringify": "^2.0.0" - } - }, - "react-apollo": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/react-apollo/-/react-apollo-2.3.1.tgz", - "integrity": "sha512-xPteQmCzMJT8wE4v0zq38E6JWLhrNcJENl66fP117lwzU2lZA+qoUDcizqKl0z2OY5b+KklmqnPPD+wcWAdy7w==", - "dev": true, - "requires": { - "fbjs": "^1.0.0", - "hoist-non-react-statics": "^3.0.0", - "invariant": "^2.2.2", - "lodash.flowright": "^3.5.0", - "lodash.isequal": "^4.5.0", - "prop-types": "^15.6.0" - } - } - } - }, - "apollo-cache": { - "version": "1.1.20", - "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.1.20.tgz", - "integrity": "sha512-+Du0/4kUSuf5PjPx0+pvgMGV12ezbHA8/hubYuqRQoy/4AWb4faa61CgJNI6cKz2mhDd9m94VTNKTX11NntwkQ==", - "dev": true, - "requires": { - "apollo-utilities": "^1.0.25" - }, - "dependencies": { - "apollo-utilities": { - "version": "1.0.25", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.0.25.tgz", - "integrity": "sha512-AXvqkhni3Ir1ffm4SA1QzXn8k8I5BBl4PVKEyak734i4jFdp+xgfUyi2VCqF64TJlFTA/B73TRDUvO2D+tKtZg==", - "dev": true, - "requires": { - "fast-json-stable-stringify": "^2.0.0" - } - } - } - }, - "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", - "dev": true - }, - "fbjs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-1.0.0.tgz", - "integrity": "sha512-MUgcMEJaFhCaF1QtWGnmq9ZDRAzECTCRAF7O6UZIlAlkTs1SasiX9aP0Iw7wfD2mJ7wDTNfg2w7u5fSCwJk1OA==", - "dev": true, - "requires": { - "core-js": "^2.4.1", - "fbjs-css-vars": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - } - }, - "hoist-non-react-statics": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.1.0.tgz", - "integrity": "sha512-MYcYuROh7SBM69xHGqXEwQqDux34s9tz+sCnxJmN18kgWh6JFdTw/5YdZtqsOdZJXddE/wUpCzfEdDrJj8p0Iw==", - "dev": true, - "requires": { - "react-is": "^16.3.2" - } - } } }, "@advancedalgos/users-client": { @@ -271,6 +144,120 @@ } } }, + "@advancedalgos/web-components": { + "version": "0.0.15", + "resolved": "https://registry.npmjs.org/@advancedalgos/web-components/-/web-components-0.0.15.tgz", + "integrity": "sha512-Z9QyMqgpR/Al+0EYuLtSK3/9BJ/anB0zulBG7QMac9xCgNGSSbon9GndtSIFN3HwyirDCsIH3CZdPi6tJL3KnA==", + "dev": true, + "requires": { + "@azure/storage-blob": "^10.1.0-preview", + "@material-ui/core": "^3.2.2", + "@material-ui/icons": "^3.0.1", + "apollo-client": "^2.4.5", + "blob-util": "^2.0.2", + "browser-image-resizer": "^1.2.0", + "graphql": "^14.0.2", + "graphql-tag": "^2.10.0", + "prop-types": "^15.6.2", + "react": "^16.6.1", + "react-apollo": "^2.3.1", + "react-dom": "^16.6.1", + "react-dropzone": "^5.1.0", + "react-image-cropper": "^1.3.0" + }, + "dependencies": { + "@azure/storage-blob": { + "version": "10.1.0-preview", + "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-10.1.0-preview.tgz", + "integrity": "sha512-vKY4dF8VCRCOOQ03Z1ResyjZbWg4jPOnQtRtlSEKE6a7WwFE3EuIbhE7OQfEihuNYyE+XWLkTjrHxeHDFx1hFg==", + "dev": true, + "requires": { + "events": "3.0.0", + "ms-rest-js": "0.22.425", + "tslib": "^1.9.3" + } + }, + "apollo-cache": { + "version": "1.1.20", + "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.1.20.tgz", + "integrity": "sha512-+Du0/4kUSuf5PjPx0+pvgMGV12ezbHA8/hubYuqRQoy/4AWb4faa61CgJNI6cKz2mhDd9m94VTNKTX11NntwkQ==", + "dev": true, + "requires": { + "apollo-utilities": "^1.0.25" + } + }, + "apollo-client": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/apollo-client/-/apollo-client-2.4.6.tgz", + "integrity": "sha512-RsZVMYone7mu3Wj4sr7ehctN8pdaHsP4X1Sv6Ly4gZ/YDetCCVnhbmnk5q7kvDtfoo0jhhHblxgFyA3FLLImtA==", + "dev": true, + "requires": { + "@types/async": "2.0.50", + "@types/zen-observable": "^0.8.0", + "apollo-cache": "1.1.20", + "apollo-link": "^1.0.0", + "apollo-link-dedup": "^1.0.0", + "apollo-utilities": "1.0.25", + "symbol-observable": "^1.0.2", + "zen-observable": "^0.8.0" + } + }, + "apollo-utilities": { + "version": "1.0.25", + "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.0.25.tgz", + "integrity": "sha512-AXvqkhni3Ir1ffm4SA1QzXn8k8I5BBl4PVKEyak734i4jFdp+xgfUyi2VCqF64TJlFTA/B73TRDUvO2D+tKtZg==", + "dev": true, + "requires": { + "fast-json-stable-stringify": "^2.0.0" + } + }, + "core-js": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "fbjs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-1.0.0.tgz", + "integrity": "sha512-MUgcMEJaFhCaF1QtWGnmq9ZDRAzECTCRAF7O6UZIlAlkTs1SasiX9aP0Iw7wfD2mJ7wDTNfg2w7u5fSCwJk1OA==", + "dev": true, + "requires": { + "core-js": "^2.4.1", + "fbjs-css-vars": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + } + }, + "hoist-non-react-statics": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.1.0.tgz", + "integrity": "sha512-MYcYuROh7SBM69xHGqXEwQqDux34s9tz+sCnxJmN18kgWh6JFdTw/5YdZtqsOdZJXddE/wUpCzfEdDrJj8p0Iw==", + "dev": true, + "requires": { + "react-is": "^16.3.2" + } + }, + "react-apollo": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/react-apollo/-/react-apollo-2.3.1.tgz", + "integrity": "sha512-xPteQmCzMJT8wE4v0zq38E6JWLhrNcJENl66fP117lwzU2lZA+qoUDcizqKl0z2OY5b+KklmqnPPD+wcWAdy7w==", + "dev": true, + "requires": { + "fbjs": "^1.0.0", + "hoist-non-react-statics": "^3.0.0", + "invariant": "^2.2.2", + "lodash.flowright": "^3.5.0", + "lodash.isequal": "^4.5.0", + "prop-types": "^15.6.0" + } + } + } + }, "@azure/storage-blob": { "version": "10.0.0-preview", "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-10.0.0-preview.tgz", @@ -2283,12 +2270,33 @@ } }, "apollo-link-ws": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/apollo-link-ws/-/apollo-link-ws-1.0.9.tgz", - "integrity": "sha512-CtKwLE61bCJTW5jrucOMm5PubeAlCl/9i45pg4GKKlAbl0zR4i2dww8TJkYoIY6iCyj4qjKW/uqGD6v5/aVwhg==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/apollo-link-ws/-/apollo-link-ws-1.0.10.tgz", + "integrity": "sha512-1Yx4iIUsWS8wuAdVJ2LF+LdIYAsqHSto8eShwJ/d2SovocsMCwN9hyS+JkaOPD/KHAkavTWzN6l3XwSOdOwevQ==", "dev": true, "requires": { - "apollo-link": "^1.2.3" + "apollo-link": "^1.2.4" + }, + "dependencies": { + "apollo-link": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.4.tgz", + "integrity": "sha512-B1z+9H2nTyWEhMXRFSnoZ1vSuAYP+V/EdUJvRx9uZ8yuIBZMm6reyVtr1n0BWlKeSFyPieKJy2RLzmITAAQAMQ==", + "dev": true, + "requires": { + "apollo-utilities": "^1.0.0", + "zen-observable-ts": "^0.8.11" + } + }, + "zen-observable-ts": { + "version": "0.8.11", + "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.11.tgz", + "integrity": "sha512-8bs7rgGV4kz5iTb9isudkuQjtWwPnQ8lXq6/T76vrepYZVMsDEv6BXaEA+DHdJSK3KVLduagi9jSpSAJ5NgKHw==", + "dev": true, + "requires": { + "zen-observable": "^0.8.0" + } + } } }, "apollo-utilities": { @@ -3029,12 +3037,28 @@ "integrity": "sha512-9mx2Z9M4EGbutvXxoLV7aUBCY6ps3sqLFl094FeA2tFQzQffIh0XSsmwwQRxiSfpg3rnb5x/o46qRLxS/OzFTg==", "dev": true }, + "babel-plugin-syntax-flow": { + "version": "6.18.0", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", + "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=", + "dev": true + }, "babel-plugin-syntax-object-rest-spread": { "version": "6.13.0", "resolved": "http://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", "dev": true }, + "babel-plugin-transform-flow-strip-types": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", + "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", + "dev": true, + "requires": { + "babel-plugin-syntax-flow": "^6.18.0", + "babel-runtime": "^6.22.0" + } + }, "babel-plugin-transform-object-rest-spread": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", @@ -3076,6 +3100,15 @@ } } }, + "babel-preset-flow": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", + "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", + "dev": true, + "requires": { + "babel-plugin-transform-flow-strip-types": "^6.22.0" + } + }, "babel-preset-jest": { "version": "23.2.0", "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-23.2.0.tgz", @@ -6752,6 +6785,12 @@ "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", "dev": true }, + "flow-bin": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.79.1.tgz", + "integrity": "sha512-GGetgxz6q9BNqqCQ8wgAGRtyYWXltn++39C6W8HKbS1QC59USfwm3YP3X+eITp7wbkwa+LGlhGfggqeQxOY1vw==", + "dev": true + }, "flush-write-stream": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", diff --git a/client/package.json b/client/package.json index 47abb758e..5e9e19710 100644 --- a/client/package.json +++ b/client/package.json @@ -8,7 +8,11 @@ "build": "NODE_ENV=production webpack --mode production --config ./webpack.config.js", "dev_win": "webpack-dev-server --hot --port 3100 --config ./webpack.config.js", "build_win": "webpack --mode production --config ./webpack.config.js", - "lint": "prettier-standard 'src/**/*.js'" + "lint": "prettier-standard 'src/**/*.js'", + "flow-coverage": "npm run flow-coverage:build && npm run flow-coverage:open", + "flow-coverage:build": "flow-coverage-report --strict-coverage ", + "flow-coverage:open": "concurrently \"cd flow-coverage && http-server -c-1 \" \"open http://127.0.0.1:8080\"", + "flow": "flow" }, "repository": { "type": "git", @@ -22,8 +26,8 @@ "homepage": "https://github.com/Algoteers/MasterApp#readme", "devDependencies": { "@advancedalgos/events-client": "0.0.4", - "@advancedalgos/key-vault-client": "0.0.24", - "@advancedalgos/teams-client": "0.0.29", + "@advancedalgos/key-vault-client": "0.0.25", + "@advancedalgos/teams-client": "0.0.30", "@advancedalgos/users-client": "0.0.24", "@advancedalgos/web-components": "0.0.15", "@babel/core": "^7.1.2", @@ -34,6 +38,7 @@ "@babel/preset-react": "^7.0.0", "autoprefixer": "^9.2.0", "babel-loader": "^8.0.4", + "babel-preset-flow": "6.23.0", "connect-history-api-fallback": "^1.5.0", "css-loader": "^1.0.0", "debug": "^4.1.0", @@ -41,12 +46,14 @@ "eslint": "^5.7.0", "eslint-config-standard": "^12.0.0", "eslint-config-standard-react": "^7.0.2", + "eslint-plugin-flowtype": "^2.42.0", "eslint-plugin-import": "^2.14.0", "eslint-plugin-node": "^7.0.1", "eslint-plugin-promise": "^4.0.1", "eslint-plugin-react": "^7.11.1", "eslint-plugin-standard": "^4.0.0", "file-loader": "^2.0.0", + "flow-bin": "0.79.1", "html-webpack-harddisk-plugin": "^0.2.0", "html-webpack-plugin": "^3.2.0", "koa-connect": "^2.0.1", diff --git a/client/src/App.js b/client/src/App.js index 58d5f4ec7..e48005d04 100644 --- a/client/src/App.js +++ b/client/src/App.js @@ -18,13 +18,16 @@ import Users from '@advancedalgos/users-client' import Teams from '@advancedalgos/teams-client' import Events from '@advancedalgos/events-client' import KeyVault from '@advancedalgos/key-vault-client' +// import FinancialBeings from '@advancedalgos/financial-beings-client' + +import { FINANCIAL_BEINGS } from './constants/routes' export const auth = new Auth( result => console.log('Authentication successful.'), client ) -export const MasterApp = (props) => ( +export const MasterApp = props => ( @@ -43,7 +46,12 @@ export const MasterApp = (props) => ( path='/email-verification' render={props => { console.log(props.location) - return + return ( + + ) }} /> , document.getElementById('masterApp')) +ReactDOM.render( + + + , + document.getElementById('masterApp') +) diff --git a/client/src/views/charts/index.js b/client/src/views/charts/index.js index 38eec4e9e..a2969e27d 100644 --- a/client/src/views/charts/index.js +++ b/client/src/views/charts/index.js @@ -50,17 +50,24 @@ class Charts extends Component { } } -const mapStateToProps = (state) => { +const mapStateToProps = state => { return { context: state.context } } -const mapDispatchToProps = (dispatch) => { +const mapDispatchToProps = dispatch => { return { - hideFooter: () => { dispatch({ type: 'HIDE_FOOTER' }) }, - showFooter: () => { dispatch({ type: 'SHOW_FOOTER' }) } + hideFooter: () => { + dispatch({ type: 'HIDE_FOOTER' }) + }, + showFooter: () => { + dispatch({ type: 'SHOW_FOOTER' }) + } } } -export default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles)(Charts)) +export default connect( + mapStateToProps, + mapDispatchToProps +)(withStyles(styles)(Charts)) diff --git a/client/src/views/common/components/BannerTopBar.js b/client/src/views/common/components/BannerTopBar.js index 823877f72..e7d1fc719 100644 --- a/client/src/views/common/components/BannerTopBar.js +++ b/client/src/views/common/components/BannerTopBar.js @@ -2,17 +2,18 @@ import React from 'react' import PropTypes from 'prop-types' import Typography from '@material-ui/core/Typography' -const BannerTopBar = ({ - size, - backgroundUrl, - title, - text, - children -}) => ( -
+const BannerTopBar = ({ size, backgroundUrl, title, text, children }) => ( +
- {title} - {text} + + {title} + + + {text} + {children}
diff --git a/client/src/views/email-verification/components/SignupVerifyResponse.js b/client/src/views/email-verification/components/SignupVerifyResponse.js index fca6419d6..525cee3a9 100644 --- a/client/src/views/email-verification/components/SignupVerifyResponse.js +++ b/client/src/views/email-verification/components/SignupVerifyResponse.js @@ -8,7 +8,7 @@ export class SignupVerifyResponse extends React.Component { componentDidMount () { const { mutate } = this.props mutate() - }; + } render () { const { loading, error, data } = this.props @@ -17,7 +17,10 @@ export class SignupVerifyResponse extends React.Component { let displayForm = false console.log('SignupVerifyResponse:', loading, error, data) if (error) { - if (error.message === 'GraphQL error: Error: Token Expired. Please resubmit email address.') { + if ( + error.message === + 'GraphQL error: Error: Token Expired. Please resubmit email address.' + ) { BannerText = [ Newsletter Signup Error: Verification Token Expired @@ -29,7 +32,11 @@ export class SignupVerifyResponse extends React.Component { ] displayForm = true } else { - BannerText = ['Newsletter Signup Error: ',
, error.message] + BannerText = [ + 'Newsletter Signup Error: ', +
, + error.message + ] } return ( , 'Thank you for opting-in to recieve updates about the Advanced Algos project!'] + BannerText = [ + 'Processing newsletter sign-up...', +
, + 'Thank you for opting-in to recieve updates about the Advanced Algos project!' + ] } if (data !== undefined && data !== null) { console.log(data) diff --git a/client/src/views/email-verification/index.js b/client/src/views/email-verification/index.js index dd71bc7ae..3fd36d320 100644 --- a/client/src/views/email-verification/index.js +++ b/client/src/views/email-verification/index.js @@ -33,10 +33,7 @@ export const EmailSignupConfirm = ({ tokenParam }) => { } console.log(token) return ( - + {(NewsletterSignupVerify, { loading, error, data }) => { return ( { data={data} /> ) - } - } + }} ) } diff --git a/client/src/views/layout/footer/styles.js b/client/src/views/layout/footer/styles.js index 4bc6469fa..92e48d4cc 100644 --- a/client/src/views/layout/footer/styles.js +++ b/client/src/views/layout/footer/styles.js @@ -42,7 +42,7 @@ const styles = theme => ({ footer: { borderTop: `4px solid ${theme.palette.secondary.light}`, padding: `${theme.spacing.unit * 6}px 0`, - backgroundColor: '#19191C', /* #29292c */ + backgroundColor: '#19191C' /* #29292c */, color: theme.palette.primary.light }, footerContainer: { diff --git a/client/src/views/layout/header/imports.js b/client/src/views/layout/header/imports.js index 1a7436940..b85b380f1 100644 --- a/client/src/views/layout/header/imports.js +++ b/client/src/views/layout/header/imports.js @@ -13,6 +13,8 @@ import { AddCircleOutline } from '@material-ui/icons' +import { FINANCIAL_BEINGS } from '../../../constants/routes' + const usersMenus = { title: 'Users', to: '/users', @@ -62,6 +64,19 @@ const keyvaultMenus = { ] } -const allMenus = [ usersMenus, teamsMenus, eventsMenus, keyvaultMenus ] +const financialBeingsMenus = { + title: 'Financial beings', + to: FINANCIAL_BEINGS, + authenticated: false, + submenus: [] +} + +const allMenus = [ + usersMenus, + teamsMenus, + eventsMenus, + // financialBeingsMenus, + keyvaultMenus +] export default allMenus diff --git a/client/src/views/layout/index.js b/client/src/views/layout/index.js index 7b7c2fb7b..fab1f1093 100644 --- a/client/src/views/layout/index.js +++ b/client/src/views/layout/index.js @@ -11,9 +11,7 @@ class Index extends React.Component { return (
-
- {this.props.children} -
+
{this.props.children}
) diff --git a/server/.gitignore b/server/.gitignore index 0e2d8768a..58c1b2f3d 100644 --- a/server/.gitignore +++ b/server/.gitignore @@ -20,5 +20,8 @@ dist/ # Visual Studio Code .vscode -#Mac specific files +# Mac specific files .DS_Store + +# JetBrains +.idea diff --git a/server/src/index.js b/server/src/index.js index 635bce622..75ebfebc0 100644 --- a/server/src/index.js +++ b/server/src/index.js @@ -64,6 +64,11 @@ async function run () { process.env.EVENTS_API_URL, process.env.EVENTS_API_PRESHARED) logger.info('Events schema created') + const transformedFinancialBeingsSchema = await createTransformedRemoteSchema( + 'financialBeings_', + process.env.FINANCIAL_BEINGS_API_URL, + process.env.FINANCIAL_BEINGS_API_PRESHARED) + logger.info('FINANCIAL_BEINGS schema created') var schemas = [masterSchema] var resolvers = {} @@ -89,7 +94,10 @@ async function run () { if (transformedKeyVaultSchema) { schemas.push(transformedKeyVaultSchema) } - + if (transformedFinancialBeingsSchema) { + schemas.push(transformedFinancialBeingsSchema) + } + const schema = mergeSchemas({ schemas, resolvers diff --git a/server/src/resolvers/mutation/sendgrid.js b/server/src/resolvers/mutation/sendgrid.js index 8e199d7a1..40b9c1275 100644 --- a/server/src/resolvers/mutation/sendgrid.js +++ b/server/src/resolvers/mutation/sendgrid.js @@ -6,12 +6,7 @@ import logger from '../../logger' const API_KEY = process.env.SG_APIKEY const API_KEY_CONTACTS = process.env.SG_APIKEY_CONTACTS - -const dev = process.env.NODE_ENV === 'development' ? true : false -let origin = 'https://app.advancedalgos.net' -if (dev){ - origin = 'http://localhost:3100' -} +let origin = process.env.SANDGRID_ORIGN export default { async master_NewsletterSignup(parent, { email }, ctx, info) { @@ -78,10 +73,7 @@ export default { return sendVerify }, async master_NewsletterSignupVerify(parent, { token }, ctx, info){ - let origin = 'https://app.advancedalgos.net' - if (dev){ - origin = 'http://localhost:3100' - } + let origin = process.env.SANDGRID_ORIGN const headers = { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin' : origin,