import { createElement, useCallback, RawHTML } from '@wordpress/element' import { __ } from 'ct-i18n' import { Spinner } from '@wordpress/components' import useDynamicPreview from '../../hooks/useDynamicPreview' import { colors } from './colors' const OVERWRITE_ATTRIBUTES = { link_nofollow: 'no', share_icons_size: '', items_spacing: '', ...colors, } const Preview = ({ attributes }) => { const { share_icons_color, share_icons_size, share_type, share_icons_fill, items_spacing, } = attributes const formatContent = useCallback( (content) => { const virtualContainer = document.createElement('div') virtualContainer.innerHTML = content return virtualContainer.querySelector('.ct-share-box').innerHTML }, [ share_icons_color, share_icons_size, share_type, share_icons_fill, items_spacing, ] ) const { isLoading, preview } = useDynamicPreview( 'share-box', { ...attributes, ...OVERWRITE_ATTRIBUTES, }, formatContent ) return isLoading ? ( ) : ( {preview} ) } export default Preview