Newer
Older
import React from 'react'
import PropTypes from 'prop-types'
import { Alert, AlertIcon, AlertDescription, AlertTitle, Code } from '@chakra-ui/react'
function resolveEvents(event) {
const Event = ObjectComponents[event._type]
if (Event) {
return Event
}
console.error('Cant find event', event) // eslint-disable-line no-console
return null
}
function RenderMergedActivityStreamList(props) {
const filteredStream = stream.filter((x) => x._type)
if (!filteredStream) {
console.error('Missing section')
return <div>Missing events</div>
}
return (
<>
{filteredStream.map((event) => {
const EventComponent = resolveEvents(event)
if (!EventComponent) {
return (
<Alert status="error">
<AlertIcon />
<AlertTitle mr={2}>Missing event!</AlertTitle>
<AlertDescription>
Add new event called <Code>{event._type}</Code>.
</AlertDescription>
</Alert>
)
}
return <EventComponent {...event} key={event._key ?? event._id} />
})}
</>
)
}
RenderMergedActivityStreamList.propTypes = {
stream: PropTypes.arrayOf(
PropTypes.shape({
_type: PropTypes.string,
_key: PropTypes.string,
section: PropTypes.instanceOf(PropTypes.object),
}),
),
}
export default RenderMergedActivityStreamList