@localstack/appinspector-ui 1.0.112 → 1.0.114
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +41 -13
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +78 -50
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -2414,9 +2414,16 @@ var init_event_streams = __esm({
|
|
|
2414
2414
|
|
|
2415
2415
|
// src/pages/spans-list-page.tsx
|
|
2416
2416
|
import { Box as Box20 } from "@mui/material";
|
|
2417
|
-
import { useCallback as
|
|
2417
|
+
import { useCallback as useCallback12, useState as useState18 } from "react";
|
|
2418
2418
|
|
|
2419
2419
|
// src/api/errors.ts
|
|
2420
|
+
var AppInspectorDisabledError = class extends Error {
|
|
2421
|
+
constructor(message, cause) {
|
|
2422
|
+
super(message);
|
|
2423
|
+
this.name = "AppInspectorDisabledError";
|
|
2424
|
+
this.cause = cause;
|
|
2425
|
+
}
|
|
2426
|
+
};
|
|
2420
2427
|
var AppInspectorNotFoundError = class extends Error {
|
|
2421
2428
|
localstackVersion;
|
|
2422
2429
|
constructor(message, cause, localstackVersion) {
|
|
@@ -15025,7 +15032,7 @@ var LoadSpansRow = ({ colSpan, fetching, label, onFetch }) => /* @__PURE__ */ js
|
|
|
15025
15032
|
fetching && /* @__PURE__ */ jsx127(CircularProgress, { size: 24, sx: { m: 2 } })
|
|
15026
15033
|
] }) });
|
|
15027
15034
|
var SpansDataGridRow = memo8(
|
|
15028
|
-
({ row }) => {
|
|
15035
|
+
({ onSpanClick, row }) => {
|
|
15029
15036
|
const theme = useTheme2();
|
|
15030
15037
|
return /* @__PURE__ */ jsx127(
|
|
15031
15038
|
TableRow,
|
|
@@ -15038,7 +15045,11 @@ var SpansDataGridRow = memo8(
|
|
|
15038
15045
|
initial: {
|
|
15039
15046
|
backgroundColor: theme.palette.mode === "light" ? newSpanBackgroundColor.light.from : newSpanBackgroundColor.dark.from
|
|
15040
15047
|
},
|
|
15048
|
+
onClick: () => {
|
|
15049
|
+
onSpanClick(row.original);
|
|
15050
|
+
},
|
|
15041
15051
|
sx: {
|
|
15052
|
+
cursor: "pointer",
|
|
15042
15053
|
transition: "background-color 1200ms ease-in"
|
|
15043
15054
|
},
|
|
15044
15055
|
children: row.getVisibleCells().map((cell) => {
|
|
@@ -15155,7 +15166,8 @@ var SpansDataGrid = ({
|
|
|
15155
15166
|
Button2,
|
|
15156
15167
|
{
|
|
15157
15168
|
"data-testid": VIEW_SPAN_DETAILS_TEST_ID,
|
|
15158
|
-
onClick: () => {
|
|
15169
|
+
onClick: (event) => {
|
|
15170
|
+
event.stopPropagation();
|
|
15159
15171
|
onSpanClick(props.row.original);
|
|
15160
15172
|
},
|
|
15161
15173
|
size: "small",
|
|
@@ -15316,7 +15328,7 @@ var SpansDataGrid = ({
|
|
|
15316
15328
|
for (let index = rows.length - 1; index >= 0; index--) {
|
|
15317
15329
|
const row = rows.at(index);
|
|
15318
15330
|
reversed.push(
|
|
15319
|
-
/* @__PURE__ */ jsx127(SpansDataGridRow, { row }, row.original.span_id)
|
|
15331
|
+
/* @__PURE__ */ jsx127(SpansDataGridRow, { onSpanClick, row }, row.original.span_id)
|
|
15320
15332
|
);
|
|
15321
15333
|
}
|
|
15322
15334
|
return reversed;
|
|
@@ -15327,7 +15339,7 @@ var SpansDataGrid = ({
|
|
|
15327
15339
|
!clearingSpans && order2 === "oldest_first" && /* @__PURE__ */ jsxs121(Fragment5, { children: [
|
|
15328
15340
|
hasRows && !hasMoreBackward && /* @__PURE__ */ jsx127(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_BEGINNING_OF_STREAM }),
|
|
15329
15341
|
hasRows && hasMoreBackward && /* @__PURE__ */ jsx127(LoadSpansRow, { colSpan: columnCount, fetching: fetchingBackward, label: LABEL_LOAD_OLDER, onFetch: onFetchBackward }),
|
|
15330
|
-
hasRows && /* @__PURE__ */ jsx127(AnimatePresence, { initial: false, children: rows.map((row) => /* @__PURE__ */ jsx127(SpansDataGridRow, { row }, row.original.span_id)) }),
|
|
15342
|
+
hasRows && /* @__PURE__ */ jsx127(AnimatePresence, { initial: false, children: rows.map((row) => /* @__PURE__ */ jsx127(SpansDataGridRow, { onSpanClick, row }, row.original.span_id)) }),
|
|
15331
15343
|
hasRows && hasMoreForward && /* @__PURE__ */ jsx127(LoadSpansRow, { colSpan: columnCount, fetching: fetchingForward, label: LABEL_LOAD_NEWER, onFetch: onFetchForward }),
|
|
15332
15344
|
hasRows && !hasMoreForward && /* @__PURE__ */ jsx127(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_END_OF_STREAM })
|
|
15333
15345
|
] })
|
|
@@ -15523,7 +15535,7 @@ var StatusMessage = ({
|
|
|
15523
15535
|
}
|
|
15524
15536
|
);
|
|
15525
15537
|
}
|
|
15526
|
-
if (status?.status === "DISABLED") {
|
|
15538
|
+
if (error instanceof AppInspectorDisabledError || status?.status === "DISABLED") {
|
|
15527
15539
|
return /* @__PURE__ */ jsx129(
|
|
15528
15540
|
Box6,
|
|
15529
15541
|
{
|
|
@@ -15630,7 +15642,7 @@ var StatusMessage = ({
|
|
|
15630
15642
|
};
|
|
15631
15643
|
|
|
15632
15644
|
// src/hooks/status-provider.tsx
|
|
15633
|
-
import { createContext as createContext8, useContext as useContext15, useMemo as useMemo6 } from "react";
|
|
15645
|
+
import { createContext as createContext8, useCallback as useCallback5, useContext as useContext15, useMemo as useMemo6 } from "react";
|
|
15634
15646
|
|
|
15635
15647
|
// src/hooks/use-status.tsx
|
|
15636
15648
|
import { useCallback as useCallback4, useEffect as useEffect11, useRef as useRef9, useState as useState6 } from "react";
|
|
@@ -15679,9 +15691,12 @@ import { jsx as jsx130 } from "react/jsx-runtime";
|
|
|
15679
15691
|
var AppInspectorStatusContext = createContext8(void 0);
|
|
15680
15692
|
var StatusProvider = ({ children }) => {
|
|
15681
15693
|
const { checking, checkStatus, error, status } = useStatus();
|
|
15694
|
+
const reportDisabled = useCallback5(() => {
|
|
15695
|
+
void checkStatus();
|
|
15696
|
+
}, [checkStatus]);
|
|
15682
15697
|
const value = useMemo6(
|
|
15683
|
-
() => ({ checking, checkStatus, status, statusError: error }),
|
|
15684
|
-
[checking, checkStatus, status, error]
|
|
15698
|
+
() => ({ checking, checkStatus, reportDisabled, status, statusError: error }),
|
|
15699
|
+
[checking, checkStatus, reportDisabled, status, error]
|
|
15685
15700
|
);
|
|
15686
15701
|
return /* @__PURE__ */ jsx130(AppInspectorStatusContext.Provider, { value, children });
|
|
15687
15702
|
};
|
|
@@ -15694,7 +15709,7 @@ var useAppInspectorStatus = () => {
|
|
|
15694
15709
|
};
|
|
15695
15710
|
|
|
15696
15711
|
// src/hooks/use-local-storage.tsx
|
|
15697
|
-
import { useCallback as
|
|
15712
|
+
import { useCallback as useCallback6, useEffect as useEffect12, useState as useState7 } from "react";
|
|
15698
15713
|
function useLocalStorage(key, initialValue) {
|
|
15699
15714
|
const [storedValue, setStoredValue] = useState7(() => {
|
|
15700
15715
|
try {
|
|
@@ -15705,7 +15720,7 @@ function useLocalStorage(key, initialValue) {
|
|
|
15705
15720
|
return initialValue;
|
|
15706
15721
|
}
|
|
15707
15722
|
});
|
|
15708
|
-
const setValue =
|
|
15723
|
+
const setValue = useCallback6((value) => {
|
|
15709
15724
|
try {
|
|
15710
15725
|
setStoredValue((previousState) => {
|
|
15711
15726
|
const next = typeof value === "function" ? value(previousState) : value;
|
|
@@ -15739,7 +15754,7 @@ function useLocalStorage(key, initialValue) {
|
|
|
15739
15754
|
}
|
|
15740
15755
|
|
|
15741
15756
|
// src/hooks/use-spans.ts
|
|
15742
|
-
import { useCallback as
|
|
15757
|
+
import { useCallback as useCallback9, useEffect as useEffect16, useRef as useRef13, useState as useState10 } from "react";
|
|
15743
15758
|
|
|
15744
15759
|
// src/utils/pagination-buffer.ts
|
|
15745
15760
|
var insertSorted = (array, item, compareFunction, hint = "back") => {
|
|
@@ -15920,7 +15935,7 @@ var createPaginationBuffer = (options) => {
|
|
|
15920
15935
|
};
|
|
15921
15936
|
|
|
15922
15937
|
// src/hooks/use-spans-ws.tsx
|
|
15923
|
-
import { useCallback as
|
|
15938
|
+
import { useCallback as useCallback8, useEffect as useEffect14, useRef as useRef11, useState as useState8 } from "react";
|
|
15924
15939
|
|
|
15925
15940
|
// src/config.ts
|
|
15926
15941
|
var APPINSPECTOR_API_PREFIX = "/_localstack/appinspector";
|
|
@@ -15950,7 +15965,7 @@ var LOCALSTACK_INFO_PATH = "/_localstack/info";
|
|
|
15950
15965
|
|
|
15951
15966
|
// src/context.tsx
|
|
15952
15967
|
import { createContext as createContext9, useContext as useContext16 } from "react";
|
|
15953
|
-
import { useCallback as
|
|
15968
|
+
import { useCallback as useCallback7, useMemo as useMemo7 } from "react";
|
|
15954
15969
|
|
|
15955
15970
|
// src/api/client.ts
|
|
15956
15971
|
var import_semver2 = __toESM(require_semver2(), 1);
|
|
@@ -16039,17 +16054,19 @@ var makeRequest = async (options) => {
|
|
|
16039
16054
|
new Error(`404 from ${url}: ${response.statusText}`)
|
|
16040
16055
|
);
|
|
16041
16056
|
}
|
|
16057
|
+
if (response.status === 503) {
|
|
16058
|
+
throw new AppInspectorDisabledError(
|
|
16059
|
+
ERROR_MESSAGES.APP_INSPECTOR_DISABLED,
|
|
16060
|
+
new Error(`503 from ${url}: ${response.statusText}`)
|
|
16061
|
+
);
|
|
16062
|
+
}
|
|
16042
16063
|
throw new Error(`API request failed: ${response.status.toString()} ${response.statusText}`);
|
|
16043
16064
|
}
|
|
16044
16065
|
options.captureHeaders?.(response.headers);
|
|
16045
16066
|
return await response.json();
|
|
16046
16067
|
} catch (error) {
|
|
16047
16068
|
if (error instanceof TypeError) {
|
|
16048
|
-
|
|
16049
|
-
const isNetworkError = message.includes("fetch") || message.includes("network") || message.includes("failed to fetch");
|
|
16050
|
-
if (isNetworkError) {
|
|
16051
|
-
throw new ConnectionError(ERROR_MESSAGES.CONNECTION_FAILED, error);
|
|
16052
|
-
}
|
|
16069
|
+
throw new ConnectionError(ERROR_MESSAGES.CONNECTION_FAILED, error);
|
|
16053
16070
|
}
|
|
16054
16071
|
if (error instanceof Error) {
|
|
16055
16072
|
throw error;
|
|
@@ -18118,7 +18135,7 @@ var AppInspectorContextProvider = (props) => {
|
|
|
18118
18135
|
() => createApiClient({ localstackEndpoint: props.localstackEndpoint }),
|
|
18119
18136
|
[props.localstackEndpoint]
|
|
18120
18137
|
);
|
|
18121
|
-
const resolveLink =
|
|
18138
|
+
const resolveLink = useCallback7(
|
|
18122
18139
|
(options) => {
|
|
18123
18140
|
if (options.to === "settings") {
|
|
18124
18141
|
return `${props.routePrefix}/settings`;
|
|
@@ -18157,7 +18174,7 @@ function useSpansWebSocket(options) {
|
|
|
18157
18174
|
const wsRef = useRef11(void 0);
|
|
18158
18175
|
const reconnectRef = useRef11(void 0);
|
|
18159
18176
|
const { localstackEndpoint } = useAppInspector();
|
|
18160
|
-
const connect =
|
|
18177
|
+
const connect = useCallback8(() => {
|
|
18161
18178
|
if (wsRef.current !== void 0) return;
|
|
18162
18179
|
const url = new URL(getAppInspectorApiUrl(localstackEndpoint, API_ENDPOINTS.WEBSOCKET_SPANS));
|
|
18163
18180
|
url.protocol = globalThis.location.protocol === "https:" ? "wss" : "ws";
|
|
@@ -18296,6 +18313,7 @@ function useThrottledItems(items, getId, catchUpIncrement = 10) {
|
|
|
18296
18313
|
var PAGE_SIZE = 30;
|
|
18297
18314
|
var useSpans = () => {
|
|
18298
18315
|
const api = useAppInspectorApi();
|
|
18316
|
+
const { reportDisabled } = useAppInspectorStatus();
|
|
18299
18317
|
const [spans, setSpans] = useState10();
|
|
18300
18318
|
const throttledSpans = useThrottledItems(spans, (span) => span.span_id);
|
|
18301
18319
|
const [fetchError, setFetchError] = useState10();
|
|
@@ -18347,17 +18365,17 @@ var useSpans = () => {
|
|
|
18347
18365
|
const [warningCount, setWarningCount] = useState10();
|
|
18348
18366
|
const [hasMoreBackward, setHasMoreBackward] = useState10();
|
|
18349
18367
|
const [hasMoreForward, setHasMoreForward] = useState10();
|
|
18350
|
-
const fetchForward =
|
|
18368
|
+
const fetchForward = useCallback9(() => {
|
|
18351
18369
|
void paginationBufferRef.current.fetchForward();
|
|
18352
18370
|
}, []);
|
|
18353
|
-
const fetchBackward =
|
|
18371
|
+
const fetchBackward = useCallback9(() => {
|
|
18354
18372
|
void paginationBufferRef.current.fetchBackward();
|
|
18355
18373
|
}, []);
|
|
18356
18374
|
useEffect16(() => {
|
|
18357
18375
|
fetchForward();
|
|
18358
18376
|
}, [fetchForward]);
|
|
18359
18377
|
const [clearingSpans, setClearingSpans] = useState10(false);
|
|
18360
|
-
const clearSpans =
|
|
18378
|
+
const clearSpans = useCallback9(async () => {
|
|
18361
18379
|
if (clearingSpans) {
|
|
18362
18380
|
return;
|
|
18363
18381
|
}
|
|
@@ -18375,7 +18393,7 @@ var useSpans = () => {
|
|
|
18375
18393
|
}
|
|
18376
18394
|
}, [clearingSpans, api]);
|
|
18377
18395
|
const [streamPaused, setStreamPaused] = useState10(false);
|
|
18378
|
-
const toggleStream =
|
|
18396
|
+
const toggleStream = useCallback9(() => {
|
|
18379
18397
|
setStreamPaused((previous) => !previous);
|
|
18380
18398
|
}, []);
|
|
18381
18399
|
useEffect16(() => {
|
|
@@ -18397,9 +18415,14 @@ var useSpans = () => {
|
|
|
18397
18415
|
}
|
|
18398
18416
|
}
|
|
18399
18417
|
});
|
|
18400
|
-
const clearFetchError =
|
|
18418
|
+
const clearFetchError = useCallback9(() => {
|
|
18401
18419
|
setFetchError(void 0);
|
|
18402
18420
|
}, []);
|
|
18421
|
+
useEffect16(() => {
|
|
18422
|
+
if (fetchError instanceof AppInspectorDisabledError || fetchError instanceof ConnectionError) {
|
|
18423
|
+
reportDisabled();
|
|
18424
|
+
}
|
|
18425
|
+
}, [fetchError, reportDisabled]);
|
|
18403
18426
|
return {
|
|
18404
18427
|
clearFetchError,
|
|
18405
18428
|
clearingSpans,
|
|
@@ -18427,7 +18450,7 @@ import { ArrowBack } from "@mui/icons-material";
|
|
|
18427
18450
|
import { Box as Box19, Button as Button6, Drawer, Paper as Paper3 } from "@mui/material";
|
|
18428
18451
|
import { styled } from "@mui/material/styles";
|
|
18429
18452
|
import { ReactFlowProvider } from "@xyflow/react";
|
|
18430
|
-
import { useCallback as
|
|
18453
|
+
import { useCallback as useCallback11, useEffect as useEffect21, useRef as useRef17, useState as useState17 } from "react";
|
|
18431
18454
|
|
|
18432
18455
|
// src/components/event-details/event-details.tsx
|
|
18433
18456
|
import { Close as Close2 } from "@mui/icons-material";
|
|
@@ -18798,7 +18821,7 @@ import { Box as Box11, useTheme as useTheme3 } from "@mui/material";
|
|
|
18798
18821
|
var import_copy_to_clipboard = __toESM(require_copy_to_clipboard(), 1);
|
|
18799
18822
|
import { jsx as jsx135, jsxs as jsxs126, Fragment as Fragment8 } from "react/jsx-runtime";
|
|
18800
18823
|
import { Box as Box10, InputBase, NoSsr, SvgIcon, createTheme, ThemeProvider, Paper as Paper2 } from "@mui/material";
|
|
18801
|
-
import { createContext as createContext10, useContext as useContext17, useState as useState12, useRef as useRef14, useCallback as
|
|
18824
|
+
import { createContext as createContext10, useContext as useContext17, useState as useState12, useRef as useRef14, useCallback as useCallback10, useMemo as useMemo9, useEffect as useEffect17, memo as memo9 } from "react";
|
|
18802
18825
|
import { create, useStore, createStore } from "zustand";
|
|
18803
18826
|
function r(e2) {
|
|
18804
18827
|
var t2, f2, n2 = "";
|
|
@@ -19044,7 +19067,7 @@ function useClipboard() {
|
|
|
19044
19067
|
let { timeout = 2e3 } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
19045
19068
|
const [copied, setCopied] = useState12(false);
|
|
19046
19069
|
const copyTimeout = useRef14(null);
|
|
19047
|
-
const handleCopyResult =
|
|
19070
|
+
const handleCopyResult = useCallback10((value) => {
|
|
19048
19071
|
const current = copyTimeout.current;
|
|
19049
19072
|
if (current) {
|
|
19050
19073
|
window.clearTimeout(current);
|
|
@@ -19055,7 +19078,7 @@ function useClipboard() {
|
|
|
19055
19078
|
timeout
|
|
19056
19079
|
]);
|
|
19057
19080
|
const onCopy = useJsonViewerStore((store) => store.onCopy);
|
|
19058
|
-
const copy =
|
|
19081
|
+
const copy = useCallback10(async (path, value) => {
|
|
19059
19082
|
if (typeof onCopy === "function") {
|
|
19060
19083
|
try {
|
|
19061
19084
|
await onCopy(path, value, copyString);
|
|
@@ -19076,7 +19099,7 @@ function useClipboard() {
|
|
|
19076
19099
|
handleCopyResult,
|
|
19077
19100
|
onCopy
|
|
19078
19101
|
]);
|
|
19079
|
-
const reset =
|
|
19102
|
+
const reset = useCallback10(() => {
|
|
19080
19103
|
setCopied(false);
|
|
19081
19104
|
if (copyTimeout.current) {
|
|
19082
19105
|
clearTimeout(copyTimeout.current);
|
|
@@ -19135,7 +19158,7 @@ function useInspect(path, value, nestedIndex) {
|
|
|
19135
19158
|
}
|
|
19136
19159
|
return isTrap ? false : typeof defaultInspectControl === "function" ? defaultInspectControl(path, value) : depth < defaultInspectDepth;
|
|
19137
19160
|
});
|
|
19138
|
-
const setInspect =
|
|
19161
|
+
const setInspect = useCallback10((apply) => {
|
|
19139
19162
|
set((oldState) => {
|
|
19140
19163
|
const newState = typeof apply === "boolean" ? apply : apply(oldState);
|
|
19141
19164
|
setInspectCache(path, newState, nestedIndex);
|
|
@@ -19212,7 +19235,7 @@ function defineEasyType(param) {
|
|
|
19212
19235
|
const EasyTypeEditor = (param2) => {
|
|
19213
19236
|
let { value, setValue, abortEditing, commitEditing } = param2;
|
|
19214
19237
|
const color2 = useJsonViewerStore((store) => store.colorspace[colorKey]);
|
|
19215
|
-
const handleKeyDown =
|
|
19238
|
+
const handleKeyDown = useCallback10((event) => {
|
|
19216
19239
|
if (event.key === "Enter") {
|
|
19217
19240
|
event.preventDefault();
|
|
19218
19241
|
commitEditing(value);
|
|
@@ -19226,7 +19249,7 @@ function defineEasyType(param) {
|
|
|
19226
19249
|
commitEditing,
|
|
19227
19250
|
value
|
|
19228
19251
|
]);
|
|
19229
|
-
const handleChange =
|
|
19252
|
+
const handleChange = useCallback10((event) => {
|
|
19230
19253
|
setValue(event.target.value);
|
|
19231
19254
|
}, [
|
|
19232
19255
|
setValue
|
|
@@ -20139,7 +20162,7 @@ var DataKeyPair = (props) => {
|
|
|
20139
20162
|
prevValue,
|
|
20140
20163
|
value
|
|
20141
20164
|
]);
|
|
20142
|
-
const startEditing =
|
|
20165
|
+
const startEditing = useCallback10((event) => {
|
|
20143
20166
|
event.preventDefault();
|
|
20144
20167
|
if (serialize) setTempValue(serialize(value));
|
|
20145
20168
|
setEditing(true);
|
|
@@ -20147,14 +20170,14 @@ var DataKeyPair = (props) => {
|
|
|
20147
20170
|
serialize,
|
|
20148
20171
|
value
|
|
20149
20172
|
]);
|
|
20150
|
-
const abortEditing =
|
|
20173
|
+
const abortEditing = useCallback10(() => {
|
|
20151
20174
|
setEditing(false);
|
|
20152
20175
|
setTempValue("");
|
|
20153
20176
|
}, [
|
|
20154
20177
|
setEditing,
|
|
20155
20178
|
setTempValue
|
|
20156
20179
|
]);
|
|
20157
|
-
const commitEditing =
|
|
20180
|
+
const commitEditing = useCallback10((newValue) => {
|
|
20158
20181
|
setEditing(false);
|
|
20159
20182
|
if (!deserialize) return;
|
|
20160
20183
|
try {
|
|
@@ -20290,7 +20313,7 @@ var DataKeyPair = (props) => {
|
|
|
20290
20313
|
sx: {
|
|
20291
20314
|
userSelect: "text"
|
|
20292
20315
|
},
|
|
20293
|
-
onMouseEnter:
|
|
20316
|
+
onMouseEnter: useCallback10(() => setHover(path, nestedIndex), [
|
|
20294
20317
|
setHover,
|
|
20295
20318
|
path,
|
|
20296
20319
|
nestedIndex
|
|
@@ -20305,7 +20328,7 @@ var DataKeyPair = (props) => {
|
|
|
20305
20328
|
letterSpacing: 0.5,
|
|
20306
20329
|
opacity: 0.8
|
|
20307
20330
|
},
|
|
20308
|
-
onClick:
|
|
20331
|
+
onClick: useCallback10((event) => {
|
|
20309
20332
|
if (event.isDefaultPrevented()) {
|
|
20310
20333
|
return;
|
|
20311
20334
|
}
|
|
@@ -20521,7 +20544,7 @@ var JsonViewerInner = (props) => {
|
|
|
20521
20544
|
const prevValue = useJsonViewerStore((store) => store.prevValue);
|
|
20522
20545
|
const emptyPath = useMemo9(() => [], []);
|
|
20523
20546
|
const setHover = useJsonViewerStore((store) => store.setHover);
|
|
20524
|
-
const onMouseLeave =
|
|
20547
|
+
const onMouseLeave = useCallback10(() => setHover(null), [
|
|
20525
20548
|
setHover
|
|
20526
20549
|
]);
|
|
20527
20550
|
return /* @__PURE__ */ jsx135(Paper2, {
|
|
@@ -31350,7 +31373,7 @@ var TraceGraphPage = ({ onClose, spanId, traceId }) => {
|
|
|
31350
31373
|
const [spans, setSpans] = useState17();
|
|
31351
31374
|
const [loading, setLoading] = useState17(false);
|
|
31352
31375
|
const [fetchError, setFetchError] = useState17();
|
|
31353
|
-
const fetchSpans =
|
|
31376
|
+
const fetchSpans = useCallback11(async () => {
|
|
31354
31377
|
setLoading(true);
|
|
31355
31378
|
try {
|
|
31356
31379
|
const spans2 = await fetchConnectedTraces(api, [traceId]);
|
|
@@ -31375,20 +31398,25 @@ var TraceGraphPage = ({ onClose, spanId, traceId }) => {
|
|
|
31375
31398
|
spansReference.current = spans;
|
|
31376
31399
|
}
|
|
31377
31400
|
}, [spans, setSelectedEvent, spanId]);
|
|
31378
|
-
const { checkStatus, status, statusError } = useAppInspectorStatus();
|
|
31379
|
-
|
|
31401
|
+
const { checkStatus, reportDisabled, status, statusError } = useAppInspectorStatus();
|
|
31402
|
+
useEffect21(() => {
|
|
31403
|
+
if (fetchError instanceof AppInspectorDisabledError || fetchError instanceof ConnectionError) {
|
|
31404
|
+
reportDisabled();
|
|
31405
|
+
}
|
|
31406
|
+
}, [fetchError, reportDisabled]);
|
|
31407
|
+
const handleEnable = useCallback11(async () => {
|
|
31380
31408
|
await api.setStatus({ status: "ENABLED" });
|
|
31381
31409
|
void checkStatus();
|
|
31382
31410
|
}, [api, checkStatus]);
|
|
31383
|
-
const handleEventSelect =
|
|
31411
|
+
const handleEventSelect = useCallback11((spanId2) => {
|
|
31384
31412
|
const span = spans?.find((s2) => s2.span_id === spanId2);
|
|
31385
31413
|
setSelectedEvent(span);
|
|
31386
31414
|
setOpen(true);
|
|
31387
31415
|
}, [spans]);
|
|
31388
|
-
const handleRetry =
|
|
31416
|
+
const handleRetry = useCallback11(() => {
|
|
31389
31417
|
void checkStatus();
|
|
31390
31418
|
}, [checkStatus]);
|
|
31391
|
-
const navigateToSpansList =
|
|
31419
|
+
const navigateToSpansList = useCallback11(() => {
|
|
31392
31420
|
onClose?.();
|
|
31393
31421
|
}, [onClose]);
|
|
31394
31422
|
return /* @__PURE__ */ jsx145(
|
|
@@ -31440,7 +31468,7 @@ var SpansListPage = () => {
|
|
|
31440
31468
|
warningCount
|
|
31441
31469
|
} = useSpans();
|
|
31442
31470
|
const { checking, checkStatus, status, statusError } = useAppInspectorStatus();
|
|
31443
|
-
const clearSpansSync =
|
|
31471
|
+
const clearSpansSync = useCallback12(() => {
|
|
31444
31472
|
void clearSpans();
|
|
31445
31473
|
}, [clearSpans]);
|
|
31446
31474
|
const localstackVersion = status?.localstackVersion ?? (statusError instanceof AppInspectorNotFoundError ? statusError.localstackVersion : void 0);
|
|
@@ -31449,15 +31477,15 @@ var SpansListPage = () => {
|
|
|
31449
31477
|
const [order2, setOrder] = useLocalStorage("spans-order", "oldest_first");
|
|
31450
31478
|
const [selectedTraceId, setSelectedTraceId] = useState18();
|
|
31451
31479
|
const [selectedSpanId, setSelectedSpanId] = useState18();
|
|
31452
|
-
const navigateToSpan =
|
|
31480
|
+
const navigateToSpan = useCallback12((span) => {
|
|
31453
31481
|
setSelectedTraceId(span.trace_id);
|
|
31454
31482
|
setSelectedSpanId(span.span_id);
|
|
31455
31483
|
}, []);
|
|
31456
|
-
const handleRetry =
|
|
31484
|
+
const handleRetry = useCallback12(() => {
|
|
31457
31485
|
void checkStatus();
|
|
31458
31486
|
fetchForward();
|
|
31459
31487
|
}, [checkStatus, fetchForward]);
|
|
31460
|
-
const handleEnable =
|
|
31488
|
+
const handleEnable = useCallback12(async () => {
|
|
31461
31489
|
await api.setStatus({ status: "ENABLED" });
|
|
31462
31490
|
clearFetchError();
|
|
31463
31491
|
void checkStatus();
|