Home Reference Source Test Repository

src/js/app.js

require('../scss/styles.scss');

import { Graph } from './data/graph';
import { Serializer } from './util/graph-serialize';
import ui from './ui/ui';

let graph;
let serializer;

function init() {
  graph = new Graph();
  serializer = new Serializer(graph, resetGraph);
  ui.init(graph);
  ui.toolbar.selectToolByName('node');
  ui.canvas.resize();
  window.requestAnimationFrame(draw);
}

function draw() {
  ui.canvas.clear();
  graph.draw(ui.canvas.context);
  window.requestAnimationFrame(draw);
}

function resetGraph(newGraph) {
  graph = newGraph;
  ui.resetGraph(newGraph);
  serializer.resetGraph(newGraph);
}

window.addEventListener('load', init, false);

window.addEventListener('resize', (event) => {
  if (ui.canvas) {
    ui.canvas.resize();
  }
}, false);