utopia-ui/src/Components/Map/ItemView.tsx
Ulf Gebhardt 3872a052b6
separated types, eslint rule for importing types
- 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`
2024-11-24 04:11:32 +01:00

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',
}