@twreporter/react-components 8.10.0-rc.1 → 8.10.0-rc.2

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
@@ -3,6 +3,18 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [8.10.0-rc.2](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/react-components@8.10.0-rc.1...@twreporter/react-components@8.10.0-rc.2) (2022-06-30)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * new bookmark should be fetched when mount ([9bb438f](https://github.com/twreporter/twreporter-npm-packages/commit/9bb438f81bd321fee47f55c872589091d8db8be6))
12
+ * remove redundant code ([7468cfa](https://github.com/twreporter/twreporter-npm-packages/commit/7468cfab10a51d092548191d14ab7eeb7839c871))
13
+
14
+
15
+
16
+
17
+
6
18
  # [8.10.0-rc.1](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/react-components@8.10.0-rc.0...@twreporter/react-components@8.10.0-rc.1) (2022-06-14)
7
19
 
8
20
 
@@ -13,7 +13,7 @@ var _CSSTransition = _interopRequireDefault(require("react-transition-group/CSST
13
13
 
14
14
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
15
 
16
- var _react = _interopRequireDefault(require("react"));
16
+ var _react = _interopRequireWildcard(require("react"));
17
17
 
18
18
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
19
19
 
@@ -39,31 +39,25 @@ var _get = _interopRequireDefault(require("lodash/get"));
39
39
 
40
40
  var _map = _interopRequireDefault(require("lodash/map"));
41
41
 
42
+ var _slice = _interopRequireDefault(require("lodash/slice"));
43
+
42
44
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
43
45
 
44
46
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
45
47
 
46
48
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
47
49
 
48
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
49
-
50
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
51
-
52
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
53
-
54
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
50
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
55
51
 
56
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
52
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
57
53
 
58
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
54
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
59
55
 
60
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
56
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
61
57
 
62
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
58
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
63
59
 
64
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
65
-
66
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
60
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
67
61
 
68
62
  var _twreporterRedux$acti = _redux["default"].actions,
69
63
  deleteSingleBookmark = _twreporterRedux$acti.deleteSingleBookmark,
@@ -72,7 +66,8 @@ var reduxStatePropKeys = _redux["default"].reduxStateFields;
72
66
  var _ = {
73
67
  findIndex: _findIndex["default"],
74
68
  get: _get["default"],
75
- map: _map["default"]
69
+ map: _map["default"],
70
+ slice: _slice["default"]
76
71
  };
77
72
  var defaultLimit = 5;
78
73
  var defaultSort = 'created_at';
@@ -109,163 +104,131 @@ var Container = /*#__PURE__*/_styledComponents["default"].div.withConfig({
109
104
  componentId: "w84xlj-1"
110
105
  })(["", ""], reactTransitionCSS);
111
106
 
112
- var BookmarkList = /*#__PURE__*/function (_React$Component) {
113
- _inherits(BookmarkList, _React$Component);
107
+ var BookmarkList = function BookmarkList(_ref) {
108
+ var _ref$releaseBranch = _ref.releaseBranch,
109
+ releaseBranch = _ref$releaseBranch === void 0 ? _releaseBranch["default"].master : _ref$releaseBranch,
110
+ bookmarks = _ref.bookmarks,
111
+ total = _ref.total,
112
+ getMultipleBookmarks = _ref.getMultipleBookmarks,
113
+ deleteSingleBookmark = _ref.deleteSingleBookmark,
114
+ isAuthed = _ref.isAuthed,
115
+ jwt = _ref.jwt,
116
+ userID = _ref.userID;
117
+
118
+ var _useState = (0, _react.useState)(false),
119
+ _useState2 = _slicedToArray(_useState, 2),
120
+ showConfirmation = _useState2[0],
121
+ setShowConfirmation = _useState2[1];
122
+
123
+ var _useState3 = (0, _react.useState)(),
124
+ _useState4 = _slicedToArray(_useState3, 2),
125
+ idToBeDeleted = _useState4[0],
126
+ setIdToBeDeleted = _useState4[1];
127
+
128
+ var _useState5 = (0, _react.useState)(total <= defaultLimit ? total : defaultLimit),
129
+ _useState6 = _slicedToArray(_useState5, 2),
130
+ numberToShow = _useState6[0],
131
+ setNumberToShow = _useState6[1];
132
+
133
+ var _useState7 = (0, _react.useState)(bookmarks),
134
+ _useState8 = _slicedToArray(_useState7, 2),
135
+ bookmarkToShow = _useState8[0],
136
+ setBookmarkToShow = _useState8[1];
137
+
138
+ var _defaultBodyOverflow = 'scroll';
139
+ (0, _react.useEffect)(function () {
140
+ // check authorization
141
+ // redirect to singin page if user has not been authorized
142
+ if (!isAuthed || !jwt) {
143
+ var currentHref = typeof window === 'undefined' ? '' : window.location.href;
144
+ window.location.href = (0, _signInHref.getSignInHref)(currentHref);
145
+ } // set overflow value
146
+
147
+
148
+ _defaultBodyOverflow = _.get(document, 'body.style.overflow', _defaultBodyOverflow); // check bookmark update
149
+
150
+ var offset = 0;
151
+ getMultipleBookmarks(jwt, userID, offset, defaultLimit, defaultSort);
152
+ }, []);
153
+ (0, _react.useEffect)(function () {
154
+ document.body.style.overflow = showConfirmation ? 'hidden' : _defaultBodyOverflow;
155
+ }, [showConfirmation]);
156
+ (0, _react.useEffect)(function () {
157
+ setBookmarkToShow(_.slice(bookmarks, 0, numberToShow));
158
+ }, [numberToShow, bookmarks]);
159
+ (0, _react.useEffect)(function () {
160
+ if (total - numberToShow < defaultLimit) {
161
+ setNumberToShow(total);
162
+ }
163
+ }, [total]);
114
164
 
115
- var _super = _createSuper(BookmarkList);
165
+ var loadMoreBookmarks = function loadMoreBookmarks() {
166
+ var nextNumberToShow = numberToShow + defaultLimit < total ? numberToShow + defaultLimit : total;
116
167
 
117
- function BookmarkList(props) {
118
- var _this;
168
+ if (total === bookmarks.length) {
169
+ setNumberToShow(nextNumberToShow);
170
+ } else if (numberToShow < total) {
171
+ var offset = numberToShow;
172
+ getMultipleBookmarks(jwt, userID, offset, defaultLimit, defaultSort);
173
+ setNumberToShow(nextNumberToShow);
174
+ }
175
+ };
119
176
 
120
- _classCallCheck(this, BookmarkList);
177
+ var hideComfirmation = function hideComfirmation() {
178
+ setShowConfirmation(false);
179
+ };
121
180
 
122
- _this = _super.call(this, props);
123
- _this.state = {
124
- showConfirmation: false,
125
- idToBeDeleted: null
126
- };
127
- _this.loadMoreBookmarks = _this.loadMoreBookmarks.bind(_assertThisInitialized(_this));
128
- _this.handleDeleteButtonClicked = _this.handleDeleteButtonClicked.bind(_assertThisInitialized(_this));
129
- _this.hideComfirmation = _this.hideComfirmation.bind(_assertThisInitialized(_this));
130
- _this.handleDeletingConfirmed = _this.handleDeletingConfirmed.bind(_assertThisInitialized(_this));
131
- _this._defaultBodyOverflow = 'scroll';
132
- return _this;
133
- }
181
+ var showComfirmation = function showComfirmation() {
182
+ setShowConfirmation(true);
183
+ };
134
184
 
135
- _createClass(BookmarkList, [{
136
- key: "componentDidMount",
137
- value: function componentDidMount() {
138
- this.checkAuthorization();
139
- this._defaultBodyOverflow = _.get(document, 'body.style.overflow', this._defaultBodyOverflow);
140
- var bookmarks = this.props.bookmarks;
141
- var _this$props = this.props,
142
- jwt = _this$props.jwt,
143
- userID = _this$props.userID,
144
- getMultipleBookmarks = _this$props.getMultipleBookmarks;
145
- var offset = bookmarks.length;
146
- getMultipleBookmarks(jwt, userID, offset, defaultLimit, defaultSort);
147
- } // Redirect to singin page if user has not been authorized
148
-
149
- }, {
150
- key: "checkAuthorization",
151
- value: function checkAuthorization() {
152
- var _this$props2 = this.props,
153
- isAuthed = _this$props2.isAuthed,
154
- jwt = _this$props2.jwt;
155
-
156
- if (!isAuthed || !jwt) {
157
- var currentHref = typeof window === 'undefined' ? '' : window.location.href;
158
- window.location.href = (0, _signInHref.getSignInHref)(currentHref);
159
- }
160
- }
161
- }, {
162
- key: "loadMoreBookmarks",
163
- value: function loadMoreBookmarks() {
164
- var _this$props3 = this.props,
165
- total = _this$props3.total,
166
- bookmarks = _this$props3.bookmarks,
167
- jwt = _this$props3.jwt,
168
- userID = _this$props3.userID,
169
- getMultipleBookmarks = _this$props3.getMultipleBookmarks;
170
- var offset = bookmarks.length;
171
-
172
- if (offset < total) {
173
- getMultipleBookmarks(jwt, userID, offset, defaultLimit, defaultSort);
174
- }
175
- }
176
- }, {
177
- key: "handleDeleteButtonClicked",
178
- value: function handleDeleteButtonClicked(bookmarkID) {
179
- this.setRecordToBeDeleted(bookmarkID);
180
- this.showConfirmation();
181
- }
182
- }, {
183
- key: "setRecordToBeDeleted",
184
- value: function setRecordToBeDeleted(bookmarkID) {
185
- this.setState({
186
- idToBeDeleted: bookmarkID
187
- });
188
- }
189
- }, {
190
- key: "handleDeletingConfirmed",
191
- value: function handleDeletingConfirmed() {
192
- this.hideComfirmation();
193
- var idToBeDeleted = this.state.idToBeDeleted;
194
-
195
- if (typeof idToBeDeleted === 'number') {
196
- var _this$props4 = this.props,
197
- jwt = _this$props4.jwt,
198
- userID = _this$props4.userID,
199
- _deleteSingleBookmark = _this$props4.deleteSingleBookmark;
200
-
201
- _deleteSingleBookmark(jwt, userID, idToBeDeleted);
202
- } else {
203
- console.error("Deleting bookmark failed. Bookmark id should be a number, but is ".concat(idToBeDeleted)); // eslint-disable-line no-console
204
- }
205
-
206
- this.setRecordToBeDeleted(null);
207
- }
208
- }, {
209
- key: "hideComfirmation",
210
- value: function hideComfirmation() {
211
- var _this2 = this;
212
-
213
- this.setState({
214
- showConfirmation: false
215
- }, function () {
216
- document.body.style.overflow = _this2._defaultBodyOverflow;
217
- });
218
- }
219
- }, {
220
- key: "showConfirmation",
221
- value: function showConfirmation() {
222
- this.setState({
223
- showConfirmation: true
224
- }, function () {
225
- document.body.style.overflow = 'hidden';
226
- });
227
- }
228
- }, {
229
- key: "render",
230
- value: function render() {
231
- var _this$props5 = this.props,
232
- isAuthed = _this$props5.isAuthed,
233
- jwt = _this$props5.jwt;
234
- if (!isAuthed || !jwt) return /*#__PURE__*/_react["default"].createElement(_redirectToSignIn["default"], null, "\u60A8\u5C1A\u672A\u767B\u5165\uFF0C\u5C07\u8DF3\u8F49\u81F3\u767B\u5165\u9801");
235
- var _this$props6 = this.props,
236
- bookmarks = _this$props6.bookmarks,
237
- total = _this$props6.total,
238
- releaseBranch = _this$props6.releaseBranch;
239
- return /*#__PURE__*/_react["default"].createElement(Container, null, /*#__PURE__*/_react["default"].createElement(_bookmarks["default"], {
240
- bookmarks: bookmarks,
241
- handleDelete: this.handleDeleteButtonClicked,
242
- total: total,
243
- releaseBranch: releaseBranch
244
- }), /*#__PURE__*/_react["default"].createElement(MoreContainer, {
245
- hasMore: bookmarks.length < total
246
- }, /*#__PURE__*/_react["default"].createElement(_more["default"], {
247
- loadMore: this.loadMoreBookmarks
248
- }, /*#__PURE__*/_react["default"].createElement("span", null, text.loadMore))), /*#__PURE__*/_react["default"].createElement(_CSSTransition["default"], {
249
- classNames: transitionName,
250
- "in": this.state.showConfirmation,
251
- timeout: {
252
- enter: transitionDuration.enter,
253
- exit: transitionDuration.leave
254
- },
255
- mountOnEnter: true,
256
- unmountOnExit: true
257
- }, /*#__PURE__*/_react["default"].createElement(_confirmation["default"], {
258
- onCancel: this.hideComfirmation,
259
- onConfirm: this.handleDeletingConfirmed,
260
- content: text.dialog.content,
261
- confirm: text.dialog.confirm,
262
- cancel: text.dialog.cancel
263
- })));
185
+ var handleDeleteButtonClicked = function handleDeleteButtonClicked(bookmarkID) {
186
+ setIdToBeDeleted(bookmarkID);
187
+ showComfirmation();
188
+ };
189
+
190
+ var handleDeletingConfirmed = function handleDeletingConfirmed() {
191
+ hideComfirmation();
192
+
193
+ if (typeof idToBeDeleted === 'number') {
194
+ deleteSingleBookmark(jwt, userID, idToBeDeleted);
195
+ } else {
196
+ console.error("Deleting bookmark failed. Bookmark id should be a number, but is ".concat(idToBeDeleted)); // eslint-disable-line no-console
264
197
  }
265
- }]);
266
198
 
267
- return BookmarkList;
268
- }(_react["default"].Component);
199
+ setIdToBeDeleted(null);
200
+ };
201
+
202
+ if (!isAuthed || !jwt) {
203
+ return /*#__PURE__*/_react["default"].createElement(_redirectToSignIn["default"], null, "\u60A8\u5C1A\u672A\u767B\u5165\uFF0C\u5C07\u8DF3\u8F49\u81F3\u767B\u5165\u9801");
204
+ }
205
+
206
+ return /*#__PURE__*/_react["default"].createElement(Container, null, /*#__PURE__*/_react["default"].createElement(_bookmarks["default"], {
207
+ bookmarks: bookmarkToShow,
208
+ handleDelete: handleDeleteButtonClicked,
209
+ total: total,
210
+ releaseBranch: releaseBranch
211
+ }), /*#__PURE__*/_react["default"].createElement(MoreContainer, {
212
+ hasMore: numberToShow < total
213
+ }, /*#__PURE__*/_react["default"].createElement(_more["default"], {
214
+ loadMore: loadMoreBookmarks
215
+ }, /*#__PURE__*/_react["default"].createElement("span", null, text.loadMore))), /*#__PURE__*/_react["default"].createElement(_CSSTransition["default"], {
216
+ classNames: transitionName,
217
+ "in": showConfirmation,
218
+ timeout: {
219
+ enter: transitionDuration.enter,
220
+ exit: transitionDuration.leave
221
+ },
222
+ mountOnEnter: true,
223
+ unmountOnExit: true
224
+ }, /*#__PURE__*/_react["default"].createElement(_confirmation["default"], {
225
+ onCancel: hideComfirmation,
226
+ onConfirm: handleDeletingConfirmed,
227
+ content: text.dialog.content,
228
+ confirm: text.dialog.confirm,
229
+ cancel: text.dialog.cancel
230
+ })));
231
+ };
269
232
 
270
233
  BookmarkList.propTypes = {
271
234
  releaseBranch: _propTypes2["default"].releaseBranch,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@twreporter/react-components",
3
- "version": "8.10.0-rc.1",
3
+ "version": "8.10.0-rc.2",
4
4
  "main": "lib/index.js",
5
5
  "repository": "https://github.com/twreporter/twreporter-npm-packages.git",
6
6
  "author": "twreporter <developer@twreporter.org>",
@@ -16,7 +16,7 @@
16
16
  },
17
17
  "dependencies": {
18
18
  "@twreporter/core": "^1.4.1",
19
- "@twreporter/redux": "^7.2.1",
19
+ "@twreporter/redux": "^7.2.2-rc.0",
20
20
  "hoist-non-react-statics": "^2.3.1",
21
21
  "lodash": "^4.0.0",
22
22
  "memoize-one": "^5.0.5",
@@ -44,5 +44,5 @@
44
44
  "babel-loader": "^8.2.4",
45
45
  "chromatic": "^6.5.4"
46
46
  },
47
- "gitHead": "648da942082304faa56026b9d5a5e597dc86fca4"
47
+ "gitHead": "e09f2e6df336ce4eb476ad56c5353a96f32159ac"
48
48
  }