Skip to content

Commit

Permalink
[DataGrid] Add missing api property to GridCallbackDetails (#12742)
Browse files Browse the repository at this point in the history
  • Loading branch information
sai6855 committed Apr 11, 2024
1 parent dd77454 commit 9f6f609
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ export const useGridInitialization = <
useGridRefs(privateApiRef);
useGridTheme(privateApiRef);
useGridLoggerFactory(privateApiRef, props);
useGridStateInitialization(privateApiRef, props);
useGridStateInitialization(privateApiRef);
useGridPipeProcessing(privateApiRef);
useGridStrategyProcessing(privateApiRef);
useGridLocaleText(privateApiRef, props);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
import * as React from 'react';
import { DataGridProcessedProps } from '../../models/props/DataGridProps';
import type { GridPrivateApiCommon } from '../../models/api/gridApiCommon';
import { GridStateApi, GridStatePrivateApi } from '../../models/api/gridStateApi';
import { GridControlStateItem } from '../../models/controlStateItem';
import { GridSignature } from '../utils/useGridApiEventHandler';
import { useGridApiMethod } from '../utils';
import { isFunction } from '../../utils/utils';

export const useGridStateInitialization = <PrivateApi extends GridPrivateApiCommon>(
apiRef: React.MutableRefObject<PrivateApi>,
props: Pick<DataGridProcessedProps, 'signature'>,
) => {
const controlStateMapRef = React.useRef<
Record<string, GridControlStateItem<PrivateApi['state'], any>>
Expand Down Expand Up @@ -92,11 +89,10 @@ export const useGridStateInitialization = <PrivateApi extends GridPrivateApiComm
const model = controlState.stateSelector(newState, apiRef.current.instanceId);

if (controlState.propOnChange && hasPropChanged) {
const details =
props.signature === GridSignature.DataGridPro
? { api: apiRef.current, reason }
: { reason };
controlState.propOnChange(model, details);
controlState.propOnChange(model, {
reason,
api: apiRef.current,
});
}

if (!ignoreSetState) {
Expand All @@ -106,7 +102,7 @@ export const useGridStateInitialization = <PrivateApi extends GridPrivateApiComm

return !ignoreSetState;
},
[apiRef, props.signature],
[apiRef],
);

const updateControlState = React.useCallback<
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,9 @@ export const useGridCellEditing = (
const isNewModelDifferentFromProp = newModel !== props.cellModesModel;

if (onCellModesModelChange && isNewModelDifferentFromProp) {
onCellModesModelChange(newModel, {});
onCellModesModelChange(newModel, {
api: apiRef.current,
});
}

if (props.cellModesModel && isNewModelDifferentFromProp) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -349,7 +349,9 @@ export const useGridRowEditing = (
const isNewModelDifferentFromProp = newModel !== props.rowModesModel;

if (onRowModesModelChange && isNewModelDifferentFromProp) {
onRowModesModelChange(newModel, {});
onRowModesModelChange(newModel, {
api: apiRef.current,
});
}

if (props.rowModesModel && isNewModelDifferentFromProp) {
Expand Down
5 changes: 5 additions & 0 deletions packages/x-data-grid/src/models/api/gridCallbackDetails.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { GridControlledStateReasonLookup } from '../events/gridEventLookup';
import { GridApiCommunity } from './gridApiCommunity';

/**
* Additional details passed to the callbacks
Expand All @@ -8,4 +9,8 @@ export interface GridCallbackDetails<K extends keyof GridControlledStateReasonLo
* The reason for this callback to have been called.
*/
reason?: GridControlledStateReasonLookup[K];
/**
* GridApi that let you manipulate the grid.
*/
api: GridApiCommunity;
}

0 comments on commit 9f6f609

Please sign in to comment.