summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/shortcuts_blob.js
blob: bfe90aef71e3738f591a91f829b1db069c999884 (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
/* global Mousetrap */
/* global Shortcuts */

require('./shortcuts');

const defaults = {
  skipResetBindings: false,
  fileBlobPermalinkUrl: null,
};

class ShortcutsBlob extends Shortcuts {
  constructor(opts) {
    const options = Object.assign({}, defaults, opts);
    super(options.skipResetBindings);
    this.options = options;

    Mousetrap.bind('y', this.moveToFilePermalink.bind(this));
  }

  moveToFilePermalink() {
    if (this.options.fileBlobPermalinkUrl) {
      const hash = gl.utils.getLocationHash();
      const hashUrlString = hash ? `#${hash}` : '';
      gl.utils.visitUrl(`${this.options.fileBlobPermalinkUrl}${hashUrlString}`);
    }
  }
}

module.exports = ShortcutsBlob;