quintodrome/ui/src/common/MultiLineTextField.jsx

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

43 lines
984 B
React
Raw Normal View History

import React, { memo } from 'react'
import Typography from '@material-ui/core/Typography'
import sanitizeFieldRestProps from './sanitizeFieldRestProps'
import md5 from 'blueimp-md5'
import { useRecordContext } from 'react-admin'
2020-11-13 17:11:24 -09:00
export const MultiLineTextField = memo(
({
className,
emptyText,
source,
firstLine,
maxLines,
addLabel,
...rest
}) => {
const record = useRecordContext(rest)
2021-05-11 18:08:07 -08:00
const value = record && record[source]
2020-11-13 17:11:24 -09:00
let lines = value ? value.split('\n') : []
if (maxLines || firstLine) {
lines = lines.slice(firstLine, maxLines)
}
return (
<Typography
className={className}
variant="body2"
component="span"
{...sanitizeFieldRestProps(rest)}
>
{lines.length === 0 && emptyText ? emptyText : lines}
</Typography>
)
},
)
MultiLineTextField.displayName = 'MultiLineTextField'
MultiLineTextField.defaultProps = {
addLabel: true,
2020-11-13 17:11:24 -09:00
firstLine: 0,
}