From 06a25cdce928916b9c75a8a5dbff88b3d1d3693a Mon Sep 17 00:00:00 2001 From: Cheton Wu Date: Fri, 3 Mar 2017 10:54:43 +0800 Subject: [PATCH 1/3] The "emptyText" prop can either be one React node or a function that returns one React node --- src/Table.jsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Table.jsx b/src/Table.jsx index 6cf3cdc9e..9cef8dd7f 100644 --- a/src/Table.jsx +++ b/src/Table.jsx @@ -33,7 +33,7 @@ export default class Table extends React.Component { showHeader: PropTypes.bool, title: PropTypes.func, footer: PropTypes.func, - emptyText: PropTypes.func, + emptyText: PropTypes.oneOfType([PropTypes.node, PropTypes.func]), scroll: PropTypes.object, rowRef: PropTypes.func, getBodyWrapper: PropTypes.func, @@ -63,7 +63,7 @@ export default class Table extends React.Component { scroll: {}, rowRef: () => null, getBodyWrapper: body => body, - emptyText: () => 'No Data', + emptyText: 'No Data', } constructor(props) { @@ -558,7 +558,7 @@ export default class Table extends React.Component { const { emptyText, prefixCls, data } = this.props; return !data.length ? (
- {emptyText()} + {(typeof emptyText === 'function') ? emptyText() : emptyText}
) : null; } From dd4152dbf4ec4803a44178f154b2bbcd486b96ba Mon Sep 17 00:00:00 2001 From: Cheton Wu Date: Fri, 3 Mar 2017 13:27:57 +0800 Subject: [PATCH 2/3] Rollback the emptyText prop to the original default value --- src/Table.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Table.jsx b/src/Table.jsx index 9cef8dd7f..e1e2f85e3 100644 --- a/src/Table.jsx +++ b/src/Table.jsx @@ -63,7 +63,7 @@ export default class Table extends React.Component { scroll: {}, rowRef: () => null, getBodyWrapper: body => body, - emptyText: 'No Data', + emptyText: () => 'No Data', } constructor(props) { From 005c4d9708a43e7ac5a7570cb1ea57bb4c7ce998 Mon Sep 17 00:00:00 2001 From: Cheton Wu Date: Tue, 14 Mar 2017 12:09:31 +0800 Subject: [PATCH 3/3] Add a test for PR #130 --- tests/Table.spec.js | 7 +++ tests/__snapshots__/Table.spec.js.snap | 66 ++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) diff --git a/tests/Table.spec.js b/tests/Table.spec.js index 5fa17a85f..c3111c69a 100644 --- a/tests/Table.spec.js +++ b/tests/Table.spec.js @@ -31,6 +31,13 @@ describe('Table', () => { expect(renderToJson(wrapper)).toMatchSnapshot(); }); + it('renders empty text correctly', () => { + const wrapper1 = render(createTable({ data: [], emptyText: 'No data' })); + const wrapper2 = render(createTable({ data: [], emptyText: () => 'No data' })); + expect(renderToJson(wrapper1)).toMatchSnapshot(); + expect(renderToJson(wrapper2)).toMatchSnapshot(); + }); + it('renders without header', () => { const wrapper = render(createTable({ showHeader: false })); expect(renderToJson(wrapper)).toMatchSnapshot(); diff --git a/tests/__snapshots__/Table.spec.js.snap b/tests/__snapshots__/Table.spec.js.snap index fef348633..bf7fabe50 100644 --- a/tests/__snapshots__/Table.spec.js.snap +++ b/tests/__snapshots__/Table.spec.js.snap @@ -273,6 +273,72 @@ exports[`Table renders custom cell correctly 1`] = ` `; +exports[`Table renders empty text correctly 1`] = ` +
+
+
+ + + + + + + + + + +
+ Name +
+
+
+ No data +
+
+
+`; + +exports[`Table renders empty text correctly 2`] = ` +
+
+
+ + + + + + + + + + +
+ Name +
+
+
+ No data +
+
+
+`; + exports[`Table renders fixed header correctly 1`] = `