mirror of
https://github.com/utopia-os/utopia-ui.git
synced 2025-12-13 07:46:10 +00:00
- Separated types and moved them into the proper ./types folder defined in the tsconfig.json. - Defined a new folder alias `#types`. - New eslint rule to enforce `import type` when a type is imported. - Removed Geometry Class and used manual Point types from `geojson`
26 lines
575 B
TypeScript
26 lines
575 B
TypeScript
import { node, string } from 'prop-types'
|
|
import { Children, cloneElement, isValidElement } from 'react'
|
|
|
|
import type { Item } from '#types/Item'
|
|
|
|
export const ItemView = ({ children, item }: { children?: React.ReactNode; item?: Item }) => {
|
|
return (
|
|
<div>
|
|
{children
|
|
? Children.toArray(children).map((child) =>
|
|
isValidElement<{ item: Item }>(child) ? cloneElement(child, { item }) : '',
|
|
)
|
|
: ''}
|
|
</div>
|
|
)
|
|
}
|
|
|
|
ItemView.propTypes = {
|
|
children: node,
|
|
__TYPE: string,
|
|
}
|
|
|
|
ItemView.defaultProps = {
|
|
__TYPE: 'ItemView',
|
|
}
|