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