1- import React , { useEffect , useState } from "react" ;
1+ import React , { useEffect , useMemo , useState } from "react" ;
22import ReactDOM from "react-dom/client" ;
33import "./index.css" ;
44import "igniteui-react-grids/grids/themes/light/bootstrap.css" ;
5- import { AthletesData } from "./AthletesData" ;
5+ import { AthletesData , AthletesDataItem } from "./AthletesData" ;
66
77import { IgrButton } from "igniteui-react" ;
88import {
@@ -16,19 +16,20 @@ import {
1616
1717
1818export default function GridDataExportingIndicatorSample ( ) {
19- const athletesData = new AthletesData ( ) ;
19+ const athletesData = useMemo ( ( ) => new AthletesData ( ) , [ ] ) ;
2020 const [ localData , setLocalData ] = useState ( [ ] ) ;
2121 const [ showProgress , setShowProgress ] = useState ( false ) ;
2222
2323 useEffect ( ( ) => {
24- const data : any [ ] = [ ] ;
25- for ( let i = 0 ; i < 2000 ; i += 3 ) {
24+ const data : AthletesDataItem [ ] = [ ] ;
25+ let uniqueId = 0 ;
26+ for ( let i = 0 ; i < 2000 ; i ++ ) {
2627 for ( let c = 0 ; c < athletesData . length ; c ++ ) {
27- data . push ( athletesData [ c ] ) ;
28+ data . push ( { ... athletesData [ c ] , Id : uniqueId ++ } ) ;
2829 }
2930 }
3031 setLocalData ( data ) ;
31- } , [ ] ) ;
32+ } , [ athletesData ] ) ;
3233
3334
3435 const setupProgressVisibility = ( ) => {
@@ -37,7 +38,7 @@ export default function GridDataExportingIndicatorSample() {
3738 setTimeout ( ( ) => {
3839 setShowProgress ( false ) ;
3940 } , 5000 ) ;
40- }
41+ } ;
4142
4243 return (
4344 < div className = "container sample ig-typography" >
@@ -46,7 +47,6 @@ export default function GridDataExportingIndicatorSample() {
4647 data = { localData }
4748 autoGenerate = { false }
4849 primaryKey = "Id"
49- height = "350px"
5050 >
5151 < IgrGridToolbar key = "toolbar" showProgress = { showProgress } >
5252 < IgrGridToolbarTitle key = "toolbarTitle" >
@@ -60,13 +60,13 @@ export default function GridDataExportingIndicatorSample() {
6060 </ IgrGridToolbarActions >
6161 </ IgrGridToolbar >
6262
63- < IgrColumn field = "Id" header = "ID" dataType = "number" > </ IgrColumn >
64- < IgrColumn field = "Name" header = "Name" > </ IgrColumn >
65- < IgrColumn field = "Position" header = "Position" > </ IgrColumn >
66- < IgrColumn field = "AthleteNumber" header = "Athlete Number" dataType = "number" > </ IgrColumn >
67- < IgrColumn field = "BeatsPerMinute" header = "Beats Per Minute" dataType = "number" > </ IgrColumn >
68- < IgrColumn field = "TopSpeed" header = "Top Speed" dataType = "number" > </ IgrColumn >
69- < IgrColumn field = "CountryName" header = "Country" > </ IgrColumn >
63+ < IgrColumn field = "Id" header = "ID" dataType = "number" / >
64+ < IgrColumn field = "Name" header = "Name" / >
65+ < IgrColumn field = "Position" header = "Position" / >
66+ < IgrColumn field = "AthleteNumber" header = "Athlete Number" dataType = "number" / >
67+ < IgrColumn field = "BeatsPerMinute" header = "Beats Per Minute" dataType = "number" / >
68+ < IgrColumn field = "TopSpeed" header = "Top Speed" dataType = "number" / >
69+ < IgrColumn field = "CountryName" header = "Country" / >
7070 </ IgrGrid >
7171 </ div >
7272 </ div >
0 commit comments