import Mirador from 'mirador/dist/es/src/index';
import LocalCatalog from './catalog.js';
import * as actions from 'mirador/dist/es/src/state/actions';
import annotationPlugins from 'mirador-annotations/es/index';
import LocalStorageAdapter from 'mirador-annotations/es/LocalStorageAdapter';
import AnnototAdapter from 'mirador-annotations/es/AnnototAdapter';

const endpointUrl = `${process.env.ANNOTOT_PROTO}://${process.env.ANNOTOT_HOST}:${process.env.ANNOTOT_PORT}/annotations`;
const config = {
  annotation: {
    adapter: (canvasId) => new AnnototAdapter(canvasId, endpointUrl),
    exportLocalStorageAnnotations: false, // display annotation JSON export button
  },
  id: 'demo',
  window: {
    defaultSideBarPanel: 'annotations',
    sideBarOpenByDefault: true,
  },
  windows: [
      { manifestId: 'https://iiif.tetras-libre.fr/data/coeso-deliverable/Manual_Network_Configuration.json' },
      { manifestId: 'https://iiif.tetras-libre.fr/data/coeso-deliverable/Automatic_Network_Configuration.json' },
      { manifestId: 'https://iiif.tetras-libre.fr/data/coeso-deliverable/lower/a0d6bd43-6161-4c08-9475-76fb67a1aa69.json' }],
  catalog: [
    { manifestId: 'https://iiif.tetras-libre.fr/data/coeso-deliverable/Manual_Network_Configuration.json' },
    { manifestId: 'https://iiif.tetras-libre.fr/data/coeso-deliverable/Automatic_Network_Configuration.json' },
    { manifestId: 'https://iiif.tetras-libre.fr/data/coeso-deliverable/lower/a0d6bd43-6161-4c08-9475-76fb67a1aa69.json' }
  ]
};

let viewer = Mirador.viewer(config, [...annotationPlugins]);
var store = viewer.store;
console.info('store: ', store);

LocalCatalog.get_initial_catalog()
  .then(catalog => {
    console.debug('loading local catalog: ', catalog);

    catalog.forEach(manifest =>
      // setTimeout avoid UI freeze
      setTimeout(() => store.dispatch(actions.addResource(manifest)), 0)
    );
  })