import $ from 'jquery'; import { createAlert } from '~/alert'; import NewCommitForm from '../new_commit_form'; export default () => { const editBlobForm = $('.js-edit-blob-form'); if (editBlobForm.length) { const urlRoot = editBlobForm.data('relativeUrlRoot'); const assetsPath = editBlobForm.data('assetsPrefix'); const filePath = editBlobForm.data('blobFilename') && `${editBlobForm.data('blobFilename')}`; const currentAction = $('.js-file-title').data('currentAction'); const projectId = editBlobForm.data('project-id'); const projectPath = editBlobForm.data('project-path'); const isMarkdown = editBlobForm.data('is-markdown'); const previewMarkdownPath = editBlobForm.data('previewMarkdownPath'); const commitButton = $('.js-commit-button'); const commitButtonLoading = $('.js-commit-button-loading'); const cancelLink = $('#cancel-changes'); import('./edit_blob') .then(({ default: EditBlob } = {}) => { // eslint-disable-next-line no-new new EditBlob({ assetsPath: `${urlRoot}${assetsPath}`, filePath, currentAction, projectId, projectPath, isMarkdown, previewMarkdownPath, }); }) .catch((e) => createAlert({ message: e.message, }), ); cancelLink.on('click', () => { window.onbeforeunload = null; }); commitButton.on('click', () => { commitButton.addClass('gl-display-none'); commitButtonLoading.removeClass('gl-display-none'); window.onbeforeunload = null; }); new NewCommitForm(editBlobForm); // eslint-disable-line no-new // returning here blocks page navigation window.onbeforeunload = () => ''; } };