summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/namespaces/leave_by_url.js
blob: e00c2abfbef6d5bd40403bb3fbe5d15f44e388bf (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
import createFlash from '~/flash';
import { initRails } from '~/lib/utils/rails_ujs';
import { getParameterByName } from '~/lib/utils/url_utility';
import { __, sprintf } from '~/locale';

const PARAMETER_NAME = 'leave';
const LEAVE_LINK_SELECTOR = '.js-leave-link';

export default function leaveByUrl(namespaceType) {
  if (!namespaceType) throw new Error('namespaceType not provided');

  const param = getParameterByName(PARAMETER_NAME);
  if (!param) return;

  initRails();

  const leaveLink = document.querySelector(LEAVE_LINK_SELECTOR);
  if (leaveLink) {
    leaveLink.click();
  } else {
    createFlash({
      message: sprintf(__('You do not have permission to leave this %{namespaceType}.'), {
        namespaceType,
      }),
    });
  }
}