Skip to content
Merged
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "patch",
"comment": "BREAKING: rename useTable->useTableFeatures, useSelection->useTableSelection, useSort->useTableSort",
"packageName": "@fluentui/react-components",
"email": "[email protected]",
"dependentChangeType": "patch"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "prerelease",
"comment": "BREAKING: rename useTable->useTableFeatures, useSelection->useTableSelection, useSort->useTableSort",
"packageName": "@fluentui/react-table",
"email": "[email protected]",
"dependentChangeType": "patch"
}
Original file line number Diff line number Diff line change
Expand Up @@ -320,10 +320,7 @@ import { usePersonaStyles_unstable } from '@fluentui/react-persona';
import { useProgress_unstable } from '@fluentui/react-progress';
import { useProgressStyles_unstable } from '@fluentui/react-progress';
import { useSelect_unstable } from '@fluentui/react-select';
import { useSelection } from '@fluentui/react-table';
import { useSelectStyles_unstable } from '@fluentui/react-select';
import { useSort } from '@fluentui/react-table';
import { useTable } from '@fluentui/react-table';
import { useTable_unstable } from '@fluentui/react-table';
import { useTableBody_unstable } from '@fluentui/react-table';
import { useTableBodyStyles_unstable } from '@fluentui/react-table';
Expand All @@ -334,15 +331,18 @@ import { useTableCellLayout_unstable } from '@fluentui/react-table';
import { useTableCellLayoutStyles_unstable } from '@fluentui/react-table';
import { useTableCellStyles_unstable } from '@fluentui/react-table';
import { useTableContext } from '@fluentui/react-table';
import { useTableFeatures } from '@fluentui/react-table';
import { useTableHeader_unstable } from '@fluentui/react-table';
import { useTableHeaderCell_unstable } from '@fluentui/react-table';
import { useTableHeaderCellStyles_unstable } from '@fluentui/react-table';
import { useTableHeaderStyles_unstable } from '@fluentui/react-table';
import { UseTableOptions } from '@fluentui/react-table';
import { useTableRow_unstable } from '@fluentui/react-table';
import { useTableRowStyles_unstable } from '@fluentui/react-table';
import { useTableSelection } from '@fluentui/react-table';
import { useTableSelectionCell_unstable } from '@fluentui/react-table';
import { useTableSelectionCellStyles_unstable } from '@fluentui/react-table';
import { useTableSort } from '@fluentui/react-table';
import { useTableStyles_unstable } from '@fluentui/react-table';
import { useToolbar_unstable } from '@fluentui/react-toolbar';
import { useToolbarDividerStyles_unstable } from '@fluentui/react-toolbar';
Expand Down Expand Up @@ -981,14 +981,8 @@ export { useProgressStyles_unstable }

export { useSelect_unstable }

export { useSelection }

export { useSelectStyles_unstable }

export { useSort }

export { useTable }

export { useTable_unstable }

export { useTableBody_unstable }
Expand All @@ -1009,6 +1003,8 @@ export { useTableCellStyles_unstable }

export { useTableContext }

export { useTableFeatures }

export { useTableHeader_unstable }

export { useTableHeaderCell_unstable }
Expand All @@ -1023,10 +1019,14 @@ export { useTableRow_unstable }

export { useTableRowStyles_unstable }

export { useTableSelection }

export { useTableSelectionCell_unstable }

export { useTableSelectionCellStyles_unstable }

export { useTableSort }

export { useTableStyles_unstable }

