summaryrefslogtreecommitdiff
path: root/web/src/index.js
diff options
context:
space:
mode:
authorTristan Cacqueray <tdecacqu@redhat.com>2018-08-14 05:13:15 +0000
committerTristan Cacqueray <tdecacqu@redhat.com>2018-09-27 02:14:46 +0000
commit1082faae958bffa719ab333c3f5ae9776a8b26d7 (patch)
tree73b58bd8462d6d446f5c8caabb6a5f30695765f4 /web/src/index.js
parenta74dc74ea1975388dc9f38cafe2cfb68de53811f (diff)
downloadzuul-1082faae958bffa719ab333c3f5ae9776a8b26d7.tar.gz
web: rewrite interface in react
This change rewrites the web interface using React: http://lists.zuul-ci.org/pipermail/zuul-discuss/2018-August/000528.html Depends-On: https://review.openstack.org/591964 Change-Id: Ic6c33102ac3da69ebd0b8e9c6c8b431d51f3cfd4 Co-Authored-By: Monty Taylor <mordred@inaugust.com> Co-Authored-By: James E. Blair <jeblair@redhat.com>
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()