Skip to content

Commit 27d4fa4

Browse files
committed
chore: update grid props in kendo react ecommerce astro app
1 parent 03ecb26 commit 27d4fa4

File tree

1 file changed

+10
-37
lines changed
  • examples/kendo-react-e-commerce-astro-app/src/components

1 file changed

+10
-37
lines changed

examples/kendo-react-e-commerce-astro-app/src/components/AdminView.tsx

Lines changed: 10 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import * as React from "react";
2-
import { getter } from "@progress/kendo-react-common";
32
import {
43
Grid,
54
GridColumn,
@@ -8,16 +7,14 @@ import {
87
getSelectedState,
98
GridKeyDownEvent,
109
getSelectedStateFromKeyDown,
11-
GridSortChangeEvent,
12-
GridPageChangeEvent,
10+
GridSortChangeEvent
1311
} from "@progress/kendo-react-grid";
1412
import {
1513
ChartWizard,
1614
ChartWizardDataRow,
1715
getWizardDataFromGridSelection,
1816
} from "@progress/kendo-react-chart-wizard";
1917
import { Button } from "@progress/kendo-react-buttons";
20-
import { orderBy } from "@progress/kendo-data-query";
2118
import { chartAreaStackedIcon } from "@progress/kendo-svg-icons";
2219
import { sampleData } from "../data/shared-gd-sampleChartData";
2320
import { useStore } from "@nanostores/react";
@@ -33,21 +30,14 @@ const translations = {
3330
};
3431

3532
const DATA_ITEM_KEY = "ID";
36-
const SELECTED_FIELD = "selected";
37-
const idGetter = getter(DATA_ITEM_KEY);
3833

3934
interface SelectedState {
4035
[id: string]: boolean | number[];
4136
}
4237

43-
interface PageState {
44-
skip: number;
45-
take: number;
46-
}
47-
4838
const AdminView: React.FC = () => {
49-
const language = useStore(selectedLanguage);
50-
const t = translations[language];
39+
const language = useStore(selectedLanguage);
40+
const t = translations[language];
5141
const gridRef = React.useRef<GridHandle>(null);
5242
const [selectedState, setSelectedState] = React.useState<SelectedState>({});
5343
const [sort, setSort] = React.useState<{ field: string; dir: "asc" | "desc" }[]>([
@@ -57,21 +47,6 @@ const AdminView: React.FC = () => {
5747
const [chartData, setChartData] = React.useState<ChartWizardDataRow[]>([]);
5848
const [top3SalesData, setTop3SalesData] = React.useState<ChartWizardDataRow[]>([]);
5949
const [top3Visible, setTop3Visible] = React.useState<boolean>(false);
60-
const [page, setPage] = React.useState<PageState>({ skip: 0, take: 4 });
61-
62-
const pageChange = (event: GridPageChangeEvent) => {
63-
setPage({
64-
skip: event.page.skip,
65-
take: event.page.take,
66-
});
67-
};
68-
69-
const data = sampleData.map((item) => ({
70-
...item,
71-
[SELECTED_FIELD]: selectedState[idGetter(item)],
72-
}));
73-
74-
const pagedData = orderBy(data, sort).slice(page.skip, page.skip + page.take);
7550

7651
const onSelectionChange = (event: GridSelectionChangeEvent) => {
7752
const newSelectedState = getSelectedState({
@@ -120,8 +95,7 @@ const AdminView: React.FC = () => {
12095
const sortedTop3Sales = selectedData
12196
.sort(
12297
(a, b) =>
123-
b.find((field) => field.field === "Total Sales")?.value -
124-
a.find((field) => field.field === "Total Sales")?.value
98+
(b["Total Sales"]?.value || 0) - (a["Total Sales"]?.value || 0)
12599
)
126100
.slice(0, 3);
127101

@@ -156,14 +130,13 @@ const AdminView: React.FC = () => {
156130
<Grid
157131
ref={gridRef}
158132
style={{ height: "500px" }}
159-
data={pagedData}
133+
data={sampleData}
160134
dataItemKey={DATA_ITEM_KEY}
161-
selectedField={SELECTED_FIELD}
162-
skip={page.skip}
163-
take={page.take}
164-
total={data.length}
135+
autoProcessData={true}
136+
defaultSkip={0}
137+
defaultTake={4}
138+
total={sampleData.length}
165139
pageable={true}
166-
onPageChange={pageChange}
167140
selectable={{
168141
enabled: true,
169142
drag: true,
@@ -178,7 +151,7 @@ const AdminView: React.FC = () => {
178151
setSort(e.sort as { field: string; dir: "asc" | "desc" }[]);
179152
}}
180153
>
181-
<GridColumn field="URL" title={t.grid.productTitle} cell={URLImageCell} />
154+
<GridColumn field="URL" title={t.grid.productTitle} cells={{ data: URLImageCell }} />
182155
<GridColumn field="Product" title={t.grid.nameTitle} />
183156
<GridColumn field="SKU" title={t.grid.skuTitle} />
184157
<GridColumn field="Category" title={t.grid.categoryTitle} />

0 commit comments

Comments
 (0)