@openedx/paragon 22.15.0 → 22.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/DataTable/TablePagination.js +4 -0
- package/dist/DataTable/TablePagination.js.map +1 -1
- package/dist/DataTable/TablePaginationMinimal.js +4 -1
- package/dist/DataTable/TablePaginationMinimal.js.map +1 -1
- package/dist/DataTable/messages.js +11 -0
- package/package.json +1 -1
- package/src/DataTable/TablePagination.jsx +5 -0
- package/src/DataTable/TablePaginationMinimal.jsx +5 -1
- package/src/DataTable/messages.js +11 -0
- package/src/DataTable/tests/TableFooter.test.jsx +5 -1
- package/src/DataTable/tests/TablePagination.test.jsx +6 -3
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import React, { useContext } from 'react';
|
|
2
|
+
import { useIntl } from 'react-intl';
|
|
2
3
|
import DataTableContext from './DataTableContext';
|
|
3
4
|
import Pagination from '../Pagination';
|
|
5
|
+
import messages from './messages';
|
|
4
6
|
function TablePagination() {
|
|
7
|
+
const intl = useIntl();
|
|
5
8
|
const {
|
|
6
9
|
pageCount,
|
|
7
10
|
state,
|
|
@@ -16,6 +19,7 @@ function TablePagination() {
|
|
|
16
19
|
currentPage: pageIndex + 1,
|
|
17
20
|
onPageSelect: pageNum => gotoPage(pageNum - 1),
|
|
18
21
|
pageCount: pageCount,
|
|
22
|
+
paginationLabel: intl.formatMessage(messages.paginationLabel),
|
|
19
23
|
icons: {
|
|
20
24
|
leftIcon: null,
|
|
21
25
|
rightIcon: null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TablePagination.js","names":["React","useContext","DataTableContext","Pagination","TablePagination","pageCount","state","gotoPage","pageIndex","createElement","variant","currentPage","onPageSelect","pageNum","icons","leftIcon","rightIcon"],"sources":["../../src/DataTable/TablePagination.jsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport DataTableContext from './DataTableContext';\nimport Pagination from '../Pagination';\n\nfunction TablePagination() {\n const {\n pageCount, state, gotoPage,\n } = useContext(DataTableContext);\n\n if (!pageCount || pageCount < 2) {\n return null;\n }\n\n const pageIndex = state?.pageIndex;\n\n return (\n <Pagination\n variant=\"reduced\"\n currentPage={pageIndex + 1}\n onPageSelect={(pageNum) => gotoPage(pageNum - 1)}\n pageCount={pageCount}\n icons={{\n leftIcon: null,\n rightIcon: null,\n }}\n />\n );\n}\n\nexport default TablePagination;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,OAAOC,UAAU,MAAM,eAAe;
|
|
1
|
+
{"version":3,"file":"TablePagination.js","names":["React","useContext","useIntl","DataTableContext","Pagination","messages","TablePagination","intl","pageCount","state","gotoPage","pageIndex","createElement","variant","currentPage","onPageSelect","pageNum","paginationLabel","formatMessage","icons","leftIcon","rightIcon"],"sources":["../../src/DataTable/TablePagination.jsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { useIntl } from 'react-intl';\nimport DataTableContext from './DataTableContext';\nimport Pagination from '../Pagination';\nimport messages from './messages';\n\nfunction TablePagination() {\n const intl = useIntl();\n\n const {\n pageCount, state, gotoPage,\n } = useContext(DataTableContext);\n\n if (!pageCount || pageCount < 2) {\n return null;\n }\n\n const pageIndex = state?.pageIndex;\n\n return (\n <Pagination\n variant=\"reduced\"\n currentPage={pageIndex + 1}\n onPageSelect={(pageNum) => gotoPage(pageNum - 1)}\n pageCount={pageCount}\n paginationLabel={intl.formatMessage(messages.paginationLabel)}\n icons={{\n leftIcon: null,\n rightIcon: null,\n }}\n />\n );\n}\n\nexport default TablePagination;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,SAASC,OAAO,QAAQ,YAAY;AACpC,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,OAAOC,UAAU,MAAM,eAAe;AACtC,OAAOC,QAAQ,MAAM,YAAY;AAEjC,SAASC,eAAeA,CAAA,EAAG;EACzB,MAAMC,IAAI,GAAGL,OAAO,CAAC,CAAC;EAEtB,MAAM;IACJM,SAAS;IAAEC,KAAK;IAAEC;EACpB,CAAC,GAAGT,UAAU,CAACE,gBAAgB,CAAC;EAEhC,IAAI,CAACK,SAAS,IAAIA,SAAS,GAAG,CAAC,EAAE;IAC/B,OAAO,IAAI;EACb;EAEA,MAAMG,SAAS,GAAGF,KAAK,EAAEE,SAAS;EAElC,oBACEX,KAAA,CAAAY,aAAA,CAACR,UAAU;IACTS,OAAO,EAAC,SAAS;IACjBC,WAAW,EAAEH,SAAS,GAAG,CAAE;IAC3BI,YAAY,EAAGC,OAAO,IAAKN,QAAQ,CAACM,OAAO,GAAG,CAAC,CAAE;IACjDR,SAAS,EAAEA,SAAU;IACrBS,eAAe,EAAEV,IAAI,CAACW,aAAa,CAACb,QAAQ,CAACY,eAAe,CAAE;IAC9DE,KAAK,EAAE;MACLC,QAAQ,EAAE,IAAI;MACdC,SAAS,EAAE;IACb;EAAE,CACH,CAAC;AAEN;AAEA,eAAef,eAAe","ignoreList":[]}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import React, { useContext } from 'react';
|
|
2
|
+
import { useIntl } from 'react-intl';
|
|
2
3
|
import DataTableContext from './DataTableContext';
|
|
3
4
|
import Pagination from '../Pagination';
|
|
4
5
|
import { ArrowBackIos, ArrowForwardIos } from '../../icons';
|
|
6
|
+
import messages from './messages';
|
|
5
7
|
function TablePaginationMinimal() {
|
|
8
|
+
const intl = useIntl();
|
|
6
9
|
const {
|
|
7
10
|
nextPage,
|
|
8
11
|
pageCount,
|
|
@@ -19,7 +22,7 @@ function TablePaginationMinimal() {
|
|
|
19
22
|
variant: "minimal",
|
|
20
23
|
currentPage: pageIndex + 1,
|
|
21
24
|
pageCount: pageCount,
|
|
22
|
-
paginationLabel:
|
|
25
|
+
paginationLabel: intl.formatMessage(messages.paginationLabel),
|
|
23
26
|
onPageSelect: pageNum => gotoPage(pageNum - 1),
|
|
24
27
|
icons: {
|
|
25
28
|
leftIcon: ArrowBackIos,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TablePaginationMinimal.js","names":["React","useContext","DataTableContext","Pagination","ArrowBackIos","ArrowForwardIos","TablePaginationMinimal","nextPage","pageCount","gotoPage","state","pageIndex","createElement","variant","currentPage","paginationLabel","onPageSelect","pageNum","icons","leftIcon","rightIcon"],"sources":["../../src/DataTable/TablePaginationMinimal.jsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport DataTableContext from './DataTableContext';\nimport Pagination from '../Pagination';\nimport { ArrowBackIos, ArrowForwardIos } from '../../icons';\n\nfunction TablePaginationMinimal() {\n const {\n nextPage, pageCount, gotoPage, state,\n } = useContext(DataTableContext);\n\n // Use nextPage as a proxy for whether or not the table is paginated\n if (!nextPage) {\n return null;\n }\n\n const pageIndex = state?.pageIndex;\n\n return (\n <Pagination\n variant=\"minimal\"\n currentPage={pageIndex + 1}\n pageCount={pageCount}\n paginationLabel
|
|
1
|
+
{"version":3,"file":"TablePaginationMinimal.js","names":["React","useContext","useIntl","DataTableContext","Pagination","ArrowBackIos","ArrowForwardIos","messages","TablePaginationMinimal","intl","nextPage","pageCount","gotoPage","state","pageIndex","createElement","variant","currentPage","paginationLabel","formatMessage","onPageSelect","pageNum","icons","leftIcon","rightIcon"],"sources":["../../src/DataTable/TablePaginationMinimal.jsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { useIntl } from 'react-intl';\nimport DataTableContext from './DataTableContext';\nimport Pagination from '../Pagination';\nimport { ArrowBackIos, ArrowForwardIos } from '../../icons';\nimport messages from './messages';\n\nfunction TablePaginationMinimal() {\n const intl = useIntl();\n\n const {\n nextPage, pageCount, gotoPage, state,\n } = useContext(DataTableContext);\n\n // Use nextPage as a proxy for whether or not the table is paginated\n if (!nextPage) {\n return null;\n }\n\n const pageIndex = state?.pageIndex;\n\n return (\n <Pagination\n variant=\"minimal\"\n currentPage={pageIndex + 1}\n pageCount={pageCount}\n paginationLabel={intl.formatMessage(messages.paginationLabel)}\n onPageSelect={(pageNum) => gotoPage(pageNum - 1)}\n icons={{\n leftIcon: ArrowBackIos,\n rightIcon: ArrowForwardIos,\n }}\n />\n );\n}\n\nexport default TablePaginationMinimal;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,SAASC,OAAO,QAAQ,YAAY;AACpC,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,OAAOC,UAAU,MAAM,eAAe;AACtC,SAASC,YAAY,EAAEC,eAAe,QAAQ,aAAa;AAC3D,OAAOC,QAAQ,MAAM,YAAY;AAEjC,SAASC,sBAAsBA,CAAA,EAAG;EAChC,MAAMC,IAAI,GAAGP,OAAO,CAAC,CAAC;EAEtB,MAAM;IACJQ,QAAQ;IAAEC,SAAS;IAAEC,QAAQ;IAAEC;EACjC,CAAC,GAAGZ,UAAU,CAACE,gBAAgB,CAAC;;EAEhC;EACA,IAAI,CAACO,QAAQ,EAAE;IACb,OAAO,IAAI;EACb;EAEA,MAAMI,SAAS,GAAGD,KAAK,EAAEC,SAAS;EAElC,oBACEd,KAAA,CAAAe,aAAA,CAACX,UAAU;IACTY,OAAO,EAAC,SAAS;IACjBC,WAAW,EAAEH,SAAS,GAAG,CAAE;IAC3BH,SAAS,EAAEA,SAAU;IACrBO,eAAe,EAAET,IAAI,CAACU,aAAa,CAACZ,QAAQ,CAACW,eAAe,CAAE;IAC9DE,YAAY,EAAGC,OAAO,IAAKT,QAAQ,CAACS,OAAO,GAAG,CAAC,CAAE;IACjDC,KAAK,EAAE;MACLC,QAAQ,EAAElB,YAAY;MACtBmB,SAAS,EAAElB;IACb;EAAE,CACH,CAAC;AAEN;AAEA,eAAeE,sBAAsB","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { defineMessages } from 'react-intl';
|
|
2
|
+
|
|
3
|
+
const messages = defineMessages({
|
|
4
|
+
paginationLabel: {
|
|
5
|
+
id: 'pgn.DataTable.paginationLabel',
|
|
6
|
+
defaultMessage: 'table pagination',
|
|
7
|
+
description: 'Accessibile name for the navigation element of a pagination component',
|
|
8
|
+
},
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
export default messages;
|
package/package.json
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import React, { useContext } from 'react';
|
|
2
|
+
import { useIntl } from 'react-intl';
|
|
2
3
|
import DataTableContext from './DataTableContext';
|
|
3
4
|
import Pagination from '../Pagination';
|
|
5
|
+
import messages from './messages';
|
|
4
6
|
|
|
5
7
|
function TablePagination() {
|
|
8
|
+
const intl = useIntl();
|
|
9
|
+
|
|
6
10
|
const {
|
|
7
11
|
pageCount, state, gotoPage,
|
|
8
12
|
} = useContext(DataTableContext);
|
|
@@ -19,6 +23,7 @@ function TablePagination() {
|
|
|
19
23
|
currentPage={pageIndex + 1}
|
|
20
24
|
onPageSelect={(pageNum) => gotoPage(pageNum - 1)}
|
|
21
25
|
pageCount={pageCount}
|
|
26
|
+
paginationLabel={intl.formatMessage(messages.paginationLabel)}
|
|
22
27
|
icons={{
|
|
23
28
|
leftIcon: null,
|
|
24
29
|
rightIcon: null,
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import React, { useContext } from 'react';
|
|
2
|
+
import { useIntl } from 'react-intl';
|
|
2
3
|
import DataTableContext from './DataTableContext';
|
|
3
4
|
import Pagination from '../Pagination';
|
|
4
5
|
import { ArrowBackIos, ArrowForwardIos } from '../../icons';
|
|
6
|
+
import messages from './messages';
|
|
5
7
|
|
|
6
8
|
function TablePaginationMinimal() {
|
|
9
|
+
const intl = useIntl();
|
|
10
|
+
|
|
7
11
|
const {
|
|
8
12
|
nextPage, pageCount, gotoPage, state,
|
|
9
13
|
} = useContext(DataTableContext);
|
|
@@ -20,7 +24,7 @@ function TablePaginationMinimal() {
|
|
|
20
24
|
variant="minimal"
|
|
21
25
|
currentPage={pageIndex + 1}
|
|
22
26
|
pageCount={pageCount}
|
|
23
|
-
paginationLabel=
|
|
27
|
+
paginationLabel={intl.formatMessage(messages.paginationLabel)}
|
|
24
28
|
onPageSelect={(pageNum) => gotoPage(pageNum - 1)}
|
|
25
29
|
icons={{
|
|
26
30
|
leftIcon: ArrowBackIos,
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { defineMessages } from 'react-intl';
|
|
2
|
+
|
|
3
|
+
const messages = defineMessages({
|
|
4
|
+
paginationLabel: {
|
|
5
|
+
id: 'pgn.DataTable.paginationLabel',
|
|
6
|
+
defaultMessage: 'table pagination',
|
|
7
|
+
description: 'Accessibile name for the navigation element of a pagination component',
|
|
8
|
+
},
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
export default messages;
|
|
@@ -32,7 +32,11 @@ describe('<TableFooter />', () => {
|
|
|
32
32
|
it('Renders the default footer', () => {
|
|
33
33
|
render(<TableFooterWrapper />);
|
|
34
34
|
expect(screen.getByTestId('row-status')).toBeInTheDocument();
|
|
35
|
-
|
|
35
|
+
|
|
36
|
+
// The TableFooter contains two components that have the aria-label
|
|
37
|
+
// "table pagination" - DataTable and DataTableMinimal.
|
|
38
|
+
const tables = screen.getAllByLabelText('table pagination');
|
|
39
|
+
tables.forEach(table => expect(table).toBeInTheDocument());
|
|
36
40
|
});
|
|
37
41
|
|
|
38
42
|
it('accepts a class name', () => {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { render, act, screen } from '@testing-library/react';
|
|
3
|
+
import { IntlProvider } from 'react-intl';
|
|
3
4
|
import userEvent from '@testing-library/user-event';
|
|
4
5
|
|
|
5
6
|
import TablePagination from '../TablePagination';
|
|
@@ -14,9 +15,11 @@ const instance = {
|
|
|
14
15
|
// eslint-disable-next-line react/prop-types
|
|
15
16
|
function PaginationWrapper({ value }) {
|
|
16
17
|
return (
|
|
17
|
-
<
|
|
18
|
-
<
|
|
19
|
-
|
|
18
|
+
<IntlProvider>
|
|
19
|
+
<DataTableContext.Provider value={value}>
|
|
20
|
+
<TablePagination />
|
|
21
|
+
</DataTableContext.Provider>
|
|
22
|
+
</IntlProvider>
|
|
20
23
|
);
|
|
21
24
|
}
|
|
22
25
|
|