/*
* Copyright 2020 Arnaud Vergnet
*
* This file is part of CAMPUS.
*
* CAMPUS is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* CAMPUS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with CAMPUS. If not, see .
*/
// @flow
import * as React from 'react';
import {View} from 'react-native';
import {withTheme} from 'react-native-paper';
import type {ViewStyle} from 'react-native/Libraries/StyleSheet/StyleSheet';
import type {CellType} from './CellComponent';
import CellComponent from './CellComponent';
export type GridType = Array>;
type PropsType = {
grid: Array>,
height: number,
width: number,
style: ViewStyle,
};
class GridComponent extends React.Component {
getRow(rowNumber: number): React.Node {
const {grid} = this.props;
return (
{grid[rowNumber].map(this.getCellRender)}
);
}
getCellRender = (item: CellType): React.Node => {
return ;
};
getGrid(): React.Node {
const {height} = this.props;
const rows = [];
for (let i = 0; i < height; i += 1) {
rows.push(this.getRow(i));
}
return rows;
}
render(): React.Node {
const {style, width, height} = this.props;
return (
{this.getGrid()}
);
}
}
export default withTheme(GridComponent);