summaryrefslogtreecommitdiff
path: root/web/src/index.js
diff options
context:
space:
mode:
authorTristan Cacqueray <tdecacqu@redhat.com>2018-10-03 07:05:06 +0000
committerMonty Taylor <mordred@inaugust.com>2018-10-06 10:42:31 -0500
commit68d11898715970f47c4d86c261dc64232a841c85 (patch)
tree974b0e60a21d8262b67c0310777d14ee48c056f5 /web/src/index.js
parent6f0f36aab00104321d548554f74e969064b1fe34 (diff)
downloadzuul-68d11898715970f47c4d86c261dc64232a841c85.tar.gz
Revert "Revert "web: rewrite interface in react""
This reverts commit 3dba813c643ec8f4b3323c2a09c6aecf8ad4d338. Change-Id: I233797a9b4e3485491c49675da2c2efbdba59449
Diffstat (limited to 'web/src/index.js')
-rw-r--r--web/src/index.js40
1 files changed, 40 insertions, 0 deletions
diff --git a/web/src/index.js b/web/src/index.js
new file mode 100644
index 000000000..fb42857b4
--- /dev/null
+++ b/web/src/index.js
@@ -0,0 +1,40 @@
+// Copyright 2018 Red Hat, Inc
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may
+// not use this file except in compliance with the License. You may obtain
+// a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations
+// under the License.
+
+// The index is the main of the project. The App is wrapped with
+// a Provider to share the redux store and a Router to manage the location.
+
+import React from 'react'
+import ReactDOM from 'react-dom'
+import { BrowserRouter as Router } from 'react-router-dom'
+import { Provider } from 'react-redux'
+import 'patternfly/dist/css/patternfly.min.css'
+import 'patternfly/dist/css/patternfly-additions.min.css'
+import './index.css'
+
+import { getHomepageUrl } from './api'
+import registerServiceWorker from './registerServiceWorker'
+import { createZuulStore, fetchInfoAction } from './reducers'
+import App from './App'
+
+// This calls the /api/info endpoint asynchronously, the App is connected
+// with redux and it will update the info prop when fetch succeed.
+const store = createZuulStore()
+store.dispatch(fetchInfoAction())
+
+ReactDOM.render(
+ <Provider store={store}>
+ <Router basename={new URL(getHomepageUrl()).pathname}><App /></Router>
+ </Provider>, document.getElementById('root'))
+registerServiceWorker()