From 75fc8ac74071b0510b39beeb4765be3e37cca8b5 Mon Sep 17 00:00:00 2001 From: wuxh Date: Wed, 13 Mar 2024 18:47:10 +0800 Subject: [PATCH] fix: improve code group explicit/implicit logic --- src/client/app/composables/codeGroups.ts | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/client/app/composables/codeGroups.ts b/src/client/app/composables/codeGroups.ts index d8a38ba7..a380eea3 100644 --- a/src/client/app/composables/codeGroups.ts +++ b/src/client/app/composables/codeGroups.ts @@ -7,7 +7,7 @@ export function useCodeGroups() { Array.from(el.children).forEach((child) => { child.classList.remove('active') }) - el.children[0].classList.add('active') + el.querySelector('div[class^="language"]')?.classList.add('active') }) }) } @@ -24,19 +24,21 @@ export function useCodeGroups() { const i = Array.from(group.querySelectorAll('input')).indexOf(el) if (i < 0) return - const blocks = group.querySelector('.blocks') - if (!blocks) return + const codeBlocks = group.querySelectorAll( + '.blocks > div[class^="language"]' + ) + if (!codeBlocks) return - const current = Array.from(blocks.children).find((child) => - child.classList.contains('active') + const activeBlock = Array.from(codeBlocks).find((block) => + block.classList.contains('active') ) - if (!current) return + if (!activeBlock) return - const next = blocks.children[i] - if (!next || current === next) return + const nextBlock = codeBlocks[i] + if (!nextBlock || activeBlock === nextBlock) return - current.classList.remove('active') - next.classList.add('active') + activeBlock.classList.remove('active') + nextBlock.classList.add('active') const label = group?.querySelector(`label[for="${el.id}"]`) label?.scrollIntoView({ block: 'nearest' })