import React from "react";
import { GridProps } from "./GridProps";
import { Grid as KendoGrid } from "@progress/kendo-react-grid";

const Grid: React.FC<GridProps> = ({
  dataTestId,
  ariaLabel,
  cells,
  children,
  className,
  columnMenu,
  columnVirtualization,
  data,
  dataItemKey,
  detail,
  detailRowHeight,
  editField,
  expandField,
  filter,
  filterable,
  filterOperators,
  fixedScroll,
  group,
  groupable,
  id,
  lockGroups,
  navigatable,
  pageable,
  pager,
  pageSize,
  reorderable,
  resizable,
  rowHeight,
  scrollable,
  selectable,
  selectedField,
  size,
  skip,
  sort,
  sortable,
  style,
  take,
  total,
  cellRender,
  filterCellRender,
  headerCellRender,
  onColumnReorder,
  onColumnResize,
  onContextMenu,
  onDataStateChange,
  onExpandChange,
  onFilterChange,
  onGroupChange,
  onHeaderSelectionChange,
  onItemChange,
  onKeyDown,
  onNavigationAction,
  onPageChange,
  onRowClick,
  onRowDoubleClick,
  onScroll,
  onSelectionChange,
  onSortChange,
  rowRender,
}) => (
  <div data-test-id={dataTestId}>
    <KendoGrid
      ariaLabel={ariaLabel}
      cells={cells}
      className={className}
      columnMenu={columnMenu}
      columnVirtualization={columnVirtualization}
      data={data}
      dataItemKey={dataItemKey}
      detail={detail}
      detailRowHeight={detailRowHeight}
      editField={editField}
      expandField={expandField}
      filter={filter}
      filterable={filterable}
      filterOperators={filterOperators}
      fixedScroll={fixedScroll}
      group={group}
      groupable={groupable}
      id={id}
      lockGroups={lockGroups}
      navigatable={navigatable}
      pageable={pageable}
      pager={pager}
      pageSize={pageSize}
      reorderable={reorderable}
      resizable={resizable}
      rowHeight={rowHeight}
      scrollable={scrollable}
      selectable={selectable}
      selectedField={selectedField}
      size={size}
      skip={skip}
      sort={sort}
      sortable={sortable}
      style={style}
      take={take}
      total={total}
      cellRender={cellRender}
      filterCellRender={filterCellRender}
      headerCellRender={headerCellRender}
      onColumnReorder={onColumnReorder}
      onColumnResize={onColumnResize}
      onContextMenu={onContextMenu}
      onDataStateChange={onDataStateChange}
      onExpandChange={onExpandChange}
      onFilterChange={onFilterChange}
      onGroupChange={onGroupChange}
      onHeaderSelectionChange={onHeaderSelectionChange}
      onItemChange={onItemChange}
      onKeyDown={onKeyDown}
      onNavigationAction={onNavigationAction}
      onPageChange={onPageChange}
      onRowClick={onRowClick}
      onRowDoubleClick={onRowDoubleClick}
      onScroll={onScroll}
      onSelectionChange={onSelectionChange}
      onSortChange={onSortChange}
      rowRender={rowRender}
    >
      {children}
    </KendoGrid>
  </div>
);

export default Grid;
