summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/pages/sessions/new/index.js
blob: 66ee2d9303fcaf133775dbd7076c560ff7eaf70f (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
import $ from 'jquery';
import LengthValidator from './length_validator';
import UsernameValidator from './username_validator';
import NoEmojiValidator from '../../../emoji/no_emoji_validator';
import SigninTabsMemoizer from './signin_tabs_memoizer';
import OAuthRememberMe from './oauth_remember_me';
import preserveUrlFragment from './preserve_url_fragment';
import Tracking from '~/tracking';

document.addEventListener('DOMContentLoaded', () => {
  new UsernameValidator(); // eslint-disable-line no-new
  new LengthValidator(); // eslint-disable-line no-new
  new SigninTabsMemoizer(); // eslint-disable-line no-new
  new NoEmojiValidator(); // eslint-disable-line no-new

  new OAuthRememberMe({
    container: $('.omniauth-container'),
  }).bindEvents();

  // Save the URL fragment from the current window location. This will be present if the user was
  // redirected to sign-in after attempting to access a protected URL that included a fragment.
  preserveUrlFragment(window.location.hash);
});

export default function trackData() {
  if (gon.tracking_data) {
    const tab = document.querySelector(".new-session-tabs a[href='#register-pane']");
    const { category, action, ...data } = gon.tracking_data;

    tab.addEventListener('click', () => {
      Tracking.event(category, action, data);
    });
  }
}

trackData();