@localstack/appinspector-ui 1.0.176 → 1.0.177
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 +23 -19
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +23 -19
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -15707,8 +15707,8 @@ var SpansFilterBar = ({
|
|
|
15707
15707
|
var import_jsx_runtime127 = require("react/jsx-runtime");
|
|
15708
15708
|
var columnHelper = createColumnHelper();
|
|
15709
15709
|
var newSpanBackgroundColor = {
|
|
15710
|
-
dark: { from: "rgba(
|
|
15711
|
-
light: { from: "rgba(255,
|
|
15710
|
+
dark: { from: "rgba(255, 193, 7, 0.14)", to: "rgba(255, 193, 7, 0)" },
|
|
15711
|
+
light: { from: "rgba(255, 213, 79, 0.45)", to: "rgba(255, 213, 79, 0)" }
|
|
15712
15712
|
};
|
|
15713
15713
|
var LABEL_BEGINNING_OF_STREAM = "This is the beginning of the stream";
|
|
15714
15714
|
var LABEL_END_OF_STREAM = "This is the end of the stream";
|
|
@@ -15784,10 +15784,8 @@ var SpansDataGridRow = (0, import_react38.memo)(
|
|
|
15784
15784
|
onClick: () => {
|
|
15785
15785
|
onSpanClick(row.original);
|
|
15786
15786
|
},
|
|
15787
|
-
sx: {
|
|
15788
|
-
|
|
15789
|
-
transition: "background-color 1200ms ease-in"
|
|
15790
|
-
},
|
|
15787
|
+
sx: { cursor: "pointer" },
|
|
15788
|
+
transition: { duration: 2.5, ease: "easeOut" },
|
|
15791
15789
|
children: row.getVisibleCells().map((cell) => {
|
|
15792
15790
|
return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
|
|
15793
15791
|
import_material7.TableCell,
|
|
@@ -15838,6 +15836,7 @@ var SpansDataGrid = ({
|
|
|
15838
15836
|
hasMoreBackward,
|
|
15839
15837
|
hasMoreForward,
|
|
15840
15838
|
licenseLimit,
|
|
15839
|
+
newSpanIds,
|
|
15841
15840
|
onClearSpans,
|
|
15842
15841
|
onFiltersChange,
|
|
15843
15842
|
onOrderChange,
|
|
@@ -16033,17 +16032,6 @@ var SpansDataGrid = ({
|
|
|
16033
16032
|
const totalVirtualSize = virtualizer.getTotalSize();
|
|
16034
16033
|
const paddingTop = virtualItems.length > 0 ? virtualItems[0]?.start ?? 0 : 0;
|
|
16035
16034
|
const paddingBottom = virtualItems.length > 0 ? totalVirtualSize - (virtualItems.at(-1)?.end ?? 0) : totalVirtualSize;
|
|
16036
|
-
const seenSpanIdsRef = (0, import_react38.useRef)(void 0);
|
|
16037
|
-
seenSpanIdsRef.current ??= new Set((filteredSpans ?? []).map((span) => span.span_id));
|
|
16038
|
-
(0, import_react38.useLayoutEffect)(() => {
|
|
16039
|
-
for (const virtualItem of virtualItems) {
|
|
16040
|
-
const row = displayRows[virtualItem.index];
|
|
16041
|
-
if (row) seenSpanIdsRef.current?.add(row.original.span_id);
|
|
16042
|
-
}
|
|
16043
|
-
});
|
|
16044
|
-
(0, import_react38.useEffect)(() => {
|
|
16045
|
-
if (filteredSpans?.length === 0) seenSpanIdsRef.current = void 0;
|
|
16046
|
-
}, [filteredSpans?.length]);
|
|
16047
16035
|
const lastSpanId = filteredSpans?.at(-1)?.span_id;
|
|
16048
16036
|
(0, import_react38.useLayoutEffect)(() => {
|
|
16049
16037
|
handleScroll();
|
|
@@ -16213,7 +16201,7 @@ var SpansDataGrid = ({
|
|
|
16213
16201
|
) }),
|
|
16214
16202
|
hasRows && virtualItems.map((virtualItem) => {
|
|
16215
16203
|
const row = displayRows[virtualItem.index];
|
|
16216
|
-
const isNew =
|
|
16204
|
+
const isNew = newSpanIds?.has(row.original.span_id) ?? false;
|
|
16217
16205
|
return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
|
|
16218
16206
|
SpansDataGridRow,
|
|
16219
16207
|
{
|
|
@@ -16246,7 +16234,7 @@ var SpansDataGrid = ({
|
|
|
16246
16234
|
) }),
|
|
16247
16235
|
hasRows && virtualItems.map((virtualItem) => {
|
|
16248
16236
|
const row = displayRows[virtualItem.index];
|
|
16249
|
-
const isNew =
|
|
16237
|
+
const isNew = newSpanIds?.has(row.original.span_id) ?? false;
|
|
16250
16238
|
return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
|
|
16251
16239
|
SpansDataGridRow,
|
|
16252
16240
|
{
|
|
@@ -16309,6 +16297,7 @@ var SpansList = (props) => {
|
|
|
16309
16297
|
hasMoreBackward: props.hasMoreBackward,
|
|
16310
16298
|
hasMoreForward: props.hasMoreForward,
|
|
16311
16299
|
licenseLimit: props.licenseLimit,
|
|
16300
|
+
newSpanIds: props.newSpanIds,
|
|
16312
16301
|
onClearSpans: props.onClearSpans,
|
|
16313
16302
|
onFiltersChange: props.onFiltersChange,
|
|
16314
16303
|
onOrderChange: props.onOrderChange,
|
|
@@ -19392,11 +19381,14 @@ function useSpansWebSocket(options) {
|
|
|
19392
19381
|
|
|
19393
19382
|
// src/hooks/use-spans.ts
|
|
19394
19383
|
var PAGE_SIZE = 100;
|
|
19384
|
+
var NEW_SPAN_HIGHLIGHT_WINDOW_MS = 5e3;
|
|
19395
19385
|
var useSpans = () => {
|
|
19396
19386
|
const api = useAppInspectorApi();
|
|
19397
19387
|
const { onWsClose, onWsOpen, status, wsEnabled } = useAppInspectorStatus();
|
|
19398
19388
|
const { addPage, clear: clearCompute, result: computeResult, retryWorker, setFilters: setComputeFilters, workerError } = useSpansCompute();
|
|
19399
19389
|
const spanMapRef = (0, import_react48.useRef)(/* @__PURE__ */ new Map());
|
|
19390
|
+
const newSpanIdsRef = (0, import_react48.useRef)(/* @__PURE__ */ new Set());
|
|
19391
|
+
const caughtUpRef = (0, import_react48.useRef)(false);
|
|
19400
19392
|
const [filters, setFiltersState] = (0, import_react48.useState)(EMPTY_FILTERS);
|
|
19401
19393
|
const setFilters = (0, import_react48.useCallback)((next) => {
|
|
19402
19394
|
setFiltersState(next);
|
|
@@ -19426,6 +19418,8 @@ var useSpans = () => {
|
|
|
19426
19418
|
}, []);
|
|
19427
19419
|
const resetCorpus = (0, import_react48.useCallback)(() => {
|
|
19428
19420
|
spanMapRef.current.clear();
|
|
19421
|
+
newSpanIdsRef.current.clear();
|
|
19422
|
+
caughtUpRef.current = false;
|
|
19429
19423
|
clearCompute();
|
|
19430
19424
|
}, [clearCompute]);
|
|
19431
19425
|
const [epoch, setEpoch] = (0, import_react48.useState)();
|
|
@@ -19512,6 +19506,7 @@ var useSpans = () => {
|
|
|
19512
19506
|
setFetchError(void 0);
|
|
19513
19507
|
setHasMoreBackward(hasMoreBackward2);
|
|
19514
19508
|
setHasMoreForward(hasMoreForward2);
|
|
19509
|
+
if (!hasMoreForward2) caughtUpRef.current = true;
|
|
19515
19510
|
setSpansLoaded(true);
|
|
19516
19511
|
},
|
|
19517
19512
|
onError: (error) => {
|
|
@@ -19522,6 +19517,11 @@ var useSpans = () => {
|
|
|
19522
19517
|
// Ordering is owned by the compute backend, so no main-thread sortComparator is needed.
|
|
19523
19518
|
onPageFetched: (direction, items) => {
|
|
19524
19519
|
for (const span of items) {
|
|
19520
|
+
if (direction === "forward" && caughtUpRef.current && !spanMapRef.current.has(span.span_id)) {
|
|
19521
|
+
const { span_id: spanId } = span;
|
|
19522
|
+
newSpanIdsRef.current.add(spanId);
|
|
19523
|
+
setTimeout(() => newSpanIdsRef.current.delete(spanId), NEW_SPAN_HIGHLIGHT_WINDOW_MS);
|
|
19524
|
+
}
|
|
19525
19525
|
spanMapRef.current.set(span.span_id, span);
|
|
19526
19526
|
}
|
|
19527
19527
|
addPage(direction, items.map((span) => toSpanFilterProjection(span)));
|
|
@@ -19599,6 +19599,7 @@ var useSpans = () => {
|
|
|
19599
19599
|
const spanMap = spanMapRef.current;
|
|
19600
19600
|
return computeResult.orderedFilteredIds.map((id2) => spanMap.get(id2)).filter((span) => span !== void 0);
|
|
19601
19601
|
}, [computeResult, spansLoaded]);
|
|
19602
|
+
const newSpanIds = newSpanIdsRef.current;
|
|
19602
19603
|
return {
|
|
19603
19604
|
clearFetchError,
|
|
19604
19605
|
clearingSpans,
|
|
@@ -19618,6 +19619,7 @@ var useSpans = () => {
|
|
|
19618
19619
|
hasMoreBackward,
|
|
19619
19620
|
hasMoreForward,
|
|
19620
19621
|
licenseLimit,
|
|
19622
|
+
newSpanIds,
|
|
19621
19623
|
producerValues: computeResult.producerValues,
|
|
19622
19624
|
retryWorker,
|
|
19623
19625
|
search,
|
|
@@ -33026,6 +33028,7 @@ var SpansListPage = () => {
|
|
|
33026
33028
|
hasMoreBackward,
|
|
33027
33029
|
hasMoreForward,
|
|
33028
33030
|
licenseLimit,
|
|
33031
|
+
newSpanIds,
|
|
33029
33032
|
producerValues,
|
|
33030
33033
|
retryWorker,
|
|
33031
33034
|
search,
|
|
@@ -33167,6 +33170,7 @@ var SpansListPage = () => {
|
|
|
33167
33170
|
hasMoreBackward,
|
|
33168
33171
|
hasMoreForward,
|
|
33169
33172
|
licenseLimit,
|
|
33173
|
+
newSpanIds,
|
|
33170
33174
|
onClearSpans: clearSpansSync,
|
|
33171
33175
|
onFetchForward: fetchForward,
|
|
33172
33176
|
onFiltersChange: setFilters,
|