theatre/packages/plugin-r3f/src/components/EditorHelper.tsx
2021-06-18 13:05:06 +02:00

23 lines
627 B
TypeScript

import type {ComponentProps, ElementType} from 'react'
import React from 'react'
import {useEditorStore} from '../store'
import {createPortal} from '@react-three/fiber'
export type EditorHelperProps<T extends ElementType> = {
component: T
} & ComponentProps<T>
const EditorHelper = <T extends ElementType>({
component: Component,
...props
}: EditorHelperProps<T>) => {
if (process.env.NODE_ENV === 'development') {
const helpersRoot = useEditorStore((state) => state.helpersRoot)
return <>{createPortal(<Component {...props} />, helpersRoot)}</>
} else {
return null
}
}
export default EditorHelper