@vendure/dashboard 3.5.3-master-202601050252 → 3.5.3-master-202601070244

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vendure/dashboard",
3
3
  "private": false,
4
- "version": "3.5.3-master-202601050252",
4
+ "version": "3.5.3-master-202601070244",
5
5
  "type": "module",
6
6
  "repository": {
7
7
  "type": "git",
@@ -156,8 +156,8 @@
156
156
  "@storybook/addon-vitest": "^10.0.0-beta.9",
157
157
  "@storybook/react-vite": "^10.0.0-beta.9",
158
158
  "@types/node": "^22.13.4",
159
- "@vendure/common": "^3.5.3-master-202601050252",
160
- "@vendure/core": "^3.5.3-master-202601050252",
159
+ "@vendure/common": "^3.5.3-master-202601070244",
160
+ "@vendure/core": "^3.5.3-master-202601070244",
161
161
  "@vitest/browser": "^3.2.4",
162
162
  "@vitest/coverage-v8": "^3.2.4",
163
163
  "eslint": "^9.19.0",
@@ -5,6 +5,7 @@ import {
5
5
  OrderStateCell,
6
6
  } from '@/vdb/components/shared/table-cell/order-table-cell-components.js';
7
7
  import { Button } from '@/vdb/components/ui/button.js';
8
+ import { useUserSettings } from '@/vdb/hooks/use-user-settings.js';
8
9
  import { useLingui } from '@lingui/react/macro';
9
10
  import { Link } from '@tanstack/react-router';
10
11
  import { ColumnFiltersState, SortingState } from '@tanstack/react-table';
@@ -19,6 +20,9 @@ export const WIDGET_ID = 'latest-orders-widget';
19
20
  export function LatestOrdersWidget() {
20
21
  const { t } = useLingui();
21
22
  const { dateRange } = useWidgetFilters();
23
+ const { setTableSettings, settings } = useUserSettings();
24
+ const tableSettings = settings.tableSettings?.[WIDGET_ID];
25
+
22
26
  const [sorting, setSorting] = useState<SortingState>([
23
27
  {
24
28
  id: 'orderPlacedAt',
@@ -26,7 +30,7 @@ export function LatestOrdersWidget() {
26
30
  },
27
31
  ]);
28
32
  const [page, setPage] = useState(1);
29
- const [pageSize, setPageSize] = useState(10);
33
+ const [pageSize, setPageSize] = useState(tableSettings?.pageSize ?? 10);
30
34
  const [filters, setFilters] = useState<ColumnFiltersState>([
31
35
  {
32
36
  id: 'orderPlacedAt',
@@ -39,6 +43,13 @@ export function LatestOrdersWidget() {
39
43
  },
40
44
  ]);
41
45
 
46
+ // Update page size if user settings change
47
+ useEffect(() => {
48
+ if (tableSettings?.pageSize !== undefined) {
49
+ setPageSize(tableSettings.pageSize);
50
+ }
51
+ }, [tableSettings?.pageSize]);
52
+
42
53
  // Update filters when date range changes
43
54
  useEffect(() => {
44
55
  setFilters([
@@ -54,6 +65,14 @@ export function LatestOrdersWidget() {
54
65
  ]);
55
66
  }, [dateRange]);
56
67
 
68
+ const defaultVisibility = {
69
+ code: true,
70
+ total: true,
71
+ orderPlacedAt: true,
72
+ };
73
+
74
+ const columnVisibility = tableSettings?.columnVisibility ?? defaultVisibility;
75
+
57
76
  return (
58
77
  <DashboardBaseWidget id={WIDGET_ID} title={t`Latest Orders`} description={t`Your latest orders`}>
59
78
  <PaginatedListDataTable
@@ -106,9 +125,11 @@ export function LatestOrdersWidget() {
106
125
  sorting={sorting}
107
126
  columnFilters={filters}
108
127
  listQuery={latestOrdersQuery}
109
- onPageChange={(_, page, pageSize) => {
128
+ defaultVisibility={columnVisibility}
129
+ onPageChange={(_, page, newPageSize) => {
110
130
  setPage(page);
111
- setPageSize(pageSize);
131
+ setPageSize(newPageSize);
132
+ setTableSettings(WIDGET_ID, 'pageSize', newPageSize);
112
133
  }}
113
134
  onSortChange={(_, sorting) => {
114
135
  setSorting(sorting);
@@ -116,10 +137,8 @@ export function LatestOrdersWidget() {
116
137
  onFilterChange={(_, filters) => {
117
138
  setFilters(filters);
118
139
  }}
119
- defaultVisibility={{
120
- code: true,
121
- total: true,
122
- orderPlacedAt: true,
140
+ onColumnVisibilityChange={(_, columnVisibility) => {
141
+ setTableSettings(WIDGET_ID, 'columnVisibility', columnVisibility);
123
142
  }}
124
143
  />
125
144
  </DashboardBaseWidget>