@localstack/appinspector-ui 1.0.15 → 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
@@ -2740,9 +2740,15 @@ var SpansDataGrid = ({
2740
2740
  loading,
2741
2741
  onClearSpans,
2742
2742
  onFilterWriteOperationsChange,
2743
+ onPageChange,
2744
+ onPageSizeChange,
2743
2745
  onRefresh,
2744
2746
  onSpanClick,
2747
+ page,
2748
+ pageSize,
2749
+ rowCount,
2745
2750
  rows,
2751
+ rowsPerPageOptions,
2746
2752
  // setRows,
2747
2753
  sortingOption = defaultSortingOption
2748
2754
  }) => {
@@ -2841,15 +2847,26 @@ var SpansDataGrid = ({
2841
2847
  getRowId: (row) => row.span_id,
2842
2848
  initialState: {
2843
2849
  pagination: {
2844
- page: 0,
2845
- pageSize: 50
2850
+ page,
2851
+ pageSize
2846
2852
  }
2847
2853
  },
2848
2854
  loading,
2855
+ onPageChange: (newPage) => {
2856
+ onPageChange(newPage);
2857
+ },
2858
+ onPageSizeChange: (newPageSize) => {
2859
+ onPageSizeChange(newPageSize);
2860
+ },
2849
2861
  onRowClick: handleRowClick,
2850
2862
  onSortModelChange: handleSortModelChange,
2863
+ page,
2864
+ pageSize,
2865
+ paginationMode: "server",
2866
+ rowCount,
2851
2867
  rowHeight: 40,
2852
2868
  rows: filteredRows,
2869
+ rowsPerPageOptions,
2853
2870
  sortModel,
2854
2871
  sx: { flexGrow: 1 }
2855
2872
  }
@@ -2882,9 +2899,15 @@ var SpansList = (props) => {
2882
2899
  loading: props.spans.loading,
2883
2900
  onClearSpans: props.onClearSpans,
2884
2901
  onFilterWriteOperationsChange: props.onFilterWriteOperationsChange,
2902
+ onPageChange: props.onPageChange,
2903
+ onPageSizeChange: props.onPageSizeChange,
2885
2904
  onRefresh: props.onRefresh,
2886
2905
  onSpanClick: props.onSpanClick,
2906
+ page: props.page,
2907
+ pageSize: props.pageSize,
2908
+ rowCount: props.spanCount,
2887
2909
  rows: props.spans.data ?? [],
2910
+ rowsPerPageOptions: props.spansPerPageOptions,
2888
2911
  sortingOption: { field: "start_time_unix_nano", sort: "asc" }
2889
2912
  }
2890
2913
  )
@@ -3406,24 +3429,37 @@ var SpansListPage = () => {
3406
3429
  const [loading, setLoading] = (0, import_react8.useState)(false);
3407
3430
  const hasFetched = (0, import_react8.useRef)(false);
3408
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]);
3409
3444
  const [fetchError, setFetchError] = (0, import_react8.useState)();
3410
3445
  const { checkStatus, error: statusError, status } = useStatus();
3411
3446
  const fetchSpans = (0, import_react8.useCallback)(async () => {
3412
3447
  setLoading(true);
3413
3448
  try {
3414
- const response = await api.getSpans({
3415
- is_write_operation: filterWriteOperations ? true : void 0,
3416
- limit: 100
3417
- });
3449
+ const response = await api.getSpans(queryOptions);
3418
3450
  setSpans(response.spans);
3451
+ setSpanCount(response.pagination.total_count);
3419
3452
  setFetchError(void 0);
3453
+ if (response.pagination.cursor) {
3454
+ mapPageToNextCursor.current[page] = response.pagination.cursor;
3455
+ }
3420
3456
  } catch (error) {
3421
3457
  console.error(error);
3422
3458
  setFetchError(error instanceof Error ? error : new Error("Unknown error", { cause: error }));
3423
3459
  } finally {
3424
3460
  setLoading(false);
3425
3461
  }
3426
- }, [api, filterWriteOperations]);
3462
+ }, [api, page, queryOptions]);
3427
3463
  const fetchSpansSync = (0, import_react8.useCallback)(() => {
3428
3464
  void fetchSpans();
3429
3465
  }, [fetchSpans]);
@@ -3489,17 +3525,23 @@ var SpansListPage = () => {
3489
3525
  onFilterWriteOperationsChange: (value) => {
3490
3526
  setFilterWriteOperations(value);
3491
3527
  },
3528
+ onPageChange: setPage,
3529
+ onPageSizeChange: setPageSize,
3492
3530
  onRefresh: () => {
3493
3531
  fetchSpansSync();
3494
3532
  },
3495
3533
  onSpanClick: (span) => {
3496
3534
  navigateToSpan(span);
3497
3535
  },
3536
+ page,
3537
+ pageSize,
3538
+ spanCount,
3498
3539
  spans: {
3499
3540
  data: spans,
3500
3541
  error: fetchError,
3501
3542
  loading
3502
- }
3543
+ },
3544
+ spansPerPageOptions
3503
3545
  }
3504
3546
  )
3505
3547
  }