Use querySelector
over alternative DOM methods (#31280)
As per https://github.com/go-gitea/gitea/pull/30115#discussion_r1626060164, prefer `querySelector` by enabling [`unicorn/prefer-query-selector`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-query-selector.md) and autofixing all except 10 issues. According to [this](https://old.reddit.com/r/learnjavascript/comments/i0f5o8/performance_of_getelementbyid_vs_queryselector/), querySelector may be faster as well, so it's a win-win. --------- Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> Co-authored-by: Giteabot <teabot@gitea.io>
This commit is contained in:
parent
a2304cb163
commit
507fbf4c3c
47 changed files with 165 additions and 168 deletions
|
@ -5,8 +5,8 @@ import {POST, DELETE, PUT} from '../modules/fetch.js';
|
|||
|
||||
function updateIssueCount(cards) {
|
||||
const parent = cards.parentElement;
|
||||
const cnt = parent.getElementsByClassName('issue-card').length;
|
||||
parent.getElementsByClassName('project-column-issue-count')[0].textContent = cnt;
|
||||
const cnt = parent.querySelectorAll('.issue-card').length;
|
||||
parent.querySelectorAll('.project-column-issue-count')[0].textContent = cnt;
|
||||
}
|
||||
|
||||
async function createNewColumn(url, columnTitle, projectColorInput) {
|
||||
|
@ -26,7 +26,7 @@ async function createNewColumn(url, columnTitle, projectColorInput) {
|
|||
}
|
||||
|
||||
async function moveIssue({item, from, to, oldIndex}) {
|
||||
const columnCards = to.getElementsByClassName('issue-card');
|
||||
const columnCards = to.querySelectorAll('.issue-card');
|
||||
updateIssueCount(from);
|
||||
updateIssueCount(to);
|
||||
|
||||
|
@ -53,7 +53,7 @@ async function initRepoProjectSortable() {
|
|||
|
||||
// the HTML layout is: #project-board > .board > .project-column .cards > .issue-card
|
||||
const mainBoard = els[0];
|
||||
let boardColumns = mainBoard.getElementsByClassName('project-column');
|
||||
let boardColumns = mainBoard.querySelectorAll('.project-column');
|
||||
createSortable(mainBoard, {
|
||||
group: 'project-column',
|
||||
draggable: '.project-column',
|
||||
|
@ -61,7 +61,7 @@ async function initRepoProjectSortable() {
|
|||
delayOnTouchOnly: true,
|
||||
delay: 500,
|
||||
onSort: async () => {
|
||||
boardColumns = mainBoard.getElementsByClassName('project-column');
|
||||
boardColumns = mainBoard.querySelectorAll('.project-column');
|
||||
|
||||
const columnSorting = {
|
||||
columns: Array.from(boardColumns, (column, i) => ({
|
||||
|
@ -81,7 +81,7 @@ async function initRepoProjectSortable() {
|
|||
});
|
||||
|
||||
for (const boardColumn of boardColumns) {
|
||||
const boardCardList = boardColumn.getElementsByClassName('cards')[0];
|
||||
const boardCardList = boardColumn.querySelectorAll('.cards')[0];
|
||||
createSortable(boardCardList, {
|
||||
group: 'shared',
|
||||
onAdd: moveIssue,
|
||||
|
@ -99,7 +99,7 @@ export function initRepoProject() {
|
|||
|
||||
const _promise = initRepoProjectSortable();
|
||||
|
||||
for (const modal of document.getElementsByClassName('edit-project-column-modal')) {
|
||||
for (const modal of document.querySelectorAll('.edit-project-column-modal')) {
|
||||
const projectHeader = modal.closest('.project-column-header');
|
||||
const projectTitleLabel = projectHeader?.querySelector('.project-column-title-label');
|
||||
const projectTitleInput = modal.querySelector('.project-column-title-input');
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue