diff options
Diffstat (limited to 'opendc-web/opendc-web-ui/src')
| -rw-r--r-- | opendc-web/opendc-web-ui/src/api/routes/token-signin.js | 4 | ||||
| -rw-r--r-- | opendc-web/opendc-web-ui/src/api/socket.js | 4 | ||||
| -rw-r--r-- | opendc-web/opendc-web-ui/src/config.js | 40 | ||||
| -rw-r--r-- | opendc-web/opendc-web-ui/src/containers/auth/Login.js | 5 | ||||
| -rw-r--r-- | opendc-web/opendc-web-ui/src/index.js | 5 |
5 files changed, 52 insertions, 6 deletions
diff --git a/opendc-web/opendc-web-ui/src/api/routes/token-signin.js b/opendc-web/opendc-web-ui/src/api/routes/token-signin.js index e40127f2..ced5d2e0 100644 --- a/opendc-web/opendc-web-ui/src/api/routes/token-signin.js +++ b/opendc-web/opendc-web-ui/src/api/routes/token-signin.js @@ -1,5 +1,7 @@ +import config from '../../config' + export function performTokenSignIn(token) { - const apiUrl = window.$$env['API_BASE_URL'] || '' + const apiUrl = config['API_BASE_URL'] return fetch(`${apiUrl}/tokensignin`, { method: 'POST', diff --git a/opendc-web/opendc-web-ui/src/api/socket.js b/opendc-web/opendc-web-ui/src/api/socket.js index 884c4152..87facda8 100644 --- a/opendc-web/opendc-web-ui/src/api/socket.js +++ b/opendc-web/opendc-web-ui/src/api/socket.js @@ -1,5 +1,6 @@ import io from 'socket.io-client' import { getAuthToken } from '../auth/index' +import config from '../config' let socket let requestIdCounter = 0 @@ -7,8 +8,7 @@ const callbacks = {} export function setupSocketConnection(onConnect) { const apiUrl = - window.$$env['API_BASE_URL'] || - `${window.location.protocol}//${window.location.hostname}:${window.location.port}` + config['API_BASE_URL'] || `${window.location.protocol}//${window.location.hostname}:${window.location.port}` socket = io.connect(apiUrl) socket.on('connect', onConnect) diff --git a/opendc-web/opendc-web-ui/src/config.js b/opendc-web/opendc-web-ui/src/config.js new file mode 100644 index 00000000..13f4abf2 --- /dev/null +++ b/opendc-web/opendc-web-ui/src/config.js @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +function getConfig(name) { + if (process.env.NODE_ENV === 'production' && window.config_overrides) { + const value = window.config_overrides[name] + if (value !== `$${name}`) { + return value + } + } + + return process.env[name] +} + +const config = { + API_BASE_URL: getConfig('REACT_APP_API_BASE_URL'), + OAUTH_CLIENT_ID: getConfig('REACT_APP_OAUTH_CLIENT_ID'), + SENTRY_DSN: getConfig('REACT_APP_SENTRY_DSN'), +} + +export default config diff --git a/opendc-web/opendc-web-ui/src/containers/auth/Login.js b/opendc-web/opendc-web-ui/src/containers/auth/Login.js index 9201c09a..bebe015c 100644 --- a/opendc-web/opendc-web-ui/src/containers/auth/Login.js +++ b/opendc-web/opendc-web-ui/src/containers/auth/Login.js @@ -3,6 +3,7 @@ import React from 'react' import GoogleLogin from 'react-google-login' import { connect } from 'react-redux' import { logIn } from '../../actions/auth' +import config from '../../config' class LoginContainer extends React.Component { static propTypes = { @@ -32,12 +33,12 @@ class LoginContainer extends React.Component { return ( <GoogleLogin - clientId={window.$$env['OAUTH_CLIENT_ID']} + clientId={config['OAUTH_CLIENT_ID']} onSuccess={this.onAuthResponse.bind(this)} onFailure={this.onAuthFailure.bind(this)} render={(renderProps) => ( <span onClick={renderProps.onClick} className="login btn btn-primary"> - <span className="fa fa-google"/> Login with Google + <span className="fa fa-google" /> Login with Google </span> )} /> diff --git a/opendc-web/opendc-web-ui/src/index.js b/opendc-web/opendc-web-ui/src/index.js index bddf0b0e..7f60098d 100644 --- a/opendc-web/opendc-web-ui/src/index.js +++ b/opendc-web/opendc-web-ui/src/index.js @@ -6,13 +6,16 @@ import { Provider } from 'react-redux' import { setupSocketConnection } from './api/socket' import './index.sass' import Routes from './routes' +import config from './config' import configureStore from './store/configure-store' setupSocketConnection(() => { const store = configureStore() + console.log('test', config) + // Initialize Sentry if the user has configured a DSN - const dsn = window.$$env['SENTRY_DSN'] + const dsn = config['SENTRY_DSN'] if (dsn) { Sentry.init({ environment: process.env.NODE_ENV, |
