diff options
author | Tristan Cacqueray <tdecacqu@redhat.com> | 2018-08-14 05:13:15 +0000 |
---|---|---|
committer | Tristan Cacqueray <tdecacqu@redhat.com> | 2018-09-27 02:14:46 +0000 |
commit | 1082faae958bffa719ab333c3f5ae9776a8b26d7 (patch) | |
tree | 73b58bd8462d6d446f5c8caabb6a5f30695765f4 /web/src/index.js | |
parent | a74dc74ea1975388dc9f38cafe2cfb68de53811f (diff) | |
download | zuul-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.js | 40 |
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() |