summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/behaviors/index.js
blob: 613309a1c5aa9005f5562ec5bc5f03c4e43f04e5 (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
36
37
38
39
40
41
42
43
44
import $ from 'jquery';
import './autosize';
import './bind_in_out';
import './markdown/render_gfm';
import initCopyAsGFM from './markdown/copy_as_gfm';
import initCopyToClipboard from './copy_to_clipboard';
import './details_behavior';
import installGlEmojiElement from './gl_emoji';
import './quick_submit';
import './requires_input';
import initPageShortcuts from './shortcuts';
import './toggler_behavior';
import './preview_markdown';
import initCollapseSidebarOnWindowResize from './collapse_sidebar_on_window_resize';
import initSelect2Dropdowns from './select2';
import { loadStartupCSS } from './load_startup_css';

loadStartupCSS();

installGlEmojiElement();

initCopyAsGFM();
initCopyToClipboard();

initPageShortcuts();
initCollapseSidebarOnWindowResize();
initSelect2Dropdowns();

document.addEventListener('DOMContentLoaded', () => {
  window.requestIdleCallback(
    () => {
      // Check if we have to Load GFM Input
      const $gfmInputs = $('.js-gfm-input:not(.js-gfm-input-initialized)');
      if ($gfmInputs.length) {
        import(/* webpackChunkName: 'initGFMInput' */ './markdown/gfm_auto_complete')
          .then(({ default: initGFMInput }) => {
            initGFMInput($gfmInputs);
          })
          .catch(() => {});
      }
    },
    { timeout: 500 },
  );
});