fix(pdf): dynamic mark scaling #165

Merged
enes merged 9 commits from 146-pdf-scaling into staging 2024-08-28 11:23:34 +00:00
Showing only changes of commit a442e71087 - Show all commits

View File

@ -6,10 +6,26 @@ const noScaleInit = {
from: (_: number, v: number) => v
}
const getInnerContentWidth = () => {
// Fetch the first container element we find
const element = document.querySelector('#content-preview')
if (element) {
const style = getComputedStyle(element)
// Calculate width without padding
const widthWithoutPadding =
element.clientWidth - parseFloat(style.padding) * 2
return widthWithoutPadding
}
// Default value
return 620
}
const useScaleImpl = () => {
const [width, setWidth] = useState(
document.querySelector('#content-preview > *')?.clientWidth || 1
)
const [width, setWidth] = useState(getInnerContentWidth())
// Get the scale based on the original width
const scale = (originalWidth: number) => {
@ -26,16 +42,11 @@ const useScaleImpl = () => {
return value * scale(originalWidth)
}
useEffect(() => {
const resize = () => {
// Fetch the first container element we find
const element = document.querySelector('#content-preview > *')
const resize = () => {
setWidth(getInnerContentWidth())
}
// Set the width state
if (element) {
setWidth(element.clientWidth)
}
}
useEffect(() => {
resize()
window.addEventListener('resize', resize)