16 lines
473 B
TypeScript
16 lines
473 B
TypeScript
import { useEventListener } from '@vueuse/core'
|
|
|
|
export function useCollapsedLines({
|
|
selector = 'div[class*="language-"] > .collapsed-lines',
|
|
}: { selector?: string } = {}): void {
|
|
useEventListener('click', (e) => {
|
|
const el = e.target as HTMLElement
|
|
if (el.matches(selector)) {
|
|
const parent = el.parentElement
|
|
if (parent?.classList.toggle('collapsed')) {
|
|
parent.scrollIntoView({ block: 'center', behavior: 'instant' })
|
|
}
|
|
}
|
|
})
|
|
}
|