summaryrefslogtreecommitdiff
path: root/opendc-web/opendc-web-ui/src
diff options
context:
space:
mode:
Diffstat (limited to 'opendc-web/opendc-web-ui/src')
-rw-r--r--opendc-web/opendc-web-ui/src/api/routes/token-signin.js4
-rw-r--r--opendc-web/opendc-web-ui/src/api/socket.js4
-rw-r--r--opendc-web/opendc-web-ui/src/config.js40
-rw-r--r--opendc-web/opendc-web-ui/src/containers/auth/Login.js5
-rw-r--r--opendc-web/opendc-web-ui/src/index.js5
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,