aboutsummaryrefslogtreecommitdiff
path: root/js/app.js
blob: 63990dc1bbca0e80e7cabea851b2f39b35503a34 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
'use strict';

// Sets up the application

((window) => {

  const internals = {};

  internals.onLoad = () => {

    const mainElement = window.document.getElementById('heart-app-entry-point');
    const heartRenderer = new HeartRenderer();

    heartRenderer.render(mainElement);
    heartRenderer.activate();

    window.addEventListener('resize', heartRenderer.resize.bind(heartRenderer));
    window.addEventListener('blur', heartRenderer.stopFollowingMouse.bind(heartRenderer));
    window.addEventListener('focus', heartRenderer.startFollowingMouse.bind(heartRenderer));

    /**
     * Exported global object. This will contain the instance of the heart
     * renderer being used. It is set up on load.
     *
     * @name App
     * @type Object
     * @property {HeartRenderer} heartRenderer The instance of the heart renderer being used.
     */
    window.App = {
      heartRenderer
    };
  };

  window.addEventListener('load', internals.onLoad);
})(window);