11import React , { useCallback , useState } from 'react' ;
2+
23import { ArrayStore } from 'devextreme-react/common/data' ;
3- import List , { type ListTypes } from 'devextreme-react/list' ;
4+ import List from 'devextreme-react/list' ;
5+ import type { ListTypes } from 'devextreme-react/list' ;
46import TileView from 'devextreme-react/tile-view' ;
7+
58import { data } from './data.ts' ;
69
10+ interface Hotel {
11+ Id : number ;
12+ Hotel_Name : string ;
13+ Address : string ;
14+ Postal_Code : string ;
15+ City : string ;
16+ Hotel_Class : string ;
17+ Price : number ;
18+ Images : { FileName : string } [ ] ;
19+ }
20+
21+ interface GroupInfo {
22+ key : string ;
23+ }
24+
725const dataSourceOptions = {
826 store : new ArrayStore ( {
927 data,
@@ -24,9 +42,9 @@ const formatCurrency = new Intl.NumberFormat(
2442 } ,
2543) . format ;
2644
27- const renderListGroup = ( group ) => < div className = "city" > { group . key } </ div > ;
45+ const renderListGroup = ( group : GroupInfo ) => < div className = "city" > { group . key } </ div > ;
2846
29- const renderListItem = ( item ) => (
47+ const renderListItem = ( item : Hotel ) => (
3048 < div >
3149 < div className = "hotel" >
3250 < div className = "name" > { item . Hotel_Name } </ div >
@@ -57,10 +75,10 @@ const App = () => {
5775 const hotel = e . addedItems [ 0 ] ;
5876 setCurrentHotel ( hotel ) ;
5977 setSelectedItemKeys ( [ hotel . Id ] ) ;
60- } , [ setCurrentHotel , setSelectedItemKeys ] ) ;
78+ } , [ ] ) ;
6179
6280 return (
63- < React . Fragment >
81+ < >
6482 < div className = "left" >
6583 < List
6684 selectionMode = "single"
@@ -102,7 +120,7 @@ const App = () => {
102120 < div className = "address" > { currentHotel . Postal_Code } , { currentHotel . Address } </ div >
103121 < div className = "description" > { currentHotel . Description } </ div >
104122 </ div >
105- </ React . Fragment >
123+ </ >
106124 ) ;
107125} ;
108126
0 commit comments