diff --git a/.vscode/settings.json b/.vscode/settings.json index 4a985060fc..bad870e043 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,6 +1,9 @@ { "editor.codeActionsOnSave": { - "source.fixAll": "explicit" + "source.fixAll": "explicit", + "source.organizeImports": "explicit", + // prevent removal of unreachable code + "source.fixAll.ts": "never" }, "editor.defaultFormatter": "oxc.oxc-vscode", "editor.formatOnSave": true, diff --git a/src/DataGrid.tsx b/src/DataGrid.tsx index ebaeb25d86..ff409902c2 100644 --- a/src/DataGrid.tsx +++ b/src/DataGrid.tsx @@ -1,5 +1,5 @@ -import { useCallback, useImperativeHandle, useLayoutEffect, useMemo, useState } from 'react'; import type { Key, KeyboardEvent } from 'react'; +import { useCallback, useImperativeHandle, useLayoutEffect, useMemo, useState } from 'react'; import { flushSync } from 'react-dom'; import { diff --git a/src/TreeDataGrid.tsx b/src/TreeDataGrid.tsx index 9f6845cad5..866c2af4e7 100644 --- a/src/TreeDataGrid.tsx +++ b/src/TreeDataGrid.tsx @@ -1,5 +1,5 @@ -import { useCallback, useMemo } from 'react'; import type { Key } from 'react'; +import { useCallback, useMemo } from 'react'; import { useLatestFunc } from './hooks'; import { assertIsValidKeyGetter, getLeftRightKey } from './utils'; @@ -19,8 +19,8 @@ import type { } from './types'; import { renderToggleGroup } from './cellRenderers'; import { SELECT_COLUMN_KEY } from './Columns'; -import { DataGrid } from './DataGrid'; import type { DataGridProps } from './DataGrid'; +import { DataGrid } from './DataGrid'; import { useDefaultRenderers } from './DataGridDefaultRenderersContext'; import GroupedRow from './GroupRow'; import { defaultRenderRow } from './Row'; diff --git a/src/index.ts b/src/index.ts index ce5f9900fa..9cbfb15c1e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,21 +1,21 @@ import './style/layers.css'; +export { default as Cell } from './Cell'; +export * from './cellRenderers'; +export * from './Columns'; export { DataGrid, - type DataGridProps, type DataGridHandle, + type DataGridProps, type DefaultColumnOptions } from './DataGrid'; -export { TreeDataGrid, type TreeDataGridProps } from './TreeDataGrid'; export { DataGridDefaultRenderersContext } from './DataGridDefaultRenderersContext'; -export { default as Row } from './Row'; -export { default as Cell } from './Cell'; -export * from './Columns'; -export * from './cellRenderers'; export { renderTextEditor } from './editors/renderTextEditor'; +export { useHeaderRowSelection, useRowSelection } from './hooks'; export { default as renderHeaderCell } from './renderHeaderCell'; +export { default as Row } from './Row'; export { renderSortIcon, renderSortPriority } from './sortStatus'; -export { useRowSelection, useHeaderRowSelection } from './hooks'; +export { TreeDataGrid, type TreeDataGridProps } from './TreeDataGrid'; export type { CalculatedColumn, CalculatedColumnOrColumnGroup, diff --git a/test/browser/column/renderCell.test.tsx b/test/browser/column/renderCell.test.tsx index 7abd91f0f3..efc30e2984 100644 --- a/test/browser/column/renderCell.test.tsx +++ b/test/browser/column/renderCell.test.tsx @@ -1,8 +1,8 @@ import { useState } from 'react'; import { page, userEvent } from 'vitest/browser'; -import { DataGrid } from '../../../src'; import type { Column } from '../../../src'; +import { DataGrid } from '../../../src'; import defaultRenderHeaderCell from '../../../src/renderHeaderCell'; import { getCellsAtRowIndex, setup } from '../utils'; diff --git a/test/browser/column/renderEditCell.test.tsx b/test/browser/column/renderEditCell.test.tsx index 2294e72ce9..916085d113 100644 --- a/test/browser/column/renderEditCell.test.tsx +++ b/test/browser/column/renderEditCell.test.tsx @@ -2,8 +2,8 @@ import { useMemo, useState } from 'react'; import { createPortal } from 'react-dom'; import { page, userEvent } from 'vitest/browser'; -import { DataGrid } from '../../../src'; import type { Column, DataGridProps } from '../../../src'; +import { DataGrid } from '../../../src'; import { getCellsAtRowIndex, getRowWithCell, scrollGrid, testCount } from '../utils'; const grid = page.getGrid(); diff --git a/test/browser/columnOrder.test.tsx b/test/browser/columnOrder.test.tsx index 345e93c96d..e9a4d1b0f3 100644 --- a/test/browser/columnOrder.test.tsx +++ b/test/browser/columnOrder.test.tsx @@ -1,7 +1,7 @@ import { page } from 'vitest/browser'; -import { DataGrid, SelectColumn, TreeDataGrid } from '../../src'; import type { Column } from '../../src'; +import { DataGrid, SelectColumn, TreeDataGrid } from '../../src'; import { testCount } from './utils'; const headerCells = page.getHeaderCell(); diff --git a/test/browser/copyPaste.test.tsx b/test/browser/copyPaste.test.tsx index e9ace61216..f6021efe82 100644 --- a/test/browser/copyPaste.test.tsx +++ b/test/browser/copyPaste.test.tsx @@ -1,8 +1,8 @@ import { useState } from 'react'; import { page, userEvent } from 'vitest/browser'; -import { DataGrid } from '../../src'; import type { CellPasteArgs, Column } from '../../src'; +import { DataGrid } from '../../src'; import { getCellsAtRowIndex } from './utils'; interface Row { diff --git a/test/browser/dragFill.test.tsx b/test/browser/dragFill.test.tsx index 3bc715fef9..26b78a11c8 100644 --- a/test/browser/dragFill.test.tsx +++ b/test/browser/dragFill.test.tsx @@ -1,8 +1,8 @@ import { useState } from 'react'; import { commands, page, userEvent } from 'vitest/browser'; -import { DataGrid } from '../../src'; import type { Column, FillEvent } from '../../src'; +import { DataGrid } from '../../src'; import { getCellsAtRowIndex } from './utils'; const dragHandle = page.getDragHandle(); diff --git a/test/browser/events.test.tsx b/test/browser/events.test.tsx index 574001b9cb..642e159e34 100644 --- a/test/browser/events.test.tsx +++ b/test/browser/events.test.tsx @@ -1,7 +1,7 @@ import { page, userEvent } from 'vitest/browser'; -import { DataGrid } from '../../src'; import type { Column, DataGridProps } from '../../src'; +import { DataGrid } from '../../src'; interface Row { col1: number; diff --git a/test/browser/keyboardNavigation.test.tsx b/test/browser/keyboardNavigation.test.tsx index 91cf9f3a01..c223e89d40 100644 --- a/test/browser/keyboardNavigation.test.tsx +++ b/test/browser/keyboardNavigation.test.tsx @@ -1,7 +1,7 @@ import { page, userEvent } from 'vitest/browser'; -import { DataGrid, SelectColumn } from '../../src'; import type { Column } from '../../src'; +import { DataGrid, SelectColumn } from '../../src'; import { getRowWithCell, scrollGrid, diff --git a/test/browser/renderTextEditor.test.tsx b/test/browser/renderTextEditor.test.tsx index a4b4d3e91a..fa8278755a 100644 --- a/test/browser/renderTextEditor.test.tsx +++ b/test/browser/renderTextEditor.test.tsx @@ -1,8 +1,8 @@ import { useState } from 'react'; import { page, userEvent } from 'vitest/browser'; -import { DataGrid, renderTextEditor } from '../../src'; import type { Column } from '../../src'; +import { DataGrid, renderTextEditor } from '../../src'; interface Row { readonly name: string; diff --git a/test/browser/renderers.test.tsx b/test/browser/renderers.test.tsx index 54059ee126..ae3af3f214 100644 --- a/test/browser/renderers.test.tsx +++ b/test/browser/renderers.test.tsx @@ -1,14 +1,6 @@ import { useState } from 'react'; import { page, userEvent } from 'vitest/browser'; -import { - Cell, - DataGrid, - DataGridDefaultRenderersContext, - Row as DefaultRow, - renderSortIcon, - SelectColumn -} from '../../src'; import type { CellRendererProps, Column, @@ -17,6 +9,14 @@ import type { RenderSortStatusProps, SortColumn } from '../../src'; +import { + Cell, + DataGrid, + DataGridDefaultRenderersContext, + Row as DefaultRow, + renderSortIcon, + SelectColumn +} from '../../src'; import { getRowWithCell, setup, testCount, testRowCount } from './utils'; interface Row { diff --git a/test/browser/rowSelection.test.tsx b/test/browser/rowSelection.test.tsx index b48b387334..5fc70926e5 100644 --- a/test/browser/rowSelection.test.tsx +++ b/test/browser/rowSelection.test.tsx @@ -1,8 +1,8 @@ import { useState } from 'react'; import { page, userEvent } from 'vitest/browser'; -import { DataGrid, SelectColumn } from '../../src'; import type { Column } from '../../src'; +import { DataGrid, SelectColumn } from '../../src'; const rows = page.getRow(); const headerCheckbox = page.getSelectAllCheckbox(); diff --git a/test/browser/utils.tsx b/test/browser/utils.tsx index 38f0026a93..c3875ea73d 100644 --- a/test/browser/utils.tsx +++ b/test/browser/utils.tsx @@ -1,8 +1,8 @@ import { page, userEvent, type Locator } from 'vitest/browser'; import { css } from 'ecij'; -import { DataGrid } from '../../src'; import type { DataGridProps } from '../../src'; +import { DataGrid } from '../../src'; export function setup( props: DataGridProps, diff --git a/test/node/ssr.test.tsx b/test/node/ssr.test.tsx index 91483b1ed8..28700565f9 100644 --- a/test/node/ssr.test.tsx +++ b/test/node/ssr.test.tsx @@ -1,7 +1,7 @@ import { renderToString } from 'react-dom/server'; -import { DataGrid } from '../../src'; import type { Column } from '../../src'; +import { DataGrid } from '../../src'; interface Row { id: number; diff --git a/website/routes/AllFeatures.tsx b/website/routes/AllFeatures.tsx index a603269e59..ede2e499a7 100644 --- a/website/routes/AllFeatures.tsx +++ b/website/routes/AllFeatures.tsx @@ -3,8 +3,8 @@ import { faker } from '@faker-js/faker'; import { css } from 'ecij'; import clsx from 'clsx'; -import { DataGrid, renderTextEditor, SelectColumn } from '../../src'; import type { CalculatedColumn, CellCopyArgs, CellPasteArgs, Column, FillEvent } from '../../src'; +import { DataGrid, renderTextEditor, SelectColumn } from '../../src'; import { textEditorClassname } from '../../src/editors/renderTextEditor'; import { useDirection } from '../directionContext'; diff --git a/website/routes/CellNavigation.tsx b/website/routes/CellNavigation.tsx index ffc391329f..9525419385 100644 --- a/website/routes/CellNavigation.tsx +++ b/website/routes/CellNavigation.tsx @@ -1,7 +1,7 @@ import { useId, useState } from 'react'; -import { DataGrid } from '../../src'; import type { CellKeyboardEvent, CellKeyDownArgs, Column } from '../../src'; +import { DataGrid } from '../../src'; import { useDirection } from '../directionContext'; export const Route = createFileRoute({ diff --git a/website/routes/CustomizableRenderers.tsx b/website/routes/CustomizableRenderers.tsx index ec4a2aa47d..bcb82cb74a 100644 --- a/website/routes/CustomizableRenderers.tsx +++ b/website/routes/CustomizableRenderers.tsx @@ -1,7 +1,6 @@ import { useMemo, useState } from 'react'; import { css } from 'ecij'; -import { Row as BaseRow, Cell, DataGrid, renderTextEditor, SelectColumn } from '../../src'; import type { CellRendererProps, Column, @@ -10,6 +9,7 @@ import type { RenderSortStatusProps, SortColumn } from '../../src'; +import { Row as BaseRow, Cell, DataGrid, renderTextEditor, SelectColumn } from '../../src'; import { useDirection } from '../directionContext'; export const Route = createFileRoute({