@localstack/appinspector-ui 1.0.14 → 1.0.16

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
@@ -2561,7 +2561,7 @@ var AwsServiceIcon = ({ hideTooltip, service, size = "medium", title }) => {
2561
2561
  var import_material2 = require("@mui/material");
2562
2562
  var import_jsx_runtime122 = require("react/jsx-runtime");
2563
2563
  var defaultBackgroundColor = "background.paper";
2564
- var defaultBorderColor = "text.secondary";
2564
+ var defaultBorderColor = "palette.divider";
2565
2565
  var PillCell = ({
2566
2566
  backgroundColor = defaultBackgroundColor,
2567
2567
  borderColor = defaultBorderColor,
@@ -2629,7 +2629,9 @@ var ServiceCell = ({
2629
2629
  import_material3.Typography,
2630
2630
  {
2631
2631
  sx: {
2632
- borderRight: resource ? `1px solid ${borderColor}` : "none",
2632
+ borderRightColor: resource ? borderColor : "none",
2633
+ borderRightStyle: resource ? "solid" : "none",
2634
+ borderRightWidth: resource ? "1px" : "none",
2633
2635
  fontWeight: "bold",
2634
2636
  overflow: "hidden",
2635
2637
  padding: "1px 8px",
@@ -2738,9 +2740,15 @@ var SpansDataGrid = ({
2738
2740
  loading,
2739
2741
  onClearSpans,
2740
2742
  onFilterWriteOperationsChange,
2743
+ onPageChange,
2744
+ onPageSizeChange,
2741
2745
  onRefresh,
2742
2746
  onSpanClick,
2747
+ page,
2748
+ pageSize,
2749
+ rowCount,
2743
2750
  rows,
2751
+ rowsPerPageOptions,
2744
2752
  // setRows,
2745
2753
  sortingOption = defaultSortingOption
2746
2754
  }) => {
@@ -2839,15 +2847,26 @@ var SpansDataGrid = ({
2839
2847
  getRowId: (row) => row.span_id,
2840
2848
  initialState: {
2841
2849
  pagination: {
2842
- page: 0,
2843
- pageSize: 50
2850
+ page,
2851
+ pageSize
2844
2852
  }
2845
2853
  },
2846
2854
  loading,
2855
+ onPageChange: (newPage) => {
2856
+ onPageChange(newPage);
2857
+ },
2858
+ onPageSizeChange: (newPageSize) => {
2859
+ onPageSizeChange(newPageSize);
2860
+ },
2847
2861
  onRowClick: handleRowClick,
2848
2862
  onSortModelChange: handleSortModelChange,
2863
+ page,
2864
+ pageSize,
2865
+ paginationMode: "server",
2866
+ rowCount,
2849
2867
  rowHeight: 40,
2850
2868
  rows: filteredRows,
2869
+ rowsPerPageOptions,
2851
2870
  sortModel,
2852
2871
  sx: { flexGrow: 1 }
2853
2872
  }
@@ -2880,9 +2899,15 @@ var SpansList = (props) => {
2880
2899
  loading: props.spans.loading,
2881
2900
  onClearSpans: props.onClearSpans,
2882
2901
  onFilterWriteOperationsChange: props.onFilterWriteOperationsChange,
2902
+ onPageChange: props.onPageChange,
2903
+ onPageSizeChange: props.onPageSizeChange,
2883
2904
  onRefresh: props.onRefresh,
2884
2905
  onSpanClick: props.onSpanClick,
2906
+ page: props.page,
2907
+ pageSize: props.pageSize,
2908
+ rowCount: props.spanCount,
2885
2909
  rows: props.spans.data ?? [],
2910
+ rowsPerPageOptions: props.spansPerPageOptions,
2886
2911
  sortingOption: { field: "start_time_unix_nano", sort: "asc" }
2887
2912
  }
2888
2913
  )
@@ -3404,24 +3429,37 @@ var SpansListPage = () => {
3404
3429
  const [loading, setLoading] = (0, import_react8.useState)(false);
3405
3430
  const hasFetched = (0, import_react8.useRef)(false);
3406
3431
  const [filterWriteOperations, setFilterWriteOperations] = useLocalStorage("filterWriteOperations", true);
3432
+ const mapPageToNextCursor = (0, import_react8.useRef)({});
3433
+ const [page, setPage] = (0, import_react8.useState)(0);
3434
+ const [pageSize, setPageSize] = (0, import_react8.useState)(100);
3435
+ const [spansPerPageOptions] = (0, import_react8.useState)(() => [25, 50, 100]);
3436
+ const [spanCount, setSpanCount] = (0, import_react8.useState)();
3437
+ const queryOptions = (0, import_react8.useMemo)(() => {
3438
+ return {
3439
+ is_write_operation: filterWriteOperations ? true : void 0,
3440
+ limit: pageSize,
3441
+ pagination_token: mapPageToNextCursor.current[page - 1]
3442
+ };
3443
+ }, [filterWriteOperations, pageSize, page]);
3407
3444
  const [fetchError, setFetchError] = (0, import_react8.useState)();
3408
3445
  const { checkStatus, error: statusError, status } = useStatus();
3409
3446
  const fetchSpans = (0, import_react8.useCallback)(async () => {
3410
3447
  setLoading(true);
3411
3448
  try {
3412
- const response = await api.getSpans({
3413
- is_write_operation: filterWriteOperations ? true : void 0,
3414
- limit: 100
3415
- });
3449
+ const response = await api.getSpans(queryOptions);
3416
3450
  setSpans(response.spans);
3451
+ setSpanCount(response.pagination.total_count);
3417
3452
  setFetchError(void 0);
3453
+ if (response.pagination.cursor) {
3454
+ mapPageToNextCursor.current[page] = response.pagination.cursor;
3455
+ }
3418
3456
  } catch (error) {
3419
3457
  console.error(error);
3420
3458
  setFetchError(error instanceof Error ? error : new Error("Unknown error", { cause: error }));
3421
3459
  } finally {
3422
3460
  setLoading(false);
3423
3461
  }
3424
- }, [api, filterWriteOperations]);
3462
+ }, [api, page, queryOptions]);
3425
3463
  const fetchSpansSync = (0, import_react8.useCallback)(() => {
3426
3464
  void fetchSpans();
3427
3465
  }, [fetchSpans]);
@@ -3487,17 +3525,23 @@ var SpansListPage = () => {
3487
3525
  onFilterWriteOperationsChange: (value) => {
3488
3526
  setFilterWriteOperations(value);
3489
3527
  },
3528
+ onPageChange: setPage,
3529
+ onPageSizeChange: setPageSize,
3490
3530
  onRefresh: () => {
3491
3531
  fetchSpansSync();
3492
3532
  },
3493
3533
  onSpanClick: (span) => {
3494
3534
  navigateToSpan(span);
3495
3535
  },
3536
+ page,
3537
+ pageSize,
3538
+ spanCount,
3496
3539
  spans: {
3497
3540
  data: spans,
3498
3541
  error: fetchError,
3499
3542
  loading
3500
- }
3543
+ },
3544
+ spansPerPageOptions
3501
3545
  }
3502
3546
  )
3503
3547
  }
@@ -3771,8 +3815,8 @@ var ServiceNode = (0, import_react12.memo)(function ServiceNode2({ data, selecte
3771
3815
  /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
3772
3816
  ServiceCell,
3773
3817
  {
3774
- borderColor: selected ? "text.primary" : "text.secondary",
3775
- borderWidth: selected ? "1.5px" : "1px",
3818
+ borderColor: selected ? "text.primary" : void 0,
3819
+ borderWidth: selected ? "1.5px" : void 0,
3776
3820
  height: "32px",
3777
3821
  resource: data.event.resource_name,
3778
3822
  service: data.event.service_name,