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