11import { RefreshIndicator } from "@mendix/widget-plugin-component-kit/RefreshIndicator" ;
2- import { Pagination } from "@mendix/widget-plugin-grid/components/Pagination" ;
32import { FocusTargetController } from "@mendix/widget-plugin-grid/keyboard-navigation/FocusTargetController" ;
43import { ListActionValue , ObjectItem } from "mendix" ;
54import { observer } from "mobx-react-lite" ;
65import { CSSProperties , Fragment , ReactElement , ReactNode } from "react" ;
7- import {
8- LoadingTypeEnum ,
9- PaginationEnum ,
10- PagingPositionEnum ,
11- ShowPagingButtonsEnum
12- } from "../../typings/DatagridProps" ;
6+ import { LoadingTypeEnum , PaginationEnum } from "../../typings/DatagridProps" ;
137
148import { EmptyPlaceholder } from "../features/empty-message/EmptyPlaceholder" ;
159import { SelectAllBar } from "../features/select-all/SelectAllBar" ;
@@ -40,28 +34,19 @@ export interface WidgetProps<C extends GridColumn, T extends ObjectItem = Object
4034 data : T [ ] ;
4135 exporting : boolean ;
4236 filterRenderer : ( renderWrapper : ( children : ReactNode ) => ReactElement , columnIndex : number ) => ReactElement ;
43- hasMoreItems : boolean ;
4437 headerContent ?: ReactNode ;
4538 headerTitle ?: string ;
4639 headerWrapperRenderer : ( columnIndex : number , header : ReactElement ) => ReactElement ;
4740 id : string ;
4841 numberOfItems ?: number ;
4942 onExportCancel ?: ( ) => void ;
50- page : number ;
5143 paginationType : PaginationEnum ;
5244 loadMoreButtonCaption ?: string ;
5345
54- pageSize : number ;
55- paging : boolean ;
56- pagingPosition : PagingPositionEnum ;
57- showPagingButtons : ShowPagingButtonsEnum ;
58- preview ?: boolean ;
5946 processedRows : number ;
6047 rowClass ?: ( item : T ) => string ;
61- setPage ?: ( computePage : ( prevPage : number ) => number ) => void ;
6248 styles ?: CSSProperties ;
6349 rowAction ?: ListActionValue ;
64- showSelectAllToggle ?: boolean ;
6550 isFirstLoad : boolean ;
6651 isFetchingNextBatch : boolean ;
6752 loadingType : LoadingTypeEnum ;
@@ -116,43 +101,16 @@ const Main = observer(<C extends GridColumn>(props: WidgetProps<C>): ReactElemen
116101 CellComponent,
117102 columnsHidable,
118103 data : rows ,
119- hasMoreItems,
120104 headerContent,
121105 headerTitle,
122106 loadMoreButtonCaption,
123- numberOfItems,
124- page,
125- pageSize,
126- paginationType,
127- paging,
128- pagingPosition,
129107 showRefreshIndicator,
130108 selectActionHelper,
131- setPage,
132109 visibleColumns
133110 } = props ;
134111
135112 const basicData = useBasicData ( ) ;
136113
137- const showHeader = ! ! headerContent ;
138- const showTopBarPagination = paging && ( pagingPosition === "top" || pagingPosition === "both" ) ;
139- const showFooterPagination = paging && ( pagingPosition === "bottom" || pagingPosition === "both" ) ;
140-
141- const pagination = paging ? (
142- < Pagination
143- canNextPage = { hasMoreItems }
144- canPreviousPage = { page !== 0 }
145- gotoPage = { ( page : number ) => setPage && setPage ( ( ) => page ) }
146- nextPage = { ( ) => setPage && setPage ( prev => prev + 1 ) }
147- numberOfItems = { numberOfItems }
148- page = { page }
149- pageSize = { pageSize }
150- showPagingButtons = { props . showPagingButtons }
151- previousPage = { ( ) => setPage && setPage ( prev => prev - 1 ) }
152- pagination = { paginationType }
153- />
154- ) : null ;
155-
156114 const cssGridStyles = gridStyle ( visibleColumns , {
157115 selectItemColumn : selectActionHelper . showCheckboxColumn ,
158116 visibilitySelectorColumn : columnsHidable
@@ -162,8 +120,8 @@ const Main = observer(<C extends GridColumn>(props: WidgetProps<C>): ReactElemen
162120
163121 return (
164122 < Fragment >
165- < WidgetTopBar pagination = { showTopBarPagination ? pagination : undefined } />
166- { showHeader && < WidgetHeader headerTitle = { headerTitle } > { headerContent } </ WidgetHeader > }
123+ < WidgetTopBar />
124+ < WidgetHeader headerTitle = { headerTitle } headerContent = { headerContent } />
167125 < WidgetContent >
168126 < Grid
169127 aria-multiselectable = { selectionEnabled ? selectActionHelper . selectionType === "Multi" : undefined }
@@ -183,7 +141,7 @@ const Main = observer(<C extends GridColumn>(props: WidgetProps<C>): ReactElemen
183141 headerWrapperRenderer = { props . headerWrapperRenderer }
184142 id = { props . id }
185143 isLoading = { props . columnsLoading }
186- preview = { props . preview }
144+ preview = { false }
187145 />
188146 < SelectAllBar />
189147 { showRefreshIndicator ? < RefreshIndicator /> : null }
@@ -194,13 +152,9 @@ const Main = observer(<C extends GridColumn>(props: WidgetProps<C>): ReactElemen
194152 columnsHidable = { columnsHidable }
195153 columnsSize = { visibleColumns . length }
196154 rowsSize = { rows . length }
197- pageSize = { pageSize }
198- pagination = { props . paginationType }
199- hasMoreItems = { hasMoreItems }
200- setPage = { setPage }
201155 >
202156 < RowsRenderer
203- preview = { props . preview ?? false }
157+ preview = { false }
204158 interactive = { basicData . gridInteractive }
205159 Cell = { CellComponent }
206160 columns = { visibleColumns }
@@ -211,19 +165,12 @@ const Main = observer(<C extends GridColumn>(props: WidgetProps<C>): ReactElemen
211165 selectActionHelper = { selectActionHelper }
212166 focusController = { props . focusController }
213167 eventsController = { props . cellEventsController }
214- pageSize = { props . pageSize }
215168 />
216169 < EmptyPlaceholder />
217170 </ GridBody >
218171 </ Grid >
219172 </ WidgetContent >
220- < WidgetFooter
221- pagination = { showFooterPagination ? pagination : undefined }
222- paginationType = { paginationType }
223- loadMoreButtonCaption = { loadMoreButtonCaption }
224- hasMoreItems = { hasMoreItems }
225- setPage = { setPage }
226- />
173+ < WidgetFooter loadMoreButtonCaption = { loadMoreButtonCaption } />
227174 </ Fragment >
228175 ) ;
229176} ) ;
0 commit comments