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