import React , { Fragment } from 'react' ; import bbcodeParser from './parser' ; import urlRegex from 'url-regex' ; param plainText export function preProcessLinkText ( plainText ) { const text = plainText . replace ( urlRegex ( { exact : false , strict : true } ) , '[url]$&[/url]' ) ; return text ; } export function preProcessText ( plainText ) { return bbcodeParser . preProcessText ( plainText , preProcessLinkText ) ; } interface BBCodeProps { plainText : string ; } export const BBCode = React . memo ( ( { plainText } ) => { const bbcodeComponent = bbcodeParser . render ( preProcessText ( plainText ) ) ; return < Fragment > { bbcodeComponent } < /Fragment>; } ) ; BBCode . displayName = 'BBCode' ;