@cashub/ui 0.12.0 → 0.13.0

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.
@@ -136,28 +136,33 @@ var ImageDropzone = function ImageDropzone(_ref) {
136
136
  };
137
137
 
138
138
  var handleAddFiles = (0, _react.useCallback)(function (newFiles) {
139
- if (files.length + newFiles.length > maxFiles) {
140
- newFiles.splice(maxFiles - files.length);
141
- }
139
+ setFiles(function (previous) {
140
+ if (previous.length + newFiles.length > maxFiles) {
141
+ newFiles.splice(maxFiles - previous.length);
142
+ }
143
+
144
+ return [].concat(_toConsumableArray(previous), _toConsumableArray(newFiles));
145
+ });
142
146
 
143
147
  for (var index = 0; index < newFiles.length; index += 1) {
144
148
  newFiles[index].url = URL.createObjectURL(newFiles[index]);
145
149
  }
146
150
 
147
- setFiles([].concat(_toConsumableArray(files), _toConsumableArray(newFiles)));
148
151
  setAddedFiles(newFiles);
149
- }, [files, maxFiles]);
152
+ }, [maxFiles]);
150
153
  var handleRemoveFile = (0, _react.useCallback)(function (event, index) {
151
154
  if (event) {
152
155
  event.stopPropagation();
153
156
  }
154
157
 
155
- var newFiles = _toConsumableArray(files);
158
+ setFiles(function (previous) {
159
+ var newFiles = _toConsumableArray(previous);
156
160
 
157
- newFiles.splice(index, 1);
158
- setFiles(newFiles);
161
+ newFiles.splice(index, 1);
162
+ return newFiles;
163
+ });
159
164
  if (onRemovedFile) onRemovedFile(index);
160
- }, [files, onRemovedFile]);
165
+ }, [onRemovedFile]);
161
166
  var handleChangeFile = (0, _react.useCallback)(function (event) {
162
167
  var files = event.target.files;
163
168
  var newFiles = [];
@@ -190,7 +195,7 @@ var ImageDropzone = function ImageDropzone(_ref) {
190
195
  });
191
196
  }
192
197
  });
193
- }, [cropper]);
198
+ }, [width, height, cropper]);
194
199
 
