@localstack/appinspector-ui 1.0.40 → 1.0.41

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 CHANGED
@@ -4420,13 +4420,10 @@ var TraceGraph = ({
4420
4420
  initialFocusEventId,
4421
4421
  onEventSelect,
4422
4422
  onRefresh,
4423
- spans,
4424
- viewPortPixelWidth
4423
+ spans
4425
4424
  }) => {
4426
4425
  const [nodes, setNodes, onNodesChange] = (0, import_react21.useNodesState)([]);
4427
4426
  const [edges, setEdges] = (0, import_react22.useState)([]);
4428
- const [initialViewSet, setInitialViewSet] = (0, import_react22.useState)(false);
4429
- const { fitView, setCenter } = (0, import_react21.useReactFlow)();
4430
4427
  (0, import_react22.useEffect)(() => {
4431
4428
  const spansMap = /* @__PURE__ */ new Map();
4432
4429
  const rootSpans = [];
@@ -4462,21 +4459,6 @@ var TraceGraph = ({
4462
4459
  setNodes(layoutedNodes);
4463
4460
  setEdges(layoutedEdges);
4464
4461
  }, [spans.data, initialFocusEventId, setNodes]);
4465
- (0, import_react22.useEffect)(() => {
4466
- const shouldSetInitialView = !spans.loading && nodes.length > 0 && !initialViewSet;
4467
- if (shouldSetInitialView) {
4468
- if (initialFocusEventId) {
4469
- const focusNode = nodes.find((node) => node.id === initialFocusEventId);
4470
- if (focusNode) {
4471
- void fitView({ maxZoom: 0.8, nodes: [focusNode], padding: 0.2 });
4472
- onEventSelect(focusNode.data.event);
4473
- }
4474
- } else {
4475
- void fitView({ duration: 500 });
4476
- }
4477
- setInitialViewSet(true);
4478
- }
4479
- }, [spans.loading, nodes, initialFocusEventId, viewPortPixelWidth, setCenter, fitView, onEventSelect, initialViewSet]);
4480
4462
  const theme = (0, import_material18.useTheme)();
4481
4463
  return /* @__PURE__ */ (0, import_jsx_runtime139.jsxs)(import_jsx_runtime139.Fragment, { children: [
4482
4464
  spans.error && /* @__PURE__ */ (0, import_jsx_runtime139.jsxs)(
@@ -4497,16 +4479,16 @@ var TraceGraph = ({
4497
4479
  import_react21.ReactFlow,
4498
4480
  {
4499
4481
  "data-testid": "trace-graph",
4500
- defaultViewport: { x: 0, y: 0, zoom: 1 },
4501
4482
  edges,
4502
4483
  fitView: true,
4484
+ fitViewOptions: initialFocusEventId ? { maxZoom: 1, nodes: [{ id: initialFocusEventId }], padding: 0.2 } : void 0,
4503
4485
  maxZoom: 1.5,
4504
4486
  minZoom: 0.1,
4505
4487
  nodes,
4506
4488
  nodesDraggable: false,
4507
4489
  nodeTypes,
4508
4490
  onNodeClick: (_event, node) => {
4509
- onEventSelect(node.data.event);
4491
+ onEventSelect(node.data.event.span_id);
4510
4492
  },
4511
4493
  onNodesChange,
4512
4494
  selectNodesOnDrag: false,
@@ -4571,8 +4553,7 @@ var TraceGraphView = ({
4571
4553
  spans,
4572
4554
  status,
4573
4555
  statusError,
4574
- traceId,
4575
- viewPortPixelWidth
4556
+ traceId
4576
4557
  }) => {
4577
4558
  const shouldShowStatusMessage = Boolean(statusError) || status?.status === "DISABLED";
4578
4559
  return /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(
@@ -4631,8 +4612,7 @@ var TraceGraphView = ({
4631
4612
  data: spans,
4632
4613
  error: fetchError,
4633
4614
  loading
4634
- },
4635
- viewPortPixelWidth
4615
+ }
4636
4616
  }
4637
4617
  ) })
4638
4618
  }
@@ -4671,35 +4651,20 @@ var TraceGraphPage = ({ onClose, spanId, traceId }) => {
4671
4651
  void fetchSpans();
4672
4652
  }, [fetchSpans]);
4673
4653
  const [open, setOpen] = (0, import_react24.useState)(true);
4674
- const [selectedEvent, setSelectedEvent] = (0, import_react24.useState)();
4675
- const [viewPortPixelWidth, setViewPortPixelWidth] = (0, import_react24.useState)(0);
4676
- const { checkStatus, error: statusError, status } = useStatus();
4677
- const calculateDrawerWidth = (0, import_react24.useCallback)(() => {
4678
- const percentageMatch = /(\d+)%/.exec(DRAWER_WIDTH);
4679
- if (percentageMatch && open) {
4680
- const percentage = Number.parseInt(percentageMatch[1], 10);
4681
- return window.innerWidth * percentage / 100;
4682
- }
4683
- return 0;
4684
- }, [open]);
4654
+ const [selectedEvent, setSelectedEvent] = (0, import_react24.useState)(() => spans?.find((span) => span.span_id === spanId));
4655
+ const spansReference = (0, import_react24.useRef)();
4685
4656
  (0, import_react24.useEffect)(() => {
4686
- const updateViewportWidth = () => {
4687
- const totalWidth = window.innerWidth;
4688
- const drawerPixelWidth = open ? calculateDrawerWidth() : 0;
4689
- setViewPortPixelWidth(totalWidth - drawerPixelWidth);
4690
- };
4691
- updateViewportWidth();
4692
- const timeoutId = setTimeout(updateViewportWidth, 50);
4693
- window.addEventListener("resize", updateViewportWidth);
4694
- return () => {
4695
- window.removeEventListener("resize", updateViewportWidth);
4696
- clearTimeout(timeoutId);
4697
- };
4698
- }, [open, calculateDrawerWidth]);
4699
- const handleEventSelect = (0, import_react24.useCallback)((event) => {
4700
- setSelectedEvent(event);
4657
+ if (!spansReference.current && spans) {
4658
+ setSelectedEvent(spans.find((span) => span.span_id === spanId));
4659
+ spansReference.current = spans;
4660
+ }
4661
+ }, [spans, setSelectedEvent, spanId]);
4662
+ const { checkStatus, error: statusError, status } = useStatus();
4663
+ const handleEventSelect = (0, import_react24.useCallback)((spanId2) => {
4664
+ const span = spans?.find((s) => s.span_id === spanId2);
4665
+ setSelectedEvent(span);
4701
4666
  setOpen(true);
4702
- }, []);
4667
+ }, [spans]);
4703
4668
  const handleRetry = (0, import_react24.useCallback)(() => {
4704
4669
  void checkStatus();
4705
4670
  }, [checkStatus]);
@@ -4724,8 +4689,7 @@ var TraceGraphPage = ({ onClose, spanId, traceId }) => {
4724
4689
  spans,
4725
4690
  status,
4726
4691
  statusError,
4727
- traceId,
4728
- viewPortPixelWidth
4692
+ traceId
4729
4693
  }
4730
4694
  );
4731
4695
  };