diff --git a/CHANGELOG.md b/CHANGELOG.md index 69328f44662..e4f0246de43 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ ## [`master`](https://github.com/elastic/eui/tree/master) +- Converted `EuiTableRowHeaderCheckbox` to TS ([#1973](https://github.com/elastic/eui/pull/1973)) - Added missing TypeScript definition for `EuiFieldText`'s `compressed` prop ([#1977](https://github.com/elastic/eui/pull/1977)) - Converted `EuiTableRowCellCheckbox` to TS ([#1964](https://github.com/elastic/eui/pull/1964)) - Updated `caniuse-lite` version resolution ([#1970](https://github.com/elastic/eui/pull/1970)) diff --git a/src/components/basic_table/__snapshots__/basic_table.test.js.snap b/src/components/basic_table/__snapshots__/basic_table.test.js.snap index ddf79db73d0..91358ae05b6 100644 --- a/src/components/basic_table/__snapshots__/basic_table.test.js.snap +++ b/src/components/basic_table/__snapshots__/basic_table.test.js.snap @@ -759,7 +759,6 @@ exports[`EuiBasicTable footers render with pagination, selection, sorting, and f & - EuiTableHeaderCellCheckboxProps - >; + export type EuiTableHeaderCellCheckboxScope = TableHeaderCellCheckboxScope; + export interface EuiTableHeaderCellCheckboxProps extends TableHeaderCellCheckboxProps {} + export const EuiTableHeaderCellCheckbox: typeof TableHeaderCellCheckbox; /** * table row type defs diff --git a/src/components/table/table_header_cell_checkbox.js b/src/components/table/table_header_cell_checkbox.js deleted file mode 100644 index 9a693cafe05..00000000000 --- a/src/components/table/table_header_cell_checkbox.js +++ /dev/null @@ -1,27 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import classNames from 'classnames'; - -export const EuiTableHeaderCellCheckbox = ({ - children, - className, - ...rest -}) => { - const classes = classNames('euiTableHeaderCellCheckbox', className); - - return ( - -
{children}
- - ); -}; - -EuiTableHeaderCellCheckbox.propTypes = { - children: PropTypes.node, - className: PropTypes.string, - scope: PropTypes.oneOf(['col', 'row', 'colgroup', 'rowgroup']), -}; - -EuiTableHeaderCellCheckbox.defaultProps = { - scope: 'col', -}; diff --git a/src/components/table/table_header_cell_checkbox.test.js b/src/components/table/table_header_cell_checkbox.test.tsx similarity index 85% rename from src/components/table/table_header_cell_checkbox.test.js rename to src/components/table/table_header_cell_checkbox.test.tsx index 7006be16903..ecdf60136a3 100644 --- a/src/components/table/table_header_cell_checkbox.test.js +++ b/src/components/table/table_header_cell_checkbox.test.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { render } from 'enzyme'; -import { requiredProps } from '../../test/required_props'; +import { requiredProps } from '../../test'; import { EuiTableHeaderCellCheckbox } from './table_header_cell_checkbox'; diff --git a/src/components/table/table_header_cell_checkbox.tsx b/src/components/table/table_header_cell_checkbox.tsx new file mode 100644 index 00000000000..7057458a25e --- /dev/null +++ b/src/components/table/table_header_cell_checkbox.tsx @@ -0,0 +1,28 @@ +import React, { FunctionComponent, ThHTMLAttributes } from 'react'; +import classNames from 'classnames'; +import { CommonProps } from '../common'; + +export type EuiTableHeaderCellCheckboxScope = + | 'col' + | 'row' + | 'colgroup' + | 'rowgroup'; + +export interface EuiTableHeaderCellCheckboxProps { + width?: string; + scope?: EuiTableHeaderCellCheckboxScope; +} + +export const EuiTableHeaderCellCheckbox: FunctionComponent< + CommonProps & + ThHTMLAttributes & + EuiTableHeaderCellCheckboxProps +> = ({ children, className, scope = 'col', ...rest }) => { + const classes = classNames('euiTableHeaderCellCheckbox', className); + + return ( + +
{children}
+ + ); +};