export { useToolbar_unstable }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,10 @@ export {
useTableCellLayoutStyles_unstable,
renderTableCellLayout_unstable,
tableCellLayoutClassNames,
useTableFeatures,
useTableSelection,
useTableSort,
createColumn,
DataGridCell,
dataGridCellClassNames,
useDataGridCellStyles_unstable,
Expand Down Expand Up @@ -243,10 +247,6 @@ export {
useDataGridSelectionCell_unstable,
renderDataGridSelectionCell_unstable,
dataGridSelectionCellClassNames,
useTable,
useSelection,
useSort,
createColumn,
} from '@fluentui/react-table';

export type {
Expand Down
20 changes: 10 additions & 10 deletions packages/react-components/react-table/etc/react-table.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ export type DataGridHeaderSlots = TableHeaderSlots;
export type DataGridHeaderState = TableHeaderState;

// @public
export type DataGridProps = TableProps & Pick<DataGridContextValue, 'items' | 'columns'> & Pick<Partial<DataGridContextValue>, 'focusMode' | 'subtleSelection' | 'selectionAppearance'> & Pick<UseSortOptions, 'sortState' | 'defaultSortState'> & Pick<UseSelectionOptions, 'defaultSelectedItems' | 'selectedItems'> & {
export type DataGridProps = TableProps & Pick<DataGridContextValue, 'items' | 'columns'> & Pick<Partial<DataGridContextValue>, 'focusMode' | 'subtleSelection' | 'selectionAppearance'> & Pick<UseTableSortOptions, 'sortState' | 'defaultSortState'> & Pick<UseTableSelectionOptions, 'defaultSelectedItems' | 'selectedItems'> & {
onSortChange?: (e: React_2.MouseEvent, sortState: SortState) => void;
onSelectionChange?: (e: React_2.MouseEvent | React_2.KeyboardEvent, data: OnSelectionChangeData) => void;
selectionMode?: SelectionMode_2;
Expand Down Expand Up @@ -533,15 +533,6 @@ export const useDataGridSelectionCellStyles_unstable: (state: DataGridSelectionC
// @public
export const useDataGridStyles_unstable: (state: DataGridState) => DataGridState;

// @public (undocumented)
export function useSelection<TItem>(options: UseSelectionOptions): (tableState: HeadlessTableState<TItem>) => HeadlessTableState<TItem>;

// @public (undocumented)
export function useSort<TItem>(options: UseSortOptions): (tableState: HeadlessTableState<TItem>) => HeadlessTableState<TItem>;

// @public (undocumented)
export function useTable<TItem>(options: UseTableOptions<TItem>, plugins?: TableStatePlugin[]): HeadlessTableState<TItem>;

// @public
export const useTable_unstable: (props: TableProps, ref: React_2.Ref<HTMLElement>) => TableState;

Expand Down Expand Up @@ -572,6 +563,9 @@ export const useTableCellStyles_unstable: (state: TableCellState) => TableCellSt
// @public (undocumented)
export const useTableContext: () => TableContextValue;

// @public (undocumented)
export function useTableFeatures<TItem>(options: UseTableOptions<TItem>, plugins?: TableStatePlugin[]): HeadlessTableState<TItem>;

// @public
export const useTableHeader_unstable: (props: TableHeaderProps, ref: React_2.Ref<HTMLElement>) => TableHeaderState;

Expand Down Expand Up @@ -600,12 +594,18 @@ export const useTableRow_unstable: (props: TableRowProps, ref: React_2.Ref<HTMLE
// @public
export const useTableRowStyles_unstable: (state: TableRowState) => TableRowState;

// @public (undocumented)
export function useTableSelection<TItem>(options: UseTableSelectionOptions): (tableState: HeadlessTableState<TItem>) => HeadlessTableState<TItem>;

// @public
export const useTableSelectionCell_unstable: (props: TableSelectionCellProps, ref: React_2.Ref<HTMLElement>) => TableSelectionCellState;

// @public
export const useTableSelectionCellStyles_unstable: (state: TableSelectionCellState) => TableSelectionCellState;

// @public (undocumented)
export function useTableSort<TItem>(options: UseTableSortOptions): (tableState: HeadlessTableState<TItem>) => HeadlessTableState<TItem>;

// @public
export const useTableStyles_unstable: (state: TableState) => TableState;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ import type { TableContextValues, TableProps, TableSlots, TableState } from '../
import type {
SortState,
TableState as HeadlessTableState,
UseSortOptions,
UseTableSortOptions,
SelectionMode,
UseSelectionOptions,
UseTableSelectionOptions,
OnSelectionChangeData,
} from '../../hooks';
import { TableRowProps } from '../TableRow/TableRow.types';
Expand Down Expand Up @@ -53,8 +53,8 @@ export type DataGridContextValue = HeadlessTableState<any> & {
export type DataGridProps = TableProps &
Pick<DataGridContextValue, 'items' | 'columns'> &
Pick<Partial<DataGridContextValue>, 'focusMode' | 'subtleSelection' | 'selectionAppearance'> &
Pick<UseSortOptions, 'sortState' | 'defaultSortState'> &
Pick<UseSelectionOptions, 'defaultSelectedItems' | 'selectedItems'> & {
Pick<UseTableSortOptions, 'sortState' | 'defaultSortState'> &
Pick<UseTableSelectionOptions, 'defaultSelectedItems' | 'selectedItems'> & {
onSortChange?: (e: React.MouseEvent, sortState: SortState) => void;
onSelectionChange?: (e: React.MouseEvent | React.KeyboardEvent, data: OnSelectionChangeData) => void;
/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import * as React from 'react';
import { useArrowNavigationGroup } from '@fluentui/react-tabster';
import type { DataGridProps, DataGridState } from './DataGrid.types';
import { useTable_unstable } from '../Table/useTable';
import { useTable, useSort, useSelection } from '../../hooks';
import { useTableFeatures, useTableSort, useTableSelection } from '../../hooks';

/**
* Create the state required to render DataGrid.
Expand Down Expand Up @@ -32,13 +32,13 @@ export const useDataGrid_unstable = (props: DataGridProps, ref: React.Ref<HTMLEl
const navigable = focusMode !== 'none';
const keyboardNavAttr = useArrowNavigationGroup({ axis: 'grid' });

const tableState = useTable({ items, columns }, [
useSort({
const tableState = useTableFeatures({ items, columns }, [
useTableSort({
defaultSortState,
sortState,
onSortChange,
}),
useSelection({
useTableSelection({
defaultSelectedItems,
selectedItems,
onSelectionChange,
Expand Down
6 changes: 3 additions & 3 deletions packages/react-components/react-table/src/hooks/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
export * from './types';
export * from './useTable';
export * from './useSort';
export * from './useSelection';
export * from './useTableFeatures';
export * from './useTableSort';
export * from './useTableSelection';
export * from './createColumn';
4 changes: 2 additions & 2 deletions packages/react-components/react-table/src/hooks/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ export interface TableState<TItem> extends Pick<UseTableOptions<TItem>, 'items'
columns: ColumnDefinition<TItem>[];
}

export interface UseSortOptions {
export interface UseTableSortOptions {
/**
* Used to control sorting
*/
Expand All @@ -148,7 +148,7 @@ export interface UseSortOptions {
onSortChange?(e: React.SyntheticEvent, state: SortState): void;
}

export interface UseSelectionOptions {
export interface UseTableSelectionOptions {
/**
* Can be multi or single select
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
import { renderHook } from '@testing-library/react-hooks';
import { createColumn } from './createColumn';
import { defaultTableSelectionState, useSelection } from './useSelection';
import { defaultTableSortState, useSort } from './useSort';
import { useTable } from './useTable';
import { defaultTableSelectionState, useTableSelection } from './useTableSelection';
import { defaultTableSortState, useTableSort } from './useTableSort';
import { useTableFeatures } from './useTableFeatures';

describe('useTable', () => {
describe('useTableFeatures', () => {
it('should return sort state', () => {
const { result } = renderHook(() =>
useTable(
useTableFeatures(
{
columns: [createColumn({ columnId: 1 })],
items: [{}, {}, {}],
},
[useSort({})],
[useTableSort({})],
),
);

Expand All @@ -31,12 +31,12 @@ describe('useTable', () => {

it('should return selection state', () => {
const { result } = renderHook(() =>
useTable(
useTableFeatures(
{
columns: [createColumn({ columnId: 1 })],
items: [{}, {}, {}],
},
[useSelection({ selectionMode: 'multiselect' })],
[useTableSelection({ selectionMode: 'multiselect' })],
),
);

Expand All @@ -56,7 +56,7 @@ describe('useTable', () => {
describe('getRows', () => {
it('should enahnce rows', () => {
const { result } = renderHook(() =>
useTable({
useTableFeatures({
columns: [createColumn({ columnId: 1 })],
items: [{}, {}, {}],
}),
Expand Down Expand Up @@ -90,7 +90,7 @@ describe('useTable', () => {

it('should use custom rowId', () => {
const { result } = renderHook(() =>
useTable({
useTableFeatures({
columns: [createColumn({ columnId: 1 })],
items: [{ value: 'a' }, { value: 'b' }, { value: 'c' }],
getRowId: item => item.value,
Expand All @@ -103,7 +103,7 @@ describe('useTable', () => {

it('should return original items', () => {
const { result } = renderHook(() =>
useTable({
useTableFeatures({
columns: [createColumn({ columnId: 1 })],
items: [{ value: 1 }, { value: 2 }, { value: 3 }],
}),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { UseTableOptions, TableState, RowState, RowEnhancer, TableStatePlugin, TableSortState } from './types';
import { defaultTableSelectionState } from './useSelection';
import { defaultTableSortState } from './useSort';
import { defaultTableSelectionState } from './useTableSelection';
import { defaultTableSortState } from './useTableSort';

const defaultRowEnhancer: RowEnhancer<unknown, RowState<unknown>> = row => row;

Expand All @@ -13,7 +13,10 @@ export const defaultTableState: TableState<unknown> = {
columns: [],
};

export function useTable<TItem>(options: UseTableOptions<TItem>, plugins: TableStatePlugin[] = []): TableState<TItem> {
export function useTableFeatures<TItem>(
options: UseTableOptions<TItem>,
plugins: TableStatePlugin[] = [],
): TableState<TItem> {
const { items, getRowId, columns } = options;

const getRows = <TRowState extends RowState<TItem>>(
Expand Down
Loading