1"use strict"; 2var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { 3 if (k2 === undefined) k2 = k; 4 var desc = Object.getOwnPropertyDescriptor(m, k); 5 if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { 6 desc = { enumerable: true, get: function() { return m[k]; } }; 7 } 8 Object.defineProperty(o, k2, desc); 9}) : (function(o, m, k, k2) { 10 if (k2 === undefined) k2 = k; 11 o[k2] = m[k]; 12})); 13var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { 14 Object.defineProperty(o, "default", { enumerable: true, value: v }); 15}) : function(o, v) { 16 o["default"] = v; 17}); 18var __importStar = (this && this.__importStar) || function (mod) { 19 if (mod && mod.__esModule) return mod; 20 var result = {}; 21 if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); 22 __setModuleDefault(result, mod); 23 return result; 24}; 25var __importDefault = (this && this.__importDefault) || function (mod) { 26 return (mod && mod.__esModule) ? mod : { "default": mod }; 27}; 28Object.defineProperty(exports, "__esModule", { value: true }); 29exports.LogBoxInspectorHeader = void 0; 30/** 31 * Copyright (c) 650 Industries. 32 * Copyright (c) Meta Platforms, Inc. and affiliates. 33 * 34 * This source code is licensed under the MIT license found in the 35 * LICENSE file in the root directory of this source tree. 36 */ 37const react_1 = __importDefault(require("react")); 38const react_native_1 = require("react-native"); 39const LogContext_1 = require("../Data/LogContext"); 40const LogBoxButton_1 = require("../UI/LogBoxButton"); 41const LogBoxStyle = __importStar(require("../UI/LogBoxStyle")); 42function LogBoxInspectorHeader(props) { 43 const { selectedLogIndex: selectedIndex, logs } = (0, LogContext_1.useLogs)(); 44 const total = logs.length; 45 if (props.level === 'syntax') { 46 return (react_1.default.createElement(react_native_1.View, { style: [styles.safeArea, styles[props.level]] }, 47 react_1.default.createElement(react_native_1.View, { style: styles.header }, 48 react_1.default.createElement(react_native_1.View, { style: styles.title }, 49 react_1.default.createElement(react_native_1.Text, { style: styles.titleText }, "Failed to compile"))))); 50 } 51 const prevIndex = selectedIndex - 1 < 0 ? total - 1 : selectedIndex - 1; 52 const nextIndex = selectedIndex + 1 > total - 1 ? 0 : selectedIndex + 1; 53 const titleText = `Log ${selectedIndex + 1} of ${total}`; 54 return (react_1.default.createElement(react_native_1.View, { style: [styles.safeArea, styles[props.level]] }, 55 react_1.default.createElement(react_native_1.View, { style: styles.header }, 56 react_1.default.createElement(LogBoxInspectorHeaderButton, { disabled: total <= 1, level: props.level, image: require('@expo/metro-runtime/assets/chevron-left.png'), onPress: () => props.onSelectIndex(prevIndex) }), 57 react_1.default.createElement(react_native_1.View, { style: styles.title }, 58 react_1.default.createElement(react_native_1.Text, { style: styles.titleText }, titleText)), 59 react_1.default.createElement(LogBoxInspectorHeaderButton, { disabled: total <= 1, level: props.level, image: require('@expo/metro-runtime/assets/chevron-right.png'), onPress: () => props.onSelectIndex(nextIndex) })))); 60} 61exports.LogBoxInspectorHeader = LogBoxInspectorHeader; 62const backgroundForLevel = (level) => ({ 63 warn: { 64 default: 'transparent', 65 pressed: LogBoxStyle.getWarningDarkColor(), 66 }, 67 error: { 68 default: 'transparent', 69 pressed: LogBoxStyle.getErrorDarkColor(), 70 }, 71 fatal: { 72 default: 'transparent', 73 pressed: LogBoxStyle.getFatalDarkColor(), 74 }, 75 syntax: { 76 default: 'transparent', 77 pressed: LogBoxStyle.getFatalDarkColor(), 78 }, 79 static: { 80 default: 'transparent', 81 pressed: LogBoxStyle.getFatalDarkColor(), 82 }, 83})[level]; 84function LogBoxInspectorHeaderButton(props) { 85 return (react_1.default.createElement(LogBoxButton_1.LogBoxButton, { backgroundColor: backgroundForLevel(props.level), onPress: props.disabled ? undefined : props.onPress, style: headerStyles.button }, props.disabled ? null : (react_1.default.createElement(react_native_1.Image, { source: props.image, tintColor: LogBoxStyle.getTextColor(), style: headerStyles.buttonImage })))); 86} 87const headerStyles = react_native_1.StyleSheet.create({ 88 button: { 89 alignItems: 'center', 90 justifyContent: 'center', 91 aspectRatio: 1, 92 marginRight: 6, 93 marginLeft: 6, 94 borderRadius: 3, 95 }, 96 buttonImage: { 97 height: 14, 98 width: 8, 99 }, 100}); 101const styles = react_native_1.StyleSheet.create({ 102 syntax: { 103 backgroundColor: LogBoxStyle.getFatalColor(), 104 }, 105 static: { 106 backgroundColor: LogBoxStyle.getFatalColor(), 107 }, 108 fatal: { 109 backgroundColor: LogBoxStyle.getFatalColor(), 110 }, 111 warn: { 112 backgroundColor: LogBoxStyle.getWarningColor(), 113 }, 114 error: { 115 backgroundColor: LogBoxStyle.getErrorColor(), 116 }, 117 header: { 118 flexDirection: 'row', 119 alignItems: 'center', 120 paddingHorizontal: 8, 121 height: react_native_1.Platform.select({ 122 default: 48, 123 ios: 44, 124 }), 125 }, 126 title: { 127 alignItems: 'center', 128 flex: 1, 129 justifyContent: 'center', 130 }, 131 titleText: { 132 color: LogBoxStyle.getTextColor(), 133 fontSize: 16, 134 fontWeight: '600', 135 includeFontPadding: false, 136 lineHeight: 20, 137 }, 138 safeArea: { 139 paddingTop: react_native_1.Platform.OS !== 'ios' ? react_native_1.StatusBar.currentHeight : 40, 140 }, 141}); 142//# sourceMappingURL=LogBoxInspectorHeader.js.map