CellChange type is used by onCellsChanged callback in ReactGrid component. CellChange represents
mutually exclusive changes to a single cell.
CellTypes utility type extracts all possible cell types based on Cell interface.
Basic usage cases
const handleChangesOnDefaults = (changes: CellChange[]) => { // evaluates as `Change<TextCell> | Change<Datecell> | ...`
changes.forEach(change => {
if (change.type === 'checkbox') {
console.log(change.newCell.checked);
console.log(change.initialCell.checked);
}
});
};
const handleChangesOnDefaultsAndFlagCell = (changes: CellChange<DefaultCellTypes | FlagCell>[]) => { // evaluates as `Change<TextCell> | Change<Datecell> | ... | Change<FlagCell>`
changes.forEach(change => {
if (change.type === 'flag') {
// `FlagCell` specyfic fields are now available
console.log(change.newCell.text);
console.log(change.initialCell.text);
}
});
};
const handleChangesOnlyOnDateCell = (changes: CellChange<DateCell>[]) => { // evaluates as `Change<DateCell>`
changes.forEach(change => {
// only available type is now `date`
if (change.type === 'date') {
console.log(change.newCell.date);
console.log(change.initialCell.date);
}
});
};Definition
type CellChange<TCell extends Cell = DefaultCellTypes & Cell> = TCell extends Cell ? Change<TCell> : never;
interface Change<TCell extends Cell = DefaultCellTypes> {
readonly rowId: Id;
readonly columnId: Id;
readonly type: TCell['type'];
readonly initialCell: TCell;
readonly newCell: TCell;
}TCell is type that extends common Cell type.
It can be one of default cell types or one of yours.
Read more about creating custom cell templates.
Properties
| Property name | Type | Property description |
|---|---|---|
rowId | Id | Row Id where the change ocurred |
columnId | Id | Column Id where the change ocurred |
type | CellTypes<TCell> | Extracted cell type of TCell e.g. text, group |
initialCell | TCell extends Cell = Cell | Old content of the cell |
newCell | TCell extends Cell = Cell | New content of the cell |