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 (
{/* Header Skeleton - EditorHeader currently returns empty <> */}
{/* Header is empty in actual component, so we skip it */}
{/* Canvas Skeleton - matching EditorCanvas structure */}
{/* Controls Skeleton - matching EditorControls structure */}
{/* Play/Pause button */} {/* Edit button */} {/* Refresh button */} {/* Download button */}
); }; export default EditorSkeleton;