swiper and clean
This commit is contained in:
36
src/hooks/useBackgroundAttrs.js
Normal file
36
src/hooks/useBackgroundAttrs.js
Normal file
@@ -0,0 +1,36 @@
|
||||
import { useEffect } from 'react'
|
||||
import { useLocation } from 'react-router-dom'
|
||||
|
||||
export default function useBackgroundAttrs(containerRef) {
|
||||
const { pathname } = useLocation()
|
||||
useEffect(() => {
|
||||
const el = containerRef.current
|
||||
if (!el) return
|
||||
|
||||
// data-bg-src → background-image
|
||||
el.querySelectorAll('[data-bg-src]').forEach(el => {
|
||||
el.style.backgroundImage = 'url(' + el.dataset.bgSrc + ')'
|
||||
el.removeAttribute('data-bg-src')
|
||||
el.classList.add('background-image')
|
||||
})
|
||||
|
||||
// data-bg-color → background-color
|
||||
el.querySelectorAll('[data-bg-color]').forEach(el => {
|
||||
el.style.backgroundColor = el.dataset.bgColor
|
||||
el.removeAttribute('data-bg-color')
|
||||
})
|
||||
|
||||
// data-border → CSS var
|
||||
el.querySelectorAll('[data-border]').forEach(el => {
|
||||
el.style.setProperty('--th-border-color', el.dataset.border)
|
||||
})
|
||||
|
||||
// data-mask-src → mask-image
|
||||
el.querySelectorAll('[data-mask-src]').forEach(el => {
|
||||
el.style.maskImage = 'url(' + el.dataset.maskSrc + ')'
|
||||
el.style.webkitMaskImage = 'url(' + el.dataset.maskSrc + ')'
|
||||
el.classList.add('bg-mask')
|
||||
el.removeAttribute('data-mask-src')
|
||||
})
|
||||
}, [containerRef, pathname])
|
||||
}
|
||||
Reference in New Issue
Block a user