@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.js
CHANGED
|
@@ -15731,8 +15731,8 @@ var SpansFilterBar = ({
|
|
|
15731
15731
|
import { Fragment as Fragment5, jsx as jsx127, jsxs as jsxs122 } from "react/jsx-runtime";
|
|
15732
15732
|
var columnHelper = createColumnHelper();
|
|
15733
15733
|
var newSpanBackgroundColor = {
|
|
15734
|
-
dark: { from: "rgba(
|
|
15735
|
-
light: { from: "rgba(255,
|
|
15734
|
+
dark: { from: "rgba(255, 193, 7, 0.14)", to: "rgba(255, 193, 7, 0)" },
|
|
15735
|
+
light: { from: "rgba(255, 213, 79, 0.45)", to: "rgba(255, 213, 79, 0)" }
|
|
15736
15736
|
};
|
|
15737
15737
|
var LABEL_BEGINNING_OF_STREAM = "This is the beginning of the stream";
|
|
15738
15738
|
var LABEL_END_OF_STREAM = "This is the end of the stream";
|
|
@@ -15808,10 +15808,8 @@ var SpansDataGridRow = memo8(
|
|
|
15808
15808
|
onClick: () => {
|
|
15809
15809
|
onSpanClick(row.original);
|
|
15810
15810
|
},
|
|
15811
|
-
sx: {
|
|
15812
|
-
|
|
15813
|
-
transition: "background-color 1200ms ease-in"
|
|
15814
|
-
},
|
|
15811
|
+
sx: { cursor: "pointer" },
|
|
15812
|
+
transition: { duration: 2.5, ease: "easeOut" },
|
|
15815
15813
|
children: row.getVisibleCells().map((cell) => {
|
|
15816
15814
|
return /* @__PURE__ */ jsx127(
|
|
15817
15815
|
TableCell,
|
|
@@ -15862,6 +15860,7 @@ var SpansDataGrid = ({
|
|
|
15862
15860
|
hasMoreBackward,
|
|
15863
15861
|
hasMoreForward,
|
|
15864
15862
|
licenseLimit,
|
|
15863
|
+
newSpanIds,
|
|
15865
15864
|
onClearSpans,
|
|
15866
15865
|
onFiltersChange,
|
|
15867
15866
|
onOrderChange,
|
|
@@ -16057,17 +16056,6 @@ var SpansDataGrid = ({
|
|
|
16057
16056
|
const totalVirtualSize = virtualizer.getTotalSize();
|
|
16058
16057
|
const paddingTop = virtualItems.length > 0 ? virtualItems[0]?.start ?? 0 : 0;
|
|
16059
16058
|
const paddingBottom = virtualItems.length > 0 ? totalVirtualSize - (virtualItems.at(-1)?.end ?? 0) : totalVirtualSize;
|
|
16060
|
-
const seenSpanIdsRef = useRef6(void 0);
|
|
16061
|
-
seenSpanIdsRef.current ??= new Set((filteredSpans ?? []).map((span) => span.span_id));
|
|
16062
|
-
useLayoutEffect3(() => {
|
|
16063
|
-
for (const virtualItem of virtualItems) {
|
|
16064
|
-
const row = displayRows[virtualItem.index];
|
|
16065
|
-
if (row) seenSpanIdsRef.current?.add(row.original.span_id);
|
|
16066
|
-
}
|
|
16067
|
-
});
|
|
16068
|
-
useEffect11(() => {
|
|
16069
|
-
if (filteredSpans?.length === 0) seenSpanIdsRef.current = void 0;
|
|
16070
|
-
}, [filteredSpans?.length]);
|
|
16071
16059
|
const lastSpanId = filteredSpans?.at(-1)?.span_id;
|
|
16072
16060
|
useLayoutEffect3(() => {
|
|
16073
16061
|
handleScroll();
|
|
@@ -16237,7 +16225,7 @@ var SpansDataGrid = ({
|
|
|
16237
16225
|
) }),
|
|
16238
16226
|
hasRows && virtualItems.map((virtualItem) => {
|
|
16239
16227
|
const row = displayRows[virtualItem.index];
|
|
16240
|
-
const isNew =
|
|
16228
|
+
const isNew = newSpanIds?.has(row.original.span_id) ?? false;
|
|
16241
16229
|
return /* @__PURE__ */ jsx127(
|
|
16242
16230
|
SpansDataGridRow,
|
|
16243
16231
|
{
|
|
@@ -16270,7 +16258,7 @@ var SpansDataGrid = ({
|
|
|
16270
16258
|
) }),
|
|
16271
16259
|
hasRows && virtualItems.map((virtualItem) => {
|
|
16272
16260
|
const row = displayRows[virtualItem.index];
|
|
16273
|
-
const isNew =
|
|
16261
|
+
const isNew = newSpanIds?.has(row.original.span_id) ?? false;
|
|
16274
16262
|
return /* @__PURE__ */ jsx127(
|
|
16275
16263
|
SpansDataGridRow,
|
|
16276
16264
|
{
|
|
@@ -16333,6 +16321,7 @@ var SpansList = (props) => {
|
|
|
16333
16321
|
hasMoreBackward: props.hasMoreBackward,
|
|
16334
16322
|
hasMoreForward: props.hasMoreForward,
|
|
16335
16323
|
licenseLimit: props.licenseLimit,
|
|
16324
|
+
newSpanIds: props.newSpanIds,
|
|
16336
16325
|
onClearSpans: props.onClearSpans,
|
|
16337
16326
|
onFiltersChange: props.onFiltersChange,
|
|
16338
16327
|
onOrderChange: props.onOrderChange,
|
|
@@ -19416,11 +19405,14 @@ function useSpansWebSocket(options) {
|
|
|
19416
19405
|
|
|
19417
19406
|
// src/hooks/use-spans.ts
|
|
19418
19407
|
var PAGE_SIZE = 100;
|
|
19408
|
+
var NEW_SPAN_HIGHLIGHT_WINDOW_MS = 5e3;
|
|
19419
19409
|
var useSpans = () => {
|
|
19420
19410
|
const api = useAppInspectorApi();
|
|
19421
19411
|
const { onWsClose, onWsOpen, status, wsEnabled } = useAppInspectorStatus();
|
|
19422
19412
|
const { addPage, clear: clearCompute, result: computeResult, retryWorker, setFilters: setComputeFilters, workerError } = useSpansCompute();
|
|
19423
19413
|
const spanMapRef = useRef11(/* @__PURE__ */ new Map());
|
|
19414
|
+
const newSpanIdsRef = useRef11(/* @__PURE__ */ new Set());
|
|
19415
|
+
const caughtUpRef = useRef11(false);
|
|
19424
19416
|
const [filters, setFiltersState] = useState12(EMPTY_FILTERS);
|
|
19425
19417
|
const setFilters = useCallback8((next) => {
|
|
19426
19418
|
setFiltersState(next);
|
|
@@ -19450,6 +19442,8 @@ var useSpans = () => {
|
|
|
19450
19442
|
}, []);
|
|
19451
19443
|
const resetCorpus = useCallback8(() => {
|
|
19452
19444
|
spanMapRef.current.clear();
|
|
19445
|
+
newSpanIdsRef.current.clear();
|
|
19446
|
+
caughtUpRef.current = false;
|
|
19453
19447
|
clearCompute();
|
|
19454
19448
|
}, [clearCompute]);
|
|
19455
19449
|
const [epoch, setEpoch] = useState12();
|
|
@@ -19536,6 +19530,7 @@ var useSpans = () => {
|
|
|
19536
19530
|
setFetchError(void 0);
|
|
19537
19531
|
setHasMoreBackward(hasMoreBackward2);
|
|
19538
19532
|
setHasMoreForward(hasMoreForward2);
|
|
19533
|
+
if (!hasMoreForward2) caughtUpRef.current = true;
|
|
19539
19534
|
setSpansLoaded(true);
|
|
19540
19535
|
},
|
|
19541
19536
|
onError: (error) => {
|
|
@@ -19546,6 +19541,11 @@ var useSpans = () => {
|
|
|
19546
19541
|
// Ordering is owned by the compute backend, so no main-thread sortComparator is needed.
|
|
19547
19542
|
onPageFetched: (direction, items) => {
|
|
19548
19543
|
for (const span of items) {
|
|
19544
|
+
if (direction === "forward" && caughtUpRef.current && !spanMapRef.current.has(span.span_id)) {
|
|
19545
|
+
const { span_id: spanId } = span;
|
|
19546
|
+
newSpanIdsRef.current.add(spanId);
|
|
19547
|
+
setTimeout(() => newSpanIdsRef.current.delete(spanId), NEW_SPAN_HIGHLIGHT_WINDOW_MS);
|
|
19548
|
+
}
|
|
19549
19549
|
spanMapRef.current.set(span.span_id, span);
|
|
19550
19550
|
}
|
|
19551
19551
|
addPage(direction, items.map((span) => toSpanFilterProjection(span)));
|
|
@@ -19623,6 +19623,7 @@ var useSpans = () => {
|
|
|
19623
19623
|
const spanMap = spanMapRef.current;
|
|
19624
19624
|
return computeResult.orderedFilteredIds.map((id2) => spanMap.get(id2)).filter((span) => span !== void 0);
|
|
19625
19625
|
}, [computeResult, spansLoaded]);
|
|
19626
|
+
const newSpanIds = newSpanIdsRef.current;
|
|
19626
19627
|
return {
|
|
19627
19628
|
clearFetchError,
|
|
19628
19629
|
clearingSpans,
|
|
@@ -19642,6 +19643,7 @@ var useSpans = () => {
|
|
|
19642
19643
|
hasMoreBackward,
|
|
19643
19644
|
hasMoreForward,
|
|
19644
19645
|
licenseLimit,
|
|
19646
|
+
newSpanIds,
|
|
19645
19647
|
producerValues: computeResult.producerValues,
|
|
19646
19648
|
retryWorker,
|
|
19647
19649
|
search,
|
|
@@ -33050,6 +33052,7 @@ var SpansListPage = () => {
|
|
|
33050
33052
|
hasMoreBackward,
|
|
33051
33053
|
hasMoreForward,
|
|
33052
33054
|
licenseLimit,
|
|
33055
|
+
newSpanIds,
|
|
33053
33056
|
producerValues,
|
|
33054
33057
|
retryWorker,
|
|
33055
33058
|
search,
|
|
@@ -33191,6 +33194,7 @@ var SpansListPage = () => {
|
|
|
33191
33194
|
hasMoreBackward,
|
|
33192
33195
|
hasMoreForward,
|
|
33193
33196
|
licenseLimit,
|
|
33197
|
+
newSpanIds,
|
|
33194
33198
|
onClearSpans: clearSpansSync,
|
|
33195
33199
|
onFetchForward: fetchForward,
|
|
33196
33200
|
onFiltersChange: setFilters,
|