@royaloperahouse/harmonic 0.12.0 → 0.12.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/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## [0.12.1]
2
+ - Table: improve the pagination
3
+
1
4
  ## [0.12.0]
2
5
  - AnchorBar: add visual improvements
3
6
  - Footer: align the grid
@@ -11791,7 +11791,7 @@ var _templateObject$1m, _templateObject2$14, _templateObject3$S, _templateObject
11791
11791
  var TableContainer = /*#__PURE__*/styled__default.table(_templateObject$1m || (_templateObject$1m = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n border-collapse: collapse;\n"])));
11792
11792
  var Container$6 = /*#__PURE__*/styled__default.div(_templateObject2$14 || (_templateObject2$14 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n overflow-x: auto;\n"])));
11793
11793
  var Wrapper$8 = /*#__PURE__*/styled__default.div(_templateObject3$S || (_templateObject3$S = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n width: 100%;\n"])));
11794
- var TableHeader = /*#__PURE__*/styled__default.th(_templateObject4$H || (_templateObject4$H = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n padding: 12px;\n text-align: left;\n text-transform: uppercase;\n border: 1px solid var(--color-primary-black);\n\n &:last-child {\n white-space: nowrap;\n width: auto;\n }\n\n &:not(:last-child) {\n width: ", ";\n }\n\n @media ", " {\n &:last-child {\n white-space: nowrap;\n }\n }\n\n @media ", " {\n min-width: 150px;\n\n &:last-child {\n white-space: normal;\n }\n }\n"])), function (props) {
11794
+ var TableHeader = /*#__PURE__*/styled__default.th(_templateObject4$H || (_templateObject4$H = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n padding: 12px;\n text-align: left;\n text-transform: capitalize;\n border: 1px solid var(--color-primary-black);\n\n &:last-child {\n white-space: nowrap;\n width: auto;\n }\n\n &:not(:last-child) {\n width: ", ";\n }\n\n @media ", " {\n &:last-child {\n white-space: nowrap;\n }\n }\n\n @media ", " {\n min-width: 150px;\n\n &:last-child {\n white-space: normal;\n }\n }\n"])), function (props) {
11795
11795
  return "calc(100% / " + (props.columns - 1) + ")";
11796
11796
  }, devices.tablet, devices.mobile);
11797
11797
  var TableCell = /*#__PURE__*/styled__default.td(_templateObject5$A || (_templateObject5$A = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n padding: 12px;\n text-align: left;\n vertical-align: middle;\n border: 1px solid var(--color-primary-black);\n\n &:last-child {\n width: auto;\n }\n\n &:not(:last-child) {\n width: ", ";\n }\n\n > span > svg {\n width: 24px;\n height: 24px;\n }\n\n @media ", " {\n min-width: 150px;\n }\n"])), function (props) {
@@ -11902,20 +11902,53 @@ var Table = function Table(_ref) {
11902
11902
  var _useState2 = React.useState(false),
11903
11903
  showScrollButtons = _useState2[0],
11904
11904
  setShowScrollButtons = _useState2[1];
11905
+ var tableRef = React.useRef(null);
11906
+ var _useState3 = React.useState(true),
11907
+ atStart = _useState3[0],
11908
+ setAtStart = _useState3[1];
11909
+ var _useState4 = React.useState(false),
11910
+ atEnd = _useState4[0],
11911
+ setAtEnd = _useState4[1];
11912
+ var checkScrollPosition = function checkScrollPosition() {
11913
+ if (tableRef.current) {
11914
+ var _tableRef$current = tableRef.current,
11915
+ scrollLeft = _tableRef$current.scrollLeft,
11916
+ scrollWidth = _tableRef$current.scrollWidth,
11917
+ clientWidth = _tableRef$current.clientWidth;
11918
+ setAtStart(scrollLeft === 0);
11919
+ setAtEnd(scrollLeft + clientWidth >= scrollWidth);
11920
+ }
11921
+ };
11922
+ var handleNext = function handleNext() {
11923
+ scrollTable(tableRef, 'right');
11924
+ };
11925
+ var handlePrev = function handlePrev() {
11926
+ scrollTable(tableRef, 'left');
11927
+ };
11905
11928
  var handlePageChange = function handlePageChange(page) {
11906
11929
  setCurrentPage(page - 1);
11907
11930
  };
11908
- var tableRef = React.useRef(null);
11909
11931
  React.useLayoutEffect(function () {
11910
11932
  var horizontalScroll = function horizontalScroll() {
11911
11933
  if (tableRef.current) {
11912
11934
  setShowScrollButtons(tableRef.current.scrollWidth > tableRef.current.clientWidth);
11935
+ checkScrollPosition();
11913
11936
  }
11914
11937
  };
11938
+ var handleScroll = function handleScroll() {
11939
+ checkScrollPosition();
11940
+ };
11915
11941
  horizontalScroll();
11916
11942
  window.addEventListener('resize', horizontalScroll);
11943
+ var table = tableRef.current;
11944
+ if (table) {
11945
+ table.addEventListener('scroll', handleScroll);
11946
+ }
11917
11947
  return function () {
11918
- return window.removeEventListener('resize', horizontalScroll);
11948
+ window.removeEventListener('resize', horizontalScroll);
11949
+ if (table) {
11950
+ table.removeEventListener('scroll', handleScroll);
11951
+ }
11919
11952
  };
11920
11953
  }, []);
11921
11954
  var totalRows = Array.isArray(children) ? children.length : 1;
@@ -11942,12 +11975,10 @@ var Table = function Table(_ref) {
11942
11975
  return /*#__PURE__*/React__default.createElement(Wrapper$8, {
11943
11976
  className: className
11944
11977
  }, showScrollButtons && (/*#__PURE__*/React__default.createElement(ScrollButtons, null, /*#__PURE__*/React__default.createElement(RotatorButtons, {
11945
- onClickPrev: function onClickPrev() {
11946
- return scrollTable(tableRef, 'left');
11947
- },
11948
- onClickNext: function onClickNext() {
11949
- return scrollTable(tableRef, 'right');
11950
- }
11978
+ onClickPrev: handlePrev,
11979
+ onClickNext: handleNext,
11980
+ availablePrev: !atStart,
11981
+ availableNext: !atEnd
11951
11982
  }))), /*#__PURE__*/React__default.createElement(Container$6, {
11952
11983
  role: "table",
11953
11984
  tabIndex: 0,