Skip to content

Commit

Permalink
SURVEY-17202 adding the ability to place a cell in editing mode
Browse files Browse the repository at this point in the history
  • Loading branch information
fspringveldt committed Jun 14, 2023
1 parent 0bf87d4 commit 02b9e7e
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 0 deletions.
5 changes: 5 additions & 0 deletions src/contexts/GridContext.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { CsvExportParams } from "ag-grid-community/dist/lib/interfaces/exportPar
import { createContext, useContext } from "react";

import { ColDefT, GridBaseRow } from "../components";
import {Column} from "ag-grid-community/dist/lib/entities/column";

export type GridFilterExternal<RowType extends GridBaseRow> = (data: RowType, rowNode: RowNode) => boolean;

Expand Down Expand Up @@ -39,6 +40,7 @@ export interface GridContextType<RowType extends GridBaseRow> {
autoSizeColumns: (props?: AutoSizeColumnsProps) => AutoSizeColumnsResult;
sizeColumnsToFit: () => void;
cancelEdit: () => void;
startEditing: (rowIndex: number, colKey: string | Column, rowPinned?: string) => void;
stopEditing: () => void;
updatingCells: (
props: { selectedRows: GridBaseRow[]; field?: string },
Expand Down Expand Up @@ -147,6 +149,9 @@ export const GridContext = createContext<GridContextType<any>>({
cancelEdit: () => {
console.error("no context provider for cancelEdit");
},
startEditing: () => {
console.error("no context provider for startEditing");
},
stopEditing: () => {
console.error("no context provider for stopEditing");
},
Expand Down
15 changes: 15 additions & 0 deletions src/contexts/GridContextProvider.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import { ColDefT, GridBaseRow } from "../components";
import { isNotEmpty, sanitiseFileName, wait } from "../utils/util";
import { AutoSizeColumnsProps, AutoSizeColumnsResult, GridContext, GridFilterExternal } from "./GridContext";
import { GridUpdatingContext } from "./GridUpdatingContext";
import {Column} from "ag-grid-community/dist/lib/entities/column";

interface GridContextProps {
children: ReactNode;
Expand Down Expand Up @@ -377,6 +378,19 @@ export const GridContextProvider = <RowType extends GridBaseRow>(props: GridCont
gridApi.stopEditing();
}, [gridApi]);

const startEditing = useCallback(
(rowIndex: number, colKey: string | Column, rowPinned?: string): void => {
if (!gridApi) return;
gridApi.setFocusedCell(rowIndex, colKey, rowPinned);
gridApi.startEditingCell({
rowIndex,
colKey,
rowPinned,
});
},
[gridApi],
);

/**
* This differs from stopEdit in that it will also invoke cellEditingCompleteCallback
*/
Expand Down Expand Up @@ -618,6 +632,7 @@ export const GridContextProvider = <RowType extends GridBaseRow>(props: GridCont
ensureSelectedRowIsVisible,
sizeColumnsToFit,
autoSizeColumns,
startEditing,
stopEditing,
cancelEdit,
updatingCells,
Expand Down

0 comments on commit 02b9e7e

Please sign in to comment.