@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.
@@ -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;AAEtC,SAASC,eAAeA,CAAA,EAAG;EACzB,MAAM;IACJC,SAAS;IAAEC,KAAK;IAAEC;EACpB,CAAC,GAAGN,UAAU,CAACC,gBAAgB,CAAC;EAEhC,IAAI,CAACG,SAAS,IAAIA,SAAS,GAAG,CAAC,EAAE;IAC/B,OAAO,IAAI;EACb;EAEA,MAAMG,SAAS,GAAGF,KAAK,EAAEE,SAAS;EAElC,oBACER,KAAA,CAAAS,aAAA,CAACN,UAAU;IACTO,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,KAAK,EAAE;MACLC,QAAQ,EAAE,IAAI;MACdC,SAAS,EAAE;IACb;EAAE,CACH,CAAC;AAEN;AAEA,eAAeZ,eAAe","ignoreList":[]}
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: "table pagination",
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=\"table pagination\"\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,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,OAAOC,UAAU,MAAM,eAAe;AACtC,SAASC,YAAY,EAAEC,eAAe,QAAQ,aAAa;AAE3D,SAASC,sBAAsBA,CAAA,EAAG;EAChC,MAAM;IACJC,QAAQ;IAAEC,SAAS;IAAEC,QAAQ;IAAEC;EACjC,CAAC,GAAGT,UAAU,CAACC,gBAAgB,CAAC;;EAEhC;EACA,IAAI,CAACK,QAAQ,EAAE;IACb,OAAO,IAAI;EACb;EAEA,MAAMI,SAAS,GAAGD,KAAK,EAAEC,SAAS;EAElC,oBACEX,KAAA,CAAAY,aAAA,CAACT,UAAU;IACTU,OAAO,EAAC,SAAS;IACjBC,WAAW,EAAEH,SAAS,GAAG,CAAE;IAC3BH,SAAS,EAAEA,SAAU;IACrBO,eAAe,EAAC,kBAAkB;IAClCC,YAAY,EAAGC,OAAO,IAAKR,QAAQ,CAACQ,OAAO,GAAG,CAAC,CAAE;IACjDC,KAAK,EAAE;MACLC,QAAQ,EAAEf,YAAY;MACtBgB,SAAS,EAAEf;IACb;EAAE,CACH,CAAC;AAEN;AAEA,eAAeC,sBAAsB","ignoreList":[]}
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@openedx/paragon",
3
- "version": "22.15.0",
3
+ "version": "22.15.1",
4
4
  "description": "Accessible, responsive UI component library based on Bootstrap.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -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="table pagination"
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
- expect(screen.getByLabelText('table pagination')).toBeInTheDocument();
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
- <DataTableContext.Provider value={value}>
18
- <TablePagination />
19
- </DataTableContext.Provider>
18
+ <IntlProvider>
19
+ <DataTableContext.Provider value={value}>
20
+ <TablePagination />
21
+ </DataTableContext.Provider>
22
+ </IntlProvider>
20
23
  );
21
24
  }
22
25