diff --git a/app/javascript/flavours/glitch/entrypoints/admin.tsx b/app/javascript/flavours/glitch/entrypoints/admin.tsx index 92f97a72db..fc6f27c6d4 100644 --- a/app/javascript/flavours/glitch/entrypoints/admin.tsx +++ b/app/javascript/flavours/glitch/entrypoints/admin.tsx @@ -69,8 +69,9 @@ on('change', '#batch_checkbox_all', ({ target }) => { '.batch-table__select-all', ); - document - .querySelectorAll(batchCheckboxClassName) + target + .closest('.batch-table') + ?.querySelectorAll(batchCheckboxClassName) .forEach((content) => { content.checked = target.checked; }); @@ -112,17 +113,20 @@ on('click', '.batch-table__select-all button', () => { } }); -on('change', batchCheckboxClassName, () => { - const checkAllElement = document.querySelector( +on('change', batchCheckboxClassName, (event) => { + const targetTable = (event.target as HTMLElement).closest('.batch-table'); + if (!targetTable) return; + + const checkAllElement = targetTable.querySelector( 'input#batch_checkbox_all', ); - const selectAllMatchingElement = document.querySelector( + const selectAllMatchingElement = targetTable.querySelector( '.batch-table__select-all', ); if (checkAllElement) { const allCheckboxes = Array.from( - document.querySelectorAll(batchCheckboxClassName), + targetTable.querySelectorAll(batchCheckboxClassName), ); checkAllElement.checked = allCheckboxes.every((content) => content.checked); checkAllElement.indeterminate =