File size: 1,098 Bytes
1b72d7e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import { isBrowser } from '@/lib/utils';
import { useEffect } from 'react';

const useAdjustStyle = () => {
    /**
     * 避免 callout 含有图片时溢出撑开父容器
     */
    const adjustCalloutImg = () => {
        const callOuts = document.querySelectorAll('.notion-callout-text');
        callOuts.forEach((callout) => {
            const images = callout.querySelectorAll('figure.notion-asset-wrapper.notion-asset-wrapper-image > div');
            const calloutWidth = callout.offsetWidth;
            images.forEach((container) => {
                const imageWidth = container.offsetWidth;
                if (imageWidth + 50 > calloutWidth) {
                    container.style.setProperty('width', '100%');
                }
            });
        });
    };

    useEffect(() => {
        if (isBrowser) {
            adjustCalloutImg();
            window.addEventListener('resize', adjustCalloutImg);
            return () => {
                window.removeEventListener('resize', adjustCalloutImg);
            };
        }
    }, []);
};

export default useAdjustStyle;