import type {} from 'css-font-loading-module'; import React, { useContext, forwardRef, ReactNode, Ref, useEffect } from 'react'; import { Size } from '@pdfme/common'; import { RULER_HEIGHT } from '../constants'; import { FontContext } from '../contexts'; import Spinner from './Spinner'; type Props = { size: Size; scale: number; children: ReactNode }; const Root = ({ size, scale, children }: Props, ref: Ref) => { const font = useContext(FontContext); useEffect(() => { const fontFaces = Object.entries(font).map((entry) => { const [key, value] = entry; const fontFace = new FontFace(key, value.data); return fontFace.load(); }); Promise.all(fontFaces).then((loadedFontFaces) => { loadedFontFaces.forEach((loadedFontFace) => { if (document && document.fonts && document.fonts.add) { document.fonts.add(loadedFontFace); } }); }); }, [font]); return (
{scale === 0 ? : children}
); }; export default forwardRef(Root);