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.useSelectedLog = exports.useLogs = exports.LogContext = void 0; 7const react_1 = __importDefault(require("react")); 8const react_native_1 = require("react-native"); 9const LogBoxLog_1 = require("./LogBoxLog"); 10// Context provider for Array<LogBoxLog> 11exports.LogContext = react_1.default.createContext(null); 12function useLogs() { 13 const logs = react_1.default.useContext(exports.LogContext); 14 if (!logs) { 15 if (react_native_1.Platform.OS === 'web' && typeof window !== 'undefined') { 16 // Logbox data that is pre-fetched on the dev server and rendered here. 17 const expoCliStaticErrorElement = document.getElementById('_expo-static-error'); 18 if (expoCliStaticErrorElement?.textContent) { 19 const raw = JSON.parse(expoCliStaticErrorElement.textContent); 20 return { 21 ...raw, 22 logs: raw.logs.map((raw) => new LogBoxLog_1.LogBoxLog(raw)), 23 }; 24 } 25 } 26 throw new Error('useLogs must be used within a LogProvider'); 27 } 28 return logs; 29} 30exports.useLogs = useLogs; 31function useSelectedLog() { 32 const { selectedLogIndex, logs } = useLogs(); 33 return logs[selectedLogIndex]; 34} 35exports.useSelectedLog = useSelectedLog; 36//# sourceMappingURL=LogContext.js.map