Part of #1666 (CUSTOM custom views — phase 4).
Description
A property drawn across a column object group (a property repeated per column object) is not handled by the React projection: values and presentation are keyed by row only, so column-group cells do not project or optimistically update correctly. (Editing such cells from a React custom view is also affected.)
Add column-group support so a React custom view can render and edit a property that spans a column group — addressing each cell by both its row object and its column object.
FORM sales 'Sales by month'
OBJECTS p = Product
OBJECTS m = Month // the column object group
PROPERTIES sold(p, m) COLUMNS (m) // one value per (product, month)
DESIGN sales { salesBox { custom = 'Matrix'; } }
;
// illustrative: a cell is addressed by row (product) + column (month)
function Matrix({ data, controller }) {
return data.p.list.map(row =>
<tr key={row.value}>{/* render row.sold per column object m */}</tr>);
}
Reason
Column-group (cross-tab / matrix) layouts cannot be rendered by a React custom view today. Supporting them — keyed by row and column object — lets React components cover the same forms the native grid does.
Part of #1666 (CUSTOM custom views — phase 4).
Description
A property drawn across a column object group (a property repeated per column object) is not handled by the React projection: values and presentation are keyed by row only, so column-group cells do not project or optimistically update correctly. (Editing such cells from a React custom view is also affected.)
Add column-group support so a React custom view can render and edit a property that spans a column group — addressing each cell by both its row object and its column object.
Reason
Column-group (cross-tab / matrix) layouts cannot be rendered by a React custom view today. Supporting them — keyed by row and column object — lets React components cover the same forms the native grid does.