195
200
  var previewItem = function previewItem() {
196
201
  return files.map(function (file, index) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cashub/ui",
3
- "version": "0.12.0",
3
+ "version": "0.13.0",
4
4
  "private": false,
5
5
  "author": "CASHUB Team",
6
6
  "description": "CASHUB UI components library",
@@ -31,7 +31,7 @@ var _Popover = _interopRequireDefault(require("../popover/Popover"));
31
31
 
32
32
  var _jsxRuntime = require("react/jsx-runtime");
33
33
 
34
- var _templateObject, _templateObject2, _templateObject3;
34
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
35
35
 
36
36
  var _excluded = ["title", "fieldName", "render", "custom"];
37
37
 
@@ -83,8 +83,13 @@ var GridTable = function GridTable(_ref) {
83
83
 
84
84
  var _useState = (0, _react.useState)(0),
85
85
  _useState2 = _slicedToArray(_useState, 2),
86
- restWidth = _useState2[0],
87
- setRestWidth = _useState2[1];
86
+ tableWidth = _useState2[0],
87
+ setTableWidth = _useState2[1];
88
+
89
+ var _useState3 = (0, _react.useState)(0),
90
+ _useState4 = _slicedToArray(_useState3, 2),
91
+ restWidth = _useState4[0],
92
+ setRestWidth = _useState4[1];
88
93
 
89
94
  var texts = (0, _react.useMemo)(function () {
90
95
  var defaultTexts = {
@@ -99,6 +104,7 @@ var GridTable = function GridTable(_ref) {
99
104
  }
100
105
  }, [onSortChange]);
101
106
  var handleResize = (0, _react.useCallback)(function () {
107
+ setTableWidth(tableRef.current.offsetWidth);
102
108
  setRestWidth(function (previousWidth) {
103
109
  var containerWidth = wrapperRef.current.offsetWidth;
104
110
  var tableWidth = tableRef.current.offsetWidth - previousWidth;
@@ -110,6 +116,10 @@ var GridTable = function GridTable(_ref) {
110
116
  return 0;
111
117
  });
112
118
  }, []);
119
+ var handleScroll = (0, _react.useCallback)(function (event) {
120
+ var target = event.target;
121
+ wrapperRef.current.scrollLeft = target.scrollLeft;
122
+ }, []);
113
123
  var showFullValue = (0, _react.useCallback)(function (event) {
114
124
  var id = event.target.id;
115
125
 
@@ -225,6 +235,11 @@ var GridTable = function GridTable(_ref) {
225
235
  (0, _react.useEffect)(function () {
226
236
  handleResize();
227
237
  }, [columns, handleResize]);
238
+ (0, _react.useEffect)(function () {
239
+ if (tableRef.current) {
240
+ setTableWidth(tableRef.current.offsetWidth);
241
+ }
242
+ }, [columns]);
228
243
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
229
244
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(TableWrapper, {
230
245
  ref: wrapperRef,
@@ -239,6 +254,10 @@ var GridTable = function GridTable(_ref) {
239
254
  children: tableRows || generateEmptyMessage()
240
255
  })]
241
256
  })
257
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(Scrollbar, {
258
+ backgroundReverse: backgroundReverse,
259
+ width: tableWidth,
260
+ onScroll: handleScroll
242
261
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridTableFooter.default, {
243
262
  backgroundReverse: backgroundReverse,
244
263
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_TableFooterInfo.default, {
@@ -277,12 +296,10 @@ var GridTable = function GridTable(_ref) {
277
296
  });
278
297
  };
279
298
 
280
- var TableWrapper = _styledComponents.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n overflow: auto;\n background: ", ";\n\n ", "\n"])), function (_ref2) {
299
+ var TableWrapper = _styledComponents.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n overflow: hidden;\n background: ", ";\n"])), function (_ref2) {
281
300
  var backgroundReverse = _ref2.backgroundReverse;
282
301
  return backgroundReverse ? 'var(--color-background1)' : 'var(--color-background2)';
283
- }, (0, _scrollbar.default)({
284
- size: 'large'
285
- }));
302
+ });
286
303
 
287
304
  var ResponsiveTable = _styledComponents.default.table(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n /* make fixed width work */\n width: 0px;\n color: var(--font-on-primary);\n table-layout: fixed;\n border-collapse: collapse;\n"])));
288
305
 
@@ -294,5 +311,15 @@ var TD = _styledComponents.default.td(_templateObject3 || (_templateObject3 = _t
294
311
  return backgroundReverse ? 'var(--color-background1)' : 'var(--color-background2)';
295
312
  });
296
313
 
314
+ var Scrollbar = _styledComponents.default.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n position: sticky;\n bottom: 48px;\n width: 100%;\n overflow: auto;\n background: ", ";\n\n ::before {\n display: block;\n content: '';\n width: ", ";\n height: 1px;\n }\n\n ", "\n"])), function (_ref5) {
315
+ var backgroundReverse = _ref5.backgroundReverse;
316
+ return backgroundReverse ? 'var(--color-background1)' : 'var(--color-background2)';
317
+ }, function (_ref6) {
318
+ var width = _ref6.width;
319
+ return "".concat(width, "px");
320
+ }, (0, _scrollbar.default)({
321
+ size: 'large'
322
+ }));
323
+
297
324
  var _default = GridTable;
298
325
  exports.default = _default;
@@ -15,7 +15,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
15
15
 
16
16
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
17
17
 
18
- var GridTableFooter = (0, _styledComponents.default)(_TableFooter.default)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n height: 48px;\n padding: 0 var(--spacing-xs);\n border-top: 1px solid var(--border-color);\n border-bottom: 1px solid var(--border-color);\n background: ", ";\n"])), function (_ref) {
18
+ var GridTableFooter = (0, _styledComponents.default)(_TableFooter.default)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: sticky;\n bottom: 0;\n height: 48px;\n padding: 0 var(--spacing-xs);\n border-top: 1px solid var(--border-color);\n border-bottom: 1px solid var(--border-color);\n background: ", ";\n"])), function (_ref) {
19
19
  var backgroundReverse = _ref.backgroundReverse;
20
20
  return backgroundReverse ? 'var(--color-background1)' : 'var(--color-background2)';
21
21
  });