add support for custom fields

This commit is contained in:
Lachlan Kermode
2020-07-01 10:45:24 +02:00
parent e130b737e9
commit e985857d73
4 changed files with 70 additions and 27 deletions

View File

@@ -1,6 +1,7 @@
import copy from '../common/data/copy.json'
import React from 'react'
import CardCustomField from './presentational/Card/CustomField'
import CardTime from './presentational/Card/Time'
import CardLocation from './presentational/Card/Location'
import CardCaret from './presentational/Card/Caret'
@@ -132,6 +133,16 @@ class Card extends React.Component {
}
}
renderCustomFields () {
return this.props.features.CUSTOM_EVENT_FIELDS
.map(field => {
const value = this.props.event[field.key]
return value ? (
<CardCustomField field={field} value={this.props.event[field.key]} />
) : null
})
}
renderMain () {
return (
<div className='card-container'>
@@ -140,6 +151,7 @@ class Card extends React.Component {
{this.renderLocation()}
</div>
{this.renderSummary()}
{this.renderCustomFields()}
</div>
)
}

View File

@@ -0,0 +1,14 @@
import React from 'react'
import marked from 'marked'
const CardCustomField = ({ field, value }) => (
<div className='card-cell'>
<p>
<i className='material-icons left'>{field.icon}</i>
<b>{field.title ? `${field.title}: ` : '- '}</b>
{field.kind === 'text' ? value : marked(`[${value}](${field.value})`)}
</p>
</div>
)
export default CardCustomField