1/** 2 * Copyright (c) 650 Industries. 3 * Copyright (c) Meta Platforms, Inc. and affiliates. 4 * 5 * This source code is licensed under the MIT license found in the 6 * LICENSE file in the root directory of this source tree. 7 */ 8import React from 'react'; 9import { Text } from 'react-native'; 10const cleanContent = (content) => content.replace(/^(TransformError |Warning: (Warning: )?|Error: )/g, ''); 11export function LogBoxMessage(props) { 12 const { content, substitutions } = props.message; 13 if (props.plaintext === true) { 14 return React.createElement(Text, null, cleanContent(content)); 15 } 16 const maxLength = props.maxLength != null ? props.maxLength : Infinity; 17 const substitutionStyle = props.style; 18 const elements = []; 19 let length = 0; 20 const createUnderLength = (key, message, style) => { 21 let cleanMessage = cleanContent(message); 22 if (props.maxLength != null) { 23 cleanMessage = cleanMessage.slice(0, props.maxLength - length); 24 } 25 if (length < maxLength) { 26 elements.push(React.createElement(Text, { key: key, style: style }, cleanMessage)); 27 } 28 length += cleanMessage.length; 29 }; 30 const lastOffset = substitutions.reduce((prevOffset, substitution, index) => { 31 const key = String(index); 32 if (substitution.offset > prevOffset) { 33 const prevPart = content.substr(prevOffset, substitution.offset - prevOffset); 34 createUnderLength(key, prevPart); 35 } 36 const substititionPart = content.substr(substitution.offset, substitution.length); 37 createUnderLength(key + '.5', substititionPart, substitutionStyle); 38 return substitution.offset + substitution.length; 39 }, 0); 40 if (lastOffset < content.length) { 41 const lastPart = content.substr(lastOffset); 42 createUnderLength('-1', lastPart); 43 } 44 return React.createElement(React.Fragment, null, elements); 45} 46//# sourceMappingURL=LogBoxMessage.js.map