diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2020-11-13 16:37:38 +0100 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2020-11-13 16:37:38 +0100 |
| commit | 335c7a32380420166c6754883b103f53e49ad692 (patch) | |
| tree | 9edfe0195943611e37624f9e7a13b864db7924c9 /animism-align/frontend/site | |
| parent | e9a5a0eb4b122ab83fd48f7a0f34cd56ee63bd7e (diff) | |
starting viewer standalone frontend
Diffstat (limited to 'animism-align/frontend/site')
| -rw-r--r-- | animism-align/frontend/site/actions.js | 7 | ||||
| -rw-r--r-- | animism-align/frontend/site/index.js | 8 | ||||
| -rw-r--r-- | animism-align/frontend/site/site.css | 58 | ||||
| -rw-r--r-- | animism-align/frontend/site/site/site.actions.js | 31 | ||||
| -rw-r--r-- | animism-align/frontend/site/store.js | 16 |
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, }) ) |
