mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-04 06:24:11 +01:00 
			
		
		
		
	SFCs shouldn't export anything besides their component, and this eliminates one issue with tsc, while apparently also solving a hack. It seems to work as before, also when multiples are on the same page.
		
			
				
	
	
		
			130 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			130 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import $ from 'jquery';
 | 
						|
import {
 | 
						|
  initRepoCommentFormAndSidebar,
 | 
						|
  initRepoIssueBranchSelect, initRepoIssueCodeCommentCancel, initRepoIssueCommentDelete,
 | 
						|
  initRepoIssueComments, initRepoIssueDependencyDelete, initRepoIssueReferenceIssue,
 | 
						|
  initRepoIssueTitleEdit, initRepoIssueWipToggle,
 | 
						|
  initRepoPullRequestUpdate,
 | 
						|
} from './repo-issue.ts';
 | 
						|
import {initUnicodeEscapeButton} from './repo-unicode-escape.ts';
 | 
						|
import {initRepoCloneButtons} from './repo-common.ts';
 | 
						|
import {initCitationFileCopyContent} from './citation.ts';
 | 
						|
import {initCompLabelEdit} from './comp/LabelEdit.ts';
 | 
						|
import {initRepoDiffConversationNav} from './repo-diff.ts';
 | 
						|
import {initCompReactionSelector} from './comp/ReactionSelector.ts';
 | 
						|
import {initRepoSettings} from './repo-settings.ts';
 | 
						|
import {initRepoPullRequestMergeForm} from './repo-issue-pr-form.ts';
 | 
						|
import {initRepoPullRequestCommitStatus} from './repo-issue-pr-status.ts';
 | 
						|
import {hideElem, queryElemChildren, showElem} from '../utils/dom.ts';
 | 
						|
import {initRepoIssueCommentEdit} from './repo-issue-edit.ts';
 | 
						|
import {initRepoMilestone} from './repo-milestone.ts';
 | 
						|
import {initRepoNew} from './repo-new.ts';
 | 
						|
import {createApp} from 'vue';
 | 
						|
import RepoBranchTagSelector from '../components/RepoBranchTagSelector.vue';
 | 
						|
 | 
						|
function initRepoBranchTagSelector(selector: string) {
 | 
						|
  for (const elRoot of document.querySelectorAll(selector)) {
 | 
						|
    createApp(RepoBranchTagSelector, {elRoot}).mount(elRoot);
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
export function initBranchSelectorTabs() {
 | 
						|
  const elSelectBranch = document.querySelector('.ui.dropdown.select-branch');
 | 
						|
  if (!elSelectBranch) return;
 | 
						|
 | 
						|
  $(elSelectBranch).find('.reference.column').on('click', function () {
 | 
						|
    hideElem($(elSelectBranch).find('.scrolling.reference-list-menu'));
 | 
						|
    showElem(this.getAttribute('data-target'));
 | 
						|
    queryElemChildren(this.parentNode, '.branch-tag-item', (el) => el.classList.remove('active'));
 | 
						|
    this.classList.add('active');
 | 
						|
    return false;
 | 
						|
  });
 | 
						|
}
 | 
						|
 | 
						|
function initRepoCommonBranchOrTagDropdown(selector: string) {
 | 
						|
  $(selector).each(function () {
 | 
						|
    const $dropdown = $(this);
 | 
						|
    $dropdown.find('.reference.column').on('click', function () {
 | 
						|
      hideElem($dropdown.find('.scrolling.reference-list-menu'));
 | 
						|
      showElem($($(this).data('target')));
 | 
						|
      return false;
 | 
						|
    });
 | 
						|
  });
 | 
						|
}
 | 
						|
 | 
						|
function initRepoCommonFilterSearchDropdown(selector: string) {
 | 
						|
  const $dropdown = $(selector);
 | 
						|
  if (!$dropdown.length) return;
 | 
						|
 | 
						|
  $dropdown.dropdown({
 | 
						|
    fullTextSearch: 'exact',
 | 
						|
    selectOnKeydown: false,
 | 
						|
    onChange(_text, _value, $choice) {
 | 
						|
      if ($choice[0].getAttribute('data-url')) {
 | 
						|
        window.location.href = $choice[0].getAttribute('data-url');
 | 
						|
      }
 | 
						|
    },
 | 
						|
    message: {noResults: $dropdown[0].getAttribute('data-no-results')},
 | 
						|
  });
 | 
						|
}
 | 
						|
 | 
						|
export function initRepository() {
 | 
						|
  if (!$('.page-content.repository').length) return;
 | 
						|
 | 
						|
  initRepoBranchTagSelector('.js-branch-tag-selector');
 | 
						|
  initRepoCommentFormAndSidebar();
 | 
						|
 | 
						|
  // Labels
 | 
						|
  initCompLabelEdit('.page-content.repository.labels');
 | 
						|
  initRepoMilestone();
 | 
						|
  initRepoNew();
 | 
						|
 | 
						|
  // Compare or pull request
 | 
						|
  const $repoDiff = $('.repository.diff');
 | 
						|
  if ($repoDiff.length) {
 | 
						|
    initRepoCommonBranchOrTagDropdown('.choose.branch .dropdown');
 | 
						|
    initRepoCommonFilterSearchDropdown('.choose.branch .dropdown');
 | 
						|
  }
 | 
						|
 | 
						|
  initRepoCloneButtons();
 | 
						|
  initCitationFileCopyContent();
 | 
						|
  initRepoSettings();
 | 
						|
 | 
						|
  // Issues
 | 
						|
  if ($('.repository.view.issue').length > 0) {
 | 
						|
    initRepoIssueCommentEdit();
 | 
						|
 | 
						|
    initRepoIssueBranchSelect();
 | 
						|
    initRepoIssueTitleEdit();
 | 
						|
    initRepoIssueWipToggle();
 | 
						|
    initRepoIssueComments();
 | 
						|
 | 
						|
    initRepoDiffConversationNav();
 | 
						|
    initRepoIssueReferenceIssue();
 | 
						|
 | 
						|
    initRepoIssueCommentDelete();
 | 
						|
    initRepoIssueDependencyDelete();
 | 
						|
    initRepoIssueCodeCommentCancel();
 | 
						|
    initRepoPullRequestUpdate();
 | 
						|
    initCompReactionSelector();
 | 
						|
 | 
						|
    initRepoPullRequestMergeForm();
 | 
						|
    initRepoPullRequestCommitStatus();
 | 
						|
  }
 | 
						|
 | 
						|
  // Pull request
 | 
						|
  const $repoComparePull = $('.repository.compare.pull');
 | 
						|
  if ($repoComparePull.length > 0) {
 | 
						|
    // show pull request form
 | 
						|
    $repoComparePull.find('button.show-form').on('click', function (e) {
 | 
						|
      e.preventDefault();
 | 
						|
      hideElem($(this).parent());
 | 
						|
 | 
						|
      const $form = $repoComparePull.find('.pullrequest-form');
 | 
						|
      showElem($form);
 | 
						|
    });
 | 
						|
  }
 | 
						|
 | 
						|
  initUnicodeEscapeButton();
 | 
						|
}
 |