import React, { useEffect, useState } from 'react'; export function ArticleTextPreview() { const [currentSize, setCurrentSize] = useState('small'); useEffect(() => { const updatePreview = () => { const root = document.documentElement; if (root.classList.contains('text-size-large')) { setCurrentSize('large'); } else if (root.classList.contains('text-size-medium')) { setCurrentSize('medium'); } else { setCurrentSize('small'); } }; updatePreview(); const observer = new MutationObserver(mutations => { mutations.forEach(mutation => { if (mutation.attributeName === 'class') { updatePreview(); } }); }); observer.observe(document.documentElement, { attributes: true }); return () => observer.disconnect(); }, []); const textSizeClass = (() => { switch (currentSize) { case 'large': return 'text-preview-large'; case 'medium': return 'text-preview-medium'; default: return 'text-preview-small'; } })(); return (

Article Text Preview

Size:{' '} {currentSize === 'small' ? 'Small' : currentSize === 'medium' ? 'Medium' : 'Large'}

Sample Heading

This sample text shows how articles will appear with your selected font size and text color.

); }