Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion packages/core/src/data-editor/data-editor.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3516,7 +3516,9 @@ const DataEditorImpl: React.ForwardRefRenderFunction<DataEditorRef, DataEditorPr
) {
if (
(!showTrailingBlankRow || row !== rows) &&
(vr.y > row || row > vr.y + vr.height || vr.x > col || col > vr.x + vr.width)
(vr.y > row || row > vr.y + vr.height) &&
col >= freezeColumns &&
(vr.x > col || col > vr.x + vr.width)
) {
return;
}
Expand Down
37 changes: 34 additions & 3 deletions packages/core/src/docs/examples/freeze-columns.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ export default {
description={
<Description>
Columns at the start of your grid can be frozen in place by settings{" "}
<PropName>freezeColumns</PropName> to a number greater than 0.
<PropName>freezeColumns</PropName> to a number greater than 0. Cells are editable - try
clicking on them!
</Description>
}>
<Story />
Expand All @@ -30,8 +31,8 @@ export default {
],
};

export const FreezeColumns: React.VFC<any> = (p: { freezeColumns: number }) => {
const { cols, getCellContent } = useMockDataGenerator(100);
export const FreezeColumns: React.FC<{ freezeColumns: number }> = p => {
const { cols, getCellContent, setCellValue } = useMockDataGenerator(100, false);

return (
<DataEditor
Expand All @@ -42,6 +43,7 @@ export const FreezeColumns: React.VFC<any> = (p: { freezeColumns: number }) => {
columns={cols}
verticalBorder={false}
rows={1000}
onCellEdited={setCellValue}
/>
);
};
Expand All @@ -57,3 +59,32 @@ export const FreezeColumns: React.VFC<any> = (p: { freezeColumns: number }) => {
(FreezeColumns as any).args = {
freezeColumns: 1,
};

export const EditableFreezeColumns: React.FC<{ freezeColumns: number }> = p => {
const { cols, getCellContent, setCellValue } = useMockDataGenerator(100, false);

return (
<DataEditor
{...defaultProps}
rowMarkers="both"
freezeColumns={p.freezeColumns}
getCellContent={getCellContent}
columns={cols}
verticalBorder={false}
rows={1000}
onCellEdited={setCellValue}
/>
);
};
(EditableFreezeColumns as any).argTypes = {
freezeColumns: {
control: {
type: "range",
min: 0,
max: 10,
},
},
};
(EditableFreezeColumns as any).args = {
freezeColumns: 2,
};
Loading