@mjhls/mjh-framework 1.0.163 → 1.0.164

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/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
 
2
- # mjh-framework v. 1.0.163
2
+ # mjh-framework v. 1.0.164
3
3
 
4
4
 
5
5
 
package/dist/index.es.js CHANGED
@@ -14873,6 +14873,8 @@ var Poll = function Poll(_ref) {
14873
14873
  );
14874
14874
  };
14875
14875
 
14876
+ var numberOfPaginations = main_35 ? 4 : 10;
14877
+
14876
14878
  var Quiz = function Quiz(_ref) {
14877
14879
  var quizzes = _ref.quizzes,
14878
14880
  serializerArguments = _ref.serializerArguments;
@@ -14889,45 +14891,106 @@ var Quiz = function Quiz(_ref) {
14889
14891
  showAnswer = _useState4[0],
14890
14892
  setShowAnswer = _useState4[1];
14891
14893
 
14892
- var changePage = function changePage(page) {
14893
- if (page > 0 && page <= pageCount) {
14894
- setShowAnswer(false);
14895
- setCurrentPage(page);
14896
- }
14894
+ var _useState5 = useState(0),
14895
+ _useState6 = slicedToArray(_useState5, 2),
14896
+ startIndex = _useState6[0],
14897
+ setStartIndex = _useState6[1];
14898
+
14899
+ var _useState7 = useState(numberOfPaginations - 1),
14900
+ _useState8 = slicedToArray(_useState7, 2),
14901
+ endIndex = _useState8[0],
14902
+ setEndIndex = _useState8[1];
14903
+
14904
+ var _useState9 = useState([]),
14905
+ _useState10 = slicedToArray(_useState9, 2),
14906
+ pages = _useState10[0],
14907
+ setPages = _useState10[1];
14908
+
14909
+ useEffect(function () {
14910
+ var totalPages = Array.from({ length: pageCount }, function (v, k) {
14911
+ return k + 1;
14912
+ });
14913
+ var filteredPages = totalPages.slice(startIndex, endIndex + 1);
14914
+ setPages(filteredPages);
14915
+ }, [startIndex, endIndex, pageCount]);
14916
+
14917
+ var validateIndex = function validateIndex(index) {
14918
+ return index >= 0 && index <= pageCount - 1;
14897
14919
  };
14898
14920
 
14899
- var renderPagination = function renderPagination() {
14900
- var pages = [];
14901
-
14902
- var _loop = function _loop(i) {
14903
- pages.push(React__default.createElement(
14904
- Pagination.Item,
14905
- { onClick: function onClick() {
14906
- return changePage(i);
14907
- }, active: i === currentPage },
14908
- i
14909
- ));
14910
- };
14921
+ var changePage = function changePage(control) {
14922
+ setShowAnswer(false);
14923
+ switch (control) {
14924
+ case 'first':
14925
+ setCurrentPage(1);
14926
+ setStartIndex(0);
14927
+ setEndIndex(numberOfPaginations - 1);
14928
+ break;
14929
+ case 'last':
14930
+ setCurrentPage(pageCount);
14931
+ setStartIndex(pageCount - pageCount % numberOfPaginations);
14932
+ setEndIndex(pageCount - pageCount % numberOfPaginations + numberOfPaginations - 1);
14933
+ break;
14934
+ case 'next':
14935
+ setCurrentPage(currentPage + 1);
14936
+ if (currentPage % numberOfPaginations === 0) {
14937
+ setStartIndex(startIndex + numberOfPaginations);
14938
+ setEndIndex(endIndex + numberOfPaginations);
14939
+ }
14940
+ break;
14941
+ case 'prev':
14942
+ setCurrentPage(currentPage - 1);
14943
+ if (currentPage % numberOfPaginations === 1) {
14944
+ setStartIndex(startIndex - numberOfPaginations);
14945
+ setEndIndex(endIndex - numberOfPaginations);
14946
+ }
14947
+ break;
14948
+ default:
14949
+ setCurrentPage(control);
14950
+ }
14951
+ };
14911
14952
 
14912
- for (var i = 1; i <= pageCount; i++) {
14913
- _loop(i);
14953
+ var renderNewPages = function renderNewPages(section) {
14954
+ if (section === 'prev') {
14955
+ setStartIndex(startIndex - numberOfPaginations);
14956
+ setEndIndex(endIndex - numberOfPaginations);
14957
+ } else if (section === 'next') {
14958
+ setStartIndex(startIndex + numberOfPaginations);
14959
+ setEndIndex(endIndex + numberOfPaginations);
14914
14960
  }
14961
+ };
14962
+
14963
+ var renderPagination = function renderPagination() {
14915
14964
  return React__default.createElement(
14916
14965
  Pagination,
14917
- { className: 'p-0 m-0' },
14966
+ { className: 'p-0 m-0', size: main_35 && 'sm' },
14918
14967
  React__default.createElement(Pagination.First, { onClick: function onClick() {
14919
- return changePage(1);
14920
- } }),
14968
+ return changePage('first');
14969
+ }, disabled: currentPage === 1 }),
14921
14970
  React__default.createElement(Pagination.Prev, { onClick: function onClick() {
14922
- return changePage(currentPage - 1);
14923
- } }),
14924
- pages,
14971
+ return changePage('prev');
14972
+ }, disabled: currentPage === 1 }),
14973
+ React__default.createElement(Pagination.Ellipsis, { onClick: function onClick() {
14974
+ return renderNewPages('prev');
14975
+ }, disabled: !validateIndex(startIndex - numberOfPaginations) }),
14976
+ pages.map(function (page) {
14977
+ return React__default.createElement(
14978
+ Pagination.Item,
14979
+ { key: page, active: page === currentPage, onClick: function onClick() {
14980
+ return changePage(page);
14981
+ } },
14982
+ page
14983
+ );
14984
+ }),
14985
+ React__default.createElement(Pagination.Ellipsis, { onClick: function onClick() {
14986
+ return renderNewPages('next');
14987
+ }, disabled: !validateIndex(startIndex + numberOfPaginations) }),
14925
14988
  React__default.createElement(Pagination.Next, { onClick: function onClick() {
14926
- return changePage(currentPage + 1);
14927
- } }),
14989
+ return changePage('next');
14990
+ }, disabled: currentPage === pageCount }),
14928
14991
  React__default.createElement(Pagination.Last, { onClick: function onClick() {
14929
- return changePage(pageCount);
14930
- } })
14992
+ return changePage('last');
14993
+ }, disabled: currentPage === pageCount })
14931
14994
  );
14932
14995
  };
14933
14996