import { View, timeout } from '@seamly/web-ui'
import { useEffect, useState } from 'preact/hooks'
import StyleGuideStaticCore from './static-core'
const StyleGuideView = ({
state,
customComponents = {},
translations,
participants,
}) => {
const [renderView, setRenderView] = useState(true)
const { config } = state || {}
const { layoutMode } = config || {}
const CustomView = customComponents[layoutMode]
// This ensures that the style guide view is completely
// reconstructed for each state to avoid artifacts from previous
// renders showing up.
useEffect(() => {
setRenderView(false)
requestAnimationFrame(async () => {
await timeout(60)
setRenderView(true)
})
}, [state])
if (!renderView) {
return null
}
return CustomView ? (
) : (
)
}
export default StyleGuideView