import * as types from 'app/types' import { api } from 'app/utils' import actions from 'app/actions' import { URLS } from 'app/constants' 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.site.loadText(episode), actions.site.loadPeaks(episode), actions.audio.load(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())) } export const loadPeaks = (asdf) => dispatch => ( api(dispatch, types.peaks, 'peaks', URLS.peaks) ) // export const loadText = (asdf) => dispatch => ( // api(dispatch, types.text, 'text', URLS.text) // ) export const updateText = text => dispatch => ( dispatch({ type: types.text.loaded, data: text }) )