summaryrefslogtreecommitdiff
path: root/animism-align/frontend/site
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2020-11-13 16:37:38 +0100
committerJules Laplace <julescarbon@gmail.com>2020-11-13 16:37:38 +0100
commit335c7a32380420166c6754883b103f53e49ad692 (patch)
tree9edfe0195943611e37624f9e7a13b864db7924c9 /animism-align/frontend/site
parente9a5a0eb4b122ab83fd48f7a0f34cd56ee63bd7e (diff)
starting viewer standalone frontend
Diffstat (limited to 'animism-align/frontend/site')
-rw-r--r--animism-align/frontend/site/actions.js7
-rw-r--r--animism-align/frontend/site/index.js8
-rw-r--r--animism-align/frontend/site/site.css58
-rw-r--r--animism-align/frontend/site/site/site.actions.js31
-rw-r--r--animism-align/frontend/site/store.js16
5 files changed, 113 insertions, 7 deletions
diff --git a/animism-align/frontend/site/actions.js b/animism-align/frontend/site/actions.js
index 16297ce..f11ce13 100644
--- a/animism-align/frontend/site/actions.js
+++ b/animism-align/frontend/site/actions.js
@@ -1,7 +1,8 @@
import { bindActionCreators } from 'redux'
// import { actions as crudActions } from './api'
-// import * as siteActions from './site/site.actions'
+import * as audioActions from 'app/views/audio.actions'
+import * as viewerActions from 'app/views/viewer.actions'
import { store } from './store'
@@ -10,7 +11,9 @@ export default
// .map(a => [a, crudActions[a]])
// .concat(
[
- ['site', siteActions],
+ // ['site', siteActions],
+ ['audio', audioActions],
+ ['viewer', viewerActions],
] //)
.map(p => [p[0], bindActionCreators(p[1], store.dispatch)])
.concat([
diff --git a/animism-align/frontend/site/index.js b/animism-align/frontend/site/index.js
index 6f1a0a5..838b012 100644
--- a/animism-align/frontend/site/index.js
+++ b/animism-align/frontend/site/index.js
@@ -2,9 +2,11 @@ import React from 'react'
import ReactDOM from 'react-dom'
import { Provider } from 'react-redux'
-import App from './app'
+import './site.css'
-import { store, history } from './store'
+import { store } from './store'
+
+import Viewer from 'app/views/viewer/viewer.container'
const container = document.createElement('div')
container.classList.add('container')
@@ -12,6 +14,6 @@ document.body.appendChild(container)
ReactDOM.render(
<Provider store={store}>
- <App history={history} />
+ <Viewer />
</Provider>, container
)
diff --git a/animism-align/frontend/site/site.css b/animism-align/frontend/site/site.css
new file mode 100644
index 0000000..5a53028
--- /dev/null
+++ b/animism-align/frontend/site/site.css
@@ -0,0 +1,58 @@
+* { box-sizing: border-box; }
+html, body {
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+}
+body {
+ background: #000;
+ color: #ddd;
+ font-family: 'Roboto', sans-serif;
+ font-size: 0.875rem;
+ height: 100%;
+ width: 100%;
+}
+.gray {
+ color: #888;
+}
+
+/* layout */
+
+.container {
+ height: 100%;
+ width: 100%;
+}
+.app {
+ /*display: flex;*/
+ height: 100%;
+ width: 100%;
+}
+.app > div {
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+ width: 100%;
+}
+.app .body {
+ display: flex;
+ flex-direction: row;
+ flex-grow: 1;
+ position: relative;
+ height: 100%;
+ width: 100%;
+}
+
+.row {
+ display: flex;
+ flex-direction: row;
+ justify-content: flex-start;
+ align-items: flex-start;
+}
+.row > div {
+ margin-right: 1.5rem;
+}
+.row > div:last-child {
+ margin-right: 0;
+}
diff --git a/animism-align/frontend/site/site/site.actions.js b/animism-align/frontend/site/site/site.actions.js
new file mode 100644
index 0000000..b66a9b9
--- /dev/null
+++ b/animism-align/frontend/site/site/site.actions.js
@@ -0,0 +1,31 @@
+import * as types from 'app/types'
+import actions from 'site/actions'
+import { URLS } from 'app/constants'
+import FontFaceObserver from 'fontfaceobserver'
+
+export const loadProject = () => dispatch => {
+ Promise.all([
+ // actions.site.loadText(),
+ // actions.site.loadPeaks(),
+ actions.audio.load(),
+ // actions.annotation.index(),
+ // actions.paragraph.index(),
+ // actions.media.index(),
+ // actions.episode.index(),
+ // actions.venue.index(),
+ loadFonts(),
+ ]).then(() => {
+ actions.viewer.loadSections()
+ }).catch(err => {
+ console.error(err)
+ })
+}
+
+const loadFonts = () => {
+ const fonts = [
+ new FontFaceObserver('Freight Text'),
+ new FontFaceObserver('Freight Text', { style: 'italic' }),
+ new FontFaceObserver('Neue Haas Unica'),
+ ]
+ return Promise.all(fonts.map(font => font.load()))
+}
diff --git a/animism-align/frontend/site/store.js b/animism-align/frontend/site/store.js
index a687a69..87a9a1f 100644
--- a/animism-align/frontend/site/store.js
+++ b/animism-align/frontend/site/store.js
@@ -1,3 +1,6 @@
+import * as types from 'app/types'
+import { crudState, crudReducer } from 'app/api/crud.reducer'
+
import { applyMiddleware, compose, combineReducers, createStore } from 'redux'
import { connectRouter, routerMiddleware } from 'connected-react-router'
import { createBrowserHistory } from 'history'
@@ -6,10 +9,19 @@ import thunk from 'redux-thunk'
// import siteReducer from './site/site.reducer'
const createRootReducer = history => (
- combineReducers({
+ combineReducers([
+ "media",
+ "upload",
+ "annotation",
+ "paragraph",
+ "episode",
+ "venue",
+ ].reduce((a, type) => {
+ a[type] = crudReducer(type)
+ return a
+ }, {
auth: (state = {}) => state,
router: connectRouter(history),
- // site: siteReducer,
})
)