import * as types from 'app/types' import actions from 'app/actions' import FontFaceObserver from 'fontfaceobserver' export const loadSite = () => dispatch => { Promise.all([ loadFonts(), actions.project.index(), actions.episode.index(), actions.venue.index(), ]).then(() => { // console.log('Site ready') }).catch(err => { console.error(err) }) } export const loadEpisode = (project, episode) => dispatch => { const { id: episode_id } = episode dispatch({ type: types.editor.loading }) return Promise.all([ actions.align.loadPeaks(episode), actions.audio.loadEpisodeAudio(episode), actions.annotation.index({ episode_id }), actions.paragraph.index({ episode_id }), actions.media.index({ episode_id }), ]).then((results) => { actions.viewer.loadSections() dispatch({ type: types.editor.loaded, project, episode }) console.log('Episode loaded') return results }).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())) }