docs(changeset): Added selectFirstRowOnMount and fixed selection of first row
This commit is contained in:
@@ -245,6 +245,45 @@ export const Computer = React.memo(() => {
|
||||
loadPage(0);
|
||||
}, [ready, loadPage]);
|
||||
|
||||
useEffect(() => {
|
||||
const _events = getState('_events');
|
||||
const loadPage = () => {
|
||||
const selectFirstRowOnMount = getState('selectFirstRowOnMount');
|
||||
if (selectFirstRowOnMount) {
|
||||
const selectedRow = getState('selectedRow');
|
||||
if (selectedRow && selectedRow >= 0) {
|
||||
return;
|
||||
}
|
||||
const keyField = getState('keyField') ?? 'id';
|
||||
const page_data = getState('_page_data');
|
||||
const firstBuffer = page_data?.[0]?.[0];
|
||||
const firstRow = firstBuffer?.[keyField];
|
||||
|
||||
if (firstRow && firstRow > 0) {
|
||||
const values = [
|
||||
firstBuffer,
|
||||
...((getState('values') ?? []) as Array<Record<string, unknown>>),
|
||||
];
|
||||
|
||||
const onChange = getState('onChange');
|
||||
console.log('Selecting first row:', firstRow, firstBuffer, values);
|
||||
if (onChange) {
|
||||
onChange(values);
|
||||
} else {
|
||||
setState('values', values);
|
||||
}
|
||||
|
||||
setState('selectedRow', firstRow);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
_events?.addEventListener('loadPage', loadPage);
|
||||
|
||||
return () => {
|
||||
_events?.removeEventListener('loadPage', loadPage);
|
||||
};
|
||||
}, []);
|
||||
// console.log('Gridler:Debug:Computer', {
|
||||
// colFilters,
|
||||
// colOrder,
|
||||
|
||||
Reference in New Issue
Block a user