import { useLayoutEffect, useState } from 'react'; import { Skeleton } from '@/components/ui/skeleton'; import { LAYOUT_CONSTANTS, calculateOptimalMaxWidth, calculateResponsiveWidth, calculateResponsiveScale } from '@/modules/editor/utils/layout-constants'; // Hook for responsive dimensions (same as Editor) const useResponsiveDimensions = () => { const [dimensions, setDimensions] = useState(() => ({ maxWidth: calculateOptimalMaxWidth(), responsiveWidth: calculateResponsiveWidth(), })); useLayoutEffect(() => { const newMaxWidth = calculateOptimalMaxWidth(); const newResponsiveWidth = calculateResponsiveWidth(); setDimensions({ maxWidth: newMaxWidth, responsiveWidth: newResponsiveWidth, }); }, []); return dimensions; }; // Hook for responsive canvas scale (same as EditorCanvas) const useResponsiveCanvas = (maxWidth = 350) => { const [scale, setScale] = useState(() => calculateResponsiveScale(maxWidth)); useLayoutEffect(() => { setScale(calculateResponsiveScale(maxWidth)); }, [maxWidth]); return scale; }; const EditorSkeleton = () => { const { maxWidth, responsiveWidth } = useResponsiveDimensions(); const scale = useResponsiveCanvas(maxWidth); const displayWidth = LAYOUT_CONSTANTS.CANVAS_WIDTH * scale; const displayHeight = LAYOUT_CONSTANTS.CANVAS_HEIGHT * scale; return (