@plan-three/material-ui-autosuggest
Version:
A fuzzy search autosuggest component for Material-UI
36 lines (32 loc) • 747 B
JavaScript
import React from 'react'
import PropTypes from 'prop-types'
import isPartHighlighted from '../lib/is-part-highlighted'
const HighlightedText = ({
value,
match
}) => {
if (!match) return value
return (
<React.Fragment>
{
Array.from(value, (part, i) => {
if (part === ' ') {
return (<span key={String(i)} dangerouslySetInnerHTML={{__html: ' '}} />)
}
const highlight = isPartHighlighted(i, match)
const fontWeight = highlight ? 500 : 300
return (
<span key={String(i)} style={{ fontWeight }}>
{part}
</span>
)
})
}
</React.Fragment>
)
}
HighlightedText.propTypes = {
value: PropTypes.string.isRequired,
match: PropTypes.object
}
export default HighlightedText