react-science 0.36.0 → 0.37.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.
@@ -1,10 +1,8 @@
1
1
  /// <reference types="react" />
2
2
  import type { IconName } from '@blueprintjs/icons';
3
- import { FileError, FileRejection } from 'react-dropzone';
4
- export interface DropZoneProps {
3
+ import { DropzoneOptions } from 'react-dropzone';
4
+ export interface DropZoneProps extends DropzoneOptions {
5
5
  borderColor?: string;
6
- onDrop?: <T extends File>(acceptedFiles: T[], rejectedFiles?: FileRejection[]) => void;
7
- fileValidator?: <T extends File>(file: T) => FileError | FileError[] | null;
8
6
  emptyIcon?: IconName;
9
7
  emptyTitle?: string;
10
8
  emptyDescription?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"DropZone.d.ts","sourceRoot":"","sources":["../../../src/components/drop-zone/DropZone.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAe,MAAM,gBAAgB,CAAC;AAGvE,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,EACtB,aAAa,EAAE,CAAC,EAAE,EAClB,aAAa,CAAC,EAAE,aAAa,EAAE,KAC5B,IAAI,CAAC;IACV,aAAa,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,KAAK,SAAS,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC;IAC5E,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,QAAQ,CAAC;CAC5B;AA0CD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,2CAE5C;AAED,MAAM,WAAW,sBAAuB,SAAQ,aAAa;IAC3D,QAAQ,EAAE,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;CAC9B;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,2CAE9D"}
1
+ {"version":3,"file":"DropZone.d.ts","sourceRoot":"","sources":["../../../src/components/drop-zone/DropZone.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EAAE,eAAe,EAAe,MAAM,gBAAgB,CAAC;AAG9D,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,QAAQ,CAAC;CAC5B;AA0CD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,2CAE5C;AAED,MAAM,WAAW,sBAAuB,SAAQ,aAAa;IAC3D,QAAQ,EAAE,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;CAC9B;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,2CAE9D"}
@@ -7,7 +7,6 @@ exports.DropZoneContainer = exports.DropZone = void 0;
7
7
  const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  const core_1 = require("@blueprintjs/core");
9
9
  const styled_1 = __importDefault(require("@emotion/styled"));
10
- const react_1 = require("react");
11
10
  const react_dropzone_1 = require("react-dropzone");
12
11
  const tinycolor2_1 = __importDefault(require("tinycolor2"));
13
12
  const DropzoneRoot = styled_1.default.div `
@@ -51,21 +50,12 @@ function DropZoneContainer(props) {
51
50
  }
52
51
  exports.DropZoneContainer = DropZoneContainer;
53
52
  function DropZoneContent(props) {
54
- const { borderColor = core_1.Colors.GRAY3, children = null, onDrop, onClick, fileValidator, emptyIcon = 'import', emptyTitle = 'No data loaded', emptyDescription = 'You can load data by drag-and-dropping files here', emptyButtonText = 'Select files', emptyButtonIcon = 'plus', } = props;
53
+ const { borderColor = core_1.Colors.GRAY3, children = null, onClick, emptyIcon = 'import', emptyTitle = 'No data loaded', emptyDescription = 'You can load data by drag-and-dropping files here', emptyButtonText = 'Select files', emptyButtonIcon = 'plus', noClick, ...otherProps } = props;
55
54
  const hasChildren = children !== null;
56
- const handleOnDrop = (0, react_1.useCallback)((acceptedFiles, rejectedFiles) => {
57
- onDrop?.(acceptedFiles, rejectedFiles);
58
- }, [onDrop]);
59
55
  const { getRootProps, getInputProps, isDragActive } = (0, react_dropzone_1.useDropzone)({
60
- noClick: hasChildren,
61
- validator: fileValidator,
62
- onDrop: handleOnDrop,
56
+ noClick: noClick ?? hasChildren,
57
+ ...otherProps,
63
58
  });
64
- const getPropsOptions = (0, react_1.useMemo)(() => {
65
- if (onClick) {
66
- return { onClick };
67
- }
68
- }, [onClick]);
69
- return ((0, jsx_runtime_1.jsxs)(DropzoneRoot, { ...getRootProps(getPropsOptions), children: [children, isDragActive ? ((0, jsx_runtime_1.jsx)(DropzoneDragActive, { borderColor: borderColor, children: (0, jsx_runtime_1.jsx)(core_1.NonIdealState, { icon: "cloud-upload", title: "Drop the files here" }) })) : !hasChildren ? ((0, jsx_runtime_1.jsx)(DropzoneEmpty, { borderColor: borderColor, children: (0, jsx_runtime_1.jsx)(core_1.NonIdealState, { icon: emptyIcon, title: emptyTitle, description: emptyDescription, action: (0, jsx_runtime_1.jsx)(core_1.Button, { className: "dropzone-button", outlined: true, text: emptyButtonText, icon: emptyButtonIcon, intent: "primary" }) }) })) : null, (0, jsx_runtime_1.jsx)("input", { ...getInputProps() })] }));
59
+ return ((0, jsx_runtime_1.jsxs)(DropzoneRoot, { ...getRootProps({ onClick }), children: [children, isDragActive ? ((0, jsx_runtime_1.jsx)(DropzoneDragActive, { borderColor: borderColor, children: (0, jsx_runtime_1.jsx)(core_1.NonIdealState, { icon: "cloud-upload", title: "Drop the files here" }) })) : !hasChildren ? ((0, jsx_runtime_1.jsx)(DropzoneEmpty, { borderColor: borderColor, children: (0, jsx_runtime_1.jsx)(core_1.NonIdealState, { icon: emptyIcon, title: emptyTitle, description: emptyDescription, action: (0, jsx_runtime_1.jsx)(core_1.Button, { className: "dropzone-button", outlined: true, text: emptyButtonText, icon: emptyButtonIcon, intent: "primary" }) }) })) : null, (0, jsx_runtime_1.jsx)("input", { ...getInputProps() })] }));
70
60
  }
71
61
  //# sourceMappingURL=DropZone.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DropZone.js","sourceRoot":"","sources":["../../../src/components/drop-zone/DropZone.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DropZone.js","sourceRoot":"","sources":["../../../src/components/drop-zone/DropZone.tsx"],"names":[],"mappings":";;;;;;;AAAA,4CAAkE;AAElE,6DAAqC;AAErC,mDAA8D;AAC9D,4DAAmC;AAWnC,MAAM,YAAY,GAAG,gBAAM,CAAC,GAAG,CAAA;;;;CAI9B,CAAC;AAMF,MAAM,kBAAkB,GAAG,gBAAM,CAAC,GAAG,CAAoB;;;;;;;;;;;;;kBAavC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAClC,WAAW,IAAI,IAAA,oBAAS,EAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;CACpE,CAAC;AAEF,MAAM,aAAa,GAAG,gBAAM,CAAC,GAAG,CAAoB;;wBAE5B,IAAA,oBAAS,EAAC,aAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;;;;;;;;kBAQ1D,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,WAAW;CACjD,CAAC;AAEF,SAAgB,QAAQ,CAAC,KAAoB;IAC3C,OAAO,uBAAC,eAAe,OAAK,KAAK,GAAI,CAAC;AACxC,CAAC;AAFD,4BAEC;AAMD,SAAgB,iBAAiB,CAAC,KAA6B;IAC7D,OAAO,uBAAC,eAAe,OAAK,KAAK,GAAI,CAAC;AACxC,CAAC;AAFD,8CAEC;AAED,SAAS,eAAe,CACtB,KAQC;IAED,MAAM,EACJ,WAAW,GAAG,aAAM,CAAC,KAAK,EAC1B,QAAQ,GAAG,IAAI,EACf,OAAO,EACP,SAAS,GAAG,QAAQ,EACpB,UAAU,GAAG,gBAAgB,EAC7B,gBAAgB,GAAG,mDAAmD,EACtE,eAAe,GAAG,cAAc,EAChC,eAAe,GAAG,MAAM,EACxB,OAAO,EACP,GAAG,UAAU,EACd,GAAG,KAAK,CAAC;IAEV,MAAM,WAAW,GAAG,QAAQ,KAAK,IAAI,CAAC;IAEtC,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,IAAA,4BAAW,EAAC;QAChE,OAAO,EAAE,OAAO,IAAI,WAAW;QAC/B,GAAG,UAAU;KACd,CAAC,CAAC;IAEH,OAAO,CACL,wBAAC,YAAY,OAAK,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,aACxC,QAAQ,EACR,YAAY,CAAC,CAAC,CAAC,CACd,uBAAC,kBAAkB,IAAC,WAAW,EAAE,WAAW,YAC1C,uBAAC,oBAAa,IAAC,IAAI,EAAC,cAAc,EAAC,KAAK,EAAC,qBAAqB,GAAG,GAC9C,CACtB,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CACjB,uBAAC,aAAa,IAAC,WAAW,EAAE,WAAW,YACrC,uBAAC,oBAAa,IACZ,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE,gBAAgB,EAC7B,MAAM,EACJ,uBAAC,aAAM,IACL,SAAS,EAAC,iBAAiB,EAC3B,QAAQ,QACR,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE,eAAe,EACrB,MAAM,EAAC,SAAS,GAChB,GAEJ,GACY,CACjB,CAAC,CAAC,CAAC,IAAI,EACR,qCAAW,aAAa,EAAE,GAAI,IACjB,CAChB,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PanelHeader.d.ts","sourceRoot":"","sources":["../../../src/components/header/PanelHeader.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAqB,MAAM,OAAO,CAAC;AA6BrD,UAAU,gBAAgB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,OAAO,EACP,QAAQ,EACR,eAAe,GAChB,EAAE,gBAAgB,oDAwBlB"}
1
+ {"version":3,"file":"PanelHeader.d.ts","sourceRoot":"","sources":["../../../src/components/header/PanelHeader.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AA6BlC,UAAU,gBAAgB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,OAAO,EACP,QAAQ,EACR,eAAe,GAChB,EAAE,gBAAgB,oDAUlB"}
@@ -4,7 +4,6 @@ exports.PanelHeader = void 0;
4
4
  const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
5
5
  /** @jsxImportSource @emotion/react */
6
6
  const react_1 = require("@emotion/react");
7
- const react_2 = require("react");
8
7
  const Button_1 = require("../button/Button");
9
8
  const styles = {
10
9
  container: (0, react_1.css)({
@@ -31,21 +30,19 @@ const styles = {
31
30
  }),
32
31
  };
33
32
  function PanelHeader({ total, current, children, onClickSettings, }) {
34
- const labelRef = (0, react_2.useRef)(null);
35
- (0, react_2.useEffect)(() => {
36
- if (!labelRef.current)
37
- return;
38
- if (current !== undefined && total !== undefined) {
39
- labelRef.current.textContent = `${current} / ${total}`;
40
- }
41
- else if (current !== undefined) {
42
- labelRef.current.textContent = `[ ${current} ]`;
43
- }
44
- else if (total !== undefined) {
45
- labelRef.current.textContent = `[ ${total} ]`;
46
- }
47
- }, [current, total]);
48
- return ((0, jsx_runtime_1.jsxs)("div", { css: styles.container, children: [(0, jsx_runtime_1.jsx)("div", { css: styles.leftContainer, children: children }), (0, jsx_runtime_1.jsx)("p", { ref: labelRef, css: styles.counterLabel }), onClickSettings && ((0, jsx_runtime_1.jsx)(Button_1.Button, { color: "black", minimal: true, onClick: onClickSettings, icon: "cog" }))] }));
33
+ return ((0, jsx_runtime_1.jsxs)("div", { css: styles.container, children: [(0, jsx_runtime_1.jsx)("div", { css: styles.leftContainer, children: children }), (0, jsx_runtime_1.jsx)("p", { css: styles.counterLabel, children: formatCounterLabel(current, total) }), onClickSettings && ((0, jsx_runtime_1.jsx)(Button_1.Button, { color: "black", minimal: true, onClick: onClickSettings, icon: "cog" }))] }));
49
34
  }
50
35
  exports.PanelHeader = PanelHeader;
36
+ function formatCounterLabel(current, total) {
37
+ if (current !== undefined && total !== undefined) {
38
+ return `${current} / ${total}`;
39
+ }
40
+ if (current !== undefined) {
41
+ return `[ ${current} ]`;
42
+ }
43
+ if (total !== undefined) {
44
+ return `[ ${total} ]`;
45
+ }
46
+ return '';
47
+ }
51
48
  //# sourceMappingURL=PanelHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PanelHeader.js","sourceRoot":"","sources":["../../../src/components/header/PanelHeader.tsx"],"names":[],"mappings":";;;;AAAA,sCAAsC;AACtC,0CAAqC;AACrC,iCAAqD;AAErD,6CAA0C;AAE1C,MAAM,MAAM,GAAG;IACb,SAAS,EAAE,IAAA,WAAG,EAAC;QACb,OAAO,EAAE,MAAM;QACf,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,eAAe;QAC/B,YAAY,EAAE,iCAAiC;KAChD,CAAC;IACF,aAAa,EAAE,IAAA,WAAG,EAAC;QACjB,OAAO,EAAE,MAAM;QACf,aAAa,EAAE,KAAK;QACpB,IAAI,EAAE,CAAC;QACP,YAAY,EAAE;YACZ,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,MAAM;SACjB;KACF,CAAC;IACF,YAAY,EAAE,IAAA,WAAG,EAAC;QAChB,MAAM,EAAE,CAAC;QACT,SAAS,EAAE,OAAO;QAClB,UAAU,EAAE,MAAM;QAClB,UAAU,EAAE,QAAQ;KACrB,CAAC;CACH,CAAC;AASF,SAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,OAAO,EACP,QAAQ,EACR,eAAe,GACE;IACjB,MAAM,QAAQ,GAAG,IAAA,cAAM,EAAuB,IAAI,CAAC,CAAC;IAEpD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE,OAAO;QAE9B,IAAI,OAAO,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACjD,QAAQ,CAAC,OAAO,CAAC,WAAW,GAAG,GAAG,OAAO,MAAM,KAAK,EAAE,CAAC;QACzD,CAAC;aAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,QAAQ,CAAC,OAAO,CAAC,WAAW,GAAG,KAAK,OAAO,IAAI,CAAC;QAClD,CAAC;aAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,QAAQ,CAAC,OAAO,CAAC,WAAW,GAAG,KAAK,KAAK,IAAI,CAAC;QAChD,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAErB,OAAO,CACL,iCAAK,GAAG,EAAE,MAAM,CAAC,SAAS,aACxB,gCAAK,GAAG,EAAE,MAAM,CAAC,aAAa,YAAG,QAAQ,GAAO,EAChD,8BAAG,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,YAAY,GAAI,EAC7C,eAAe,IAAI,CAClB,uBAAC,eAAM,IAAC,KAAK,EAAC,OAAO,EAAC,OAAO,QAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAC,KAAK,GAAG,CACtE,IACG,CACP,CAAC;AACJ,CAAC;AA7BD,kCA6BC"}
1
+ {"version":3,"file":"PanelHeader.js","sourceRoot":"","sources":["../../../src/components/header/PanelHeader.tsx"],"names":[],"mappings":";;;;AAAA,sCAAsC;AACtC,0CAAqC;AAGrC,6CAA0C;AAE1C,MAAM,MAAM,GAAG;IACb,SAAS,EAAE,IAAA,WAAG,EAAC;QACb,OAAO,EAAE,MAAM;QACf,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,eAAe;QAC/B,YAAY,EAAE,iCAAiC;KAChD,CAAC;IACF,aAAa,EAAE,IAAA,WAAG,EAAC;QACjB,OAAO,EAAE,MAAM;QACf,aAAa,EAAE,KAAK;QACpB,IAAI,EAAE,CAAC;QACP,YAAY,EAAE;YACZ,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,MAAM;SACjB;KACF,CAAC;IACF,YAAY,EAAE,IAAA,WAAG,EAAC;QAChB,MAAM,EAAE,CAAC;QACT,SAAS,EAAE,OAAO;QAClB,UAAU,EAAE,MAAM;QAClB,UAAU,EAAE,QAAQ;KACrB,CAAC;CACH,CAAC;AASF,SAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,OAAO,EACP,QAAQ,EACR,eAAe,GACE;IACjB,OAAO,CACL,iCAAK,GAAG,EAAE,MAAM,CAAC,SAAS,aACxB,gCAAK,GAAG,EAAE,MAAM,CAAC,aAAa,YAAG,QAAQ,GAAO,EAChD,8BAAG,GAAG,EAAE,MAAM,CAAC,YAAY,YAAG,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,GAAK,EACpE,eAAe,IAAI,CAClB,uBAAC,eAAM,IAAC,KAAK,EAAC,OAAO,EAAC,OAAO,QAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAC,KAAK,GAAG,CACtE,IACG,CACP,CAAC;AACJ,CAAC;AAfD,kCAeC;AAED,SAAS,kBAAkB,CAAC,OAAgB,EAAE,KAAc;IAC1D,IAAI,OAAO,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACjD,OAAO,GAAG,OAAO,MAAM,KAAK,EAAE,CAAC;IACjC,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,KAAK,OAAO,IAAI,CAAC;IAC1B,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,KAAK,KAAK,IAAI,CAAC;IACxB,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
@@ -1,10 +1,8 @@
1
1
  /// <reference types="react" />
2
2
  import type { IconName } from '@blueprintjs/icons';
3
- import { FileError, FileRejection } from 'react-dropzone';
4
- export interface DropZoneProps {
3
+ import { DropzoneOptions } from 'react-dropzone';
4
+ export interface DropZoneProps extends DropzoneOptions {
5
5
  borderColor?: string;
6
- onDrop?: <T extends File>(acceptedFiles: T[], rejectedFiles?: FileRejection[]) => void;
7
- fileValidator?: <T extends File>(file: T) => FileError | FileError[] | null;
8
6
  emptyIcon?: IconName;
9
7
  emptyTitle?: string;
10
8
  emptyDescription?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"DropZone.d.ts","sourceRoot":"","sources":["../../../src/components/drop-zone/DropZone.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAe,MAAM,gBAAgB,CAAC;AAGvE,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,EACtB,aAAa,EAAE,CAAC,EAAE,EAClB,aAAa,CAAC,EAAE,aAAa,EAAE,KAC5B,IAAI,CAAC;IACV,aAAa,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,KAAK,SAAS,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC;IAC5E,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,QAAQ,CAAC;CAC5B;AA0CD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,2CAE5C;AAED,MAAM,WAAW,sBAAuB,SAAQ,aAAa;IAC3D,QAAQ,EAAE,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;CAC9B;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,2CAE9D"}
1
+ {"version":3,"file":"DropZone.d.ts","sourceRoot":"","sources":["../../../src/components/drop-zone/DropZone.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EAAE,eAAe,EAAe,MAAM,gBAAgB,CAAC;AAG9D,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,QAAQ,CAAC;CAC5B;AA0CD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,2CAE5C;AAED,MAAM,WAAW,sBAAuB,SAAQ,aAAa;IAC3D,QAAQ,EAAE,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;CAC9B;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,2CAE9D"}
@@ -1,7 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Button, Colors, NonIdealState } from '@blueprintjs/core';
3
3
  import styled from '@emotion/styled';
4
- import { useCallback, useMemo } from 'react';
5
4
  import { useDropzone } from 'react-dropzone';
6
5
  import tinycolor from 'tinycolor2';
7
6
  const DropzoneRoot = styled.div `
@@ -43,21 +42,12 @@ export function DropZoneContainer(props) {
43
42
  return _jsx(DropZoneContent, { ...props });
44
43
  }
45
44
  function DropZoneContent(props) {
46
- const { borderColor = Colors.GRAY3, children = null, onDrop, onClick, fileValidator, emptyIcon = 'import', emptyTitle = 'No data loaded', emptyDescription = 'You can load data by drag-and-dropping files here', emptyButtonText = 'Select files', emptyButtonIcon = 'plus', } = props;
45
+ const { borderColor = Colors.GRAY3, children = null, onClick, emptyIcon = 'import', emptyTitle = 'No data loaded', emptyDescription = 'You can load data by drag-and-dropping files here', emptyButtonText = 'Select files', emptyButtonIcon = 'plus', noClick, ...otherProps } = props;
47
46
  const hasChildren = children !== null;
48
- const handleOnDrop = useCallback((acceptedFiles, rejectedFiles) => {
49
- onDrop?.(acceptedFiles, rejectedFiles);
50
- }, [onDrop]);
51
47
  const { getRootProps, getInputProps, isDragActive } = useDropzone({
52
- noClick: hasChildren,
53
- validator: fileValidator,
54
- onDrop: handleOnDrop,
48
+ noClick: noClick ?? hasChildren,
49
+ ...otherProps,
55
50
  });
56
- const getPropsOptions = useMemo(() => {
57
- if (onClick) {
58
- return { onClick };
59
- }
60
- }, [onClick]);
61
- return (_jsxs(DropzoneRoot, { ...getRootProps(getPropsOptions), children: [children, isDragActive ? (_jsx(DropzoneDragActive, { borderColor: borderColor, children: _jsx(NonIdealState, { icon: "cloud-upload", title: "Drop the files here" }) })) : !hasChildren ? (_jsx(DropzoneEmpty, { borderColor: borderColor, children: _jsx(NonIdealState, { icon: emptyIcon, title: emptyTitle, description: emptyDescription, action: _jsx(Button, { className: "dropzone-button", outlined: true, text: emptyButtonText, icon: emptyButtonIcon, intent: "primary" }) }) })) : null, _jsx("input", { ...getInputProps() })] }));
51
+ return (_jsxs(DropzoneRoot, { ...getRootProps({ onClick }), children: [children, isDragActive ? (_jsx(DropzoneDragActive, { borderColor: borderColor, children: _jsx(NonIdealState, { icon: "cloud-upload", title: "Drop the files here" }) })) : !hasChildren ? (_jsx(DropzoneEmpty, { borderColor: borderColor, children: _jsx(NonIdealState, { icon: emptyIcon, title: emptyTitle, description: emptyDescription, action: _jsx(Button, { className: "dropzone-button", outlined: true, text: emptyButtonText, icon: emptyButtonIcon, intent: "primary" }) }) })) : null, _jsx("input", { ...getInputProps() })] }));
62
52
  }
63
53
  //# sourceMappingURL=DropZone.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DropZone.js","sourceRoot":"","sources":["../../../src/components/drop-zone/DropZone.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DropZone.js","sourceRoot":"","sources":["../../../src/components/drop-zone/DropZone.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,OAAO,EAAmB,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,SAAS,MAAM,YAAY,CAAC;AAWnC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAA;;;;CAI9B,CAAC;AAMF,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAoB;;;;;;;;;;;;;kBAavC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAClC,WAAW,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;CACpE,CAAC;AAEF,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAoB;;wBAE5B,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;;;;;;;;kBAQ1D,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,WAAW;CACjD,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,KAAoB;IAC3C,OAAO,KAAC,eAAe,OAAK,KAAK,GAAI,CAAC;AACxC,CAAC;AAMD,MAAM,UAAU,iBAAiB,CAAC,KAA6B;IAC7D,OAAO,KAAC,eAAe,OAAK,KAAK,GAAI,CAAC;AACxC,CAAC;AAED,SAAS,eAAe,CACtB,KAQC;IAED,MAAM,EACJ,WAAW,GAAG,MAAM,CAAC,KAAK,EAC1B,QAAQ,GAAG,IAAI,EACf,OAAO,EACP,SAAS,GAAG,QAAQ,EACpB,UAAU,GAAG,gBAAgB,EAC7B,gBAAgB,GAAG,mDAAmD,EACtE,eAAe,GAAG,cAAc,EAChC,eAAe,GAAG,MAAM,EACxB,OAAO,EACP,GAAG,UAAU,EACd,GAAG,KAAK,CAAC;IAEV,MAAM,WAAW,GAAG,QAAQ,KAAK,IAAI,CAAC;IAEtC,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC;QAChE,OAAO,EAAE,OAAO,IAAI,WAAW;QAC/B,GAAG,UAAU;KACd,CAAC,CAAC;IAEH,OAAO,CACL,MAAC,YAAY,OAAK,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,aACxC,QAAQ,EACR,YAAY,CAAC,CAAC,CAAC,CACd,KAAC,kBAAkB,IAAC,WAAW,EAAE,WAAW,YAC1C,KAAC,aAAa,IAAC,IAAI,EAAC,cAAc,EAAC,KAAK,EAAC,qBAAqB,GAAG,GAC9C,CACtB,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CACjB,KAAC,aAAa,IAAC,WAAW,EAAE,WAAW,YACrC,KAAC,aAAa,IACZ,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE,gBAAgB,EAC7B,MAAM,EACJ,KAAC,MAAM,IACL,SAAS,EAAC,iBAAiB,EAC3B,QAAQ,QACR,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE,eAAe,EACrB,MAAM,EAAC,SAAS,GAChB,GAEJ,GACY,CACjB,CAAC,CAAC,CAAC,IAAI,EACR,mBAAW,aAAa,EAAE,GAAI,IACjB,CAChB,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PanelHeader.d.ts","sourceRoot":"","sources":["../../../src/components/header/PanelHeader.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAqB,MAAM,OAAO,CAAC;AA6BrD,UAAU,gBAAgB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,OAAO,EACP,QAAQ,EACR,eAAe,GAChB,EAAE,gBAAgB,oDAwBlB"}
1
+ {"version":3,"file":"PanelHeader.d.ts","sourceRoot":"","sources":["../../../src/components/header/PanelHeader.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AA6BlC,UAAU,gBAAgB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,OAAO,EACP,QAAQ,EACR,eAAe,GAChB,EAAE,gBAAgB,oDAUlB"}
@@ -1,7 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
2
2
  /** @jsxImportSource @emotion/react */
3
3
  import { css } from '@emotion/react';
4
- import { useEffect, useRef } from 'react';
5
4
  import { Button } from '../button/Button';
6
5
  const styles = {
7
6
  container: css({
@@ -28,20 +27,18 @@ const styles = {
28
27
  }),
29
28
  };
30
29
  export function PanelHeader({ total, current, children, onClickSettings, }) {
31
- const labelRef = useRef(null);
32
- useEffect(() => {
33
- if (!labelRef.current)
34
- return;
35
- if (current !== undefined && total !== undefined) {
36
- labelRef.current.textContent = `${current} / ${total}`;
37
- }
38
- else if (current !== undefined) {
39
- labelRef.current.textContent = `[ ${current} ]`;
40
- }
41
- else if (total !== undefined) {
42
- labelRef.current.textContent = `[ ${total} ]`;
43
- }
44
- }, [current, total]);
45
- return (_jsxs("div", { css: styles.container, children: [_jsx("div", { css: styles.leftContainer, children: children }), _jsx("p", { ref: labelRef, css: styles.counterLabel }), onClickSettings && (_jsx(Button, { color: "black", minimal: true, onClick: onClickSettings, icon: "cog" }))] }));
30
+ return (_jsxs("div", { css: styles.container, children: [_jsx("div", { css: styles.leftContainer, children: children }), _jsx("p", { css: styles.counterLabel, children: formatCounterLabel(current, total) }), onClickSettings && (_jsx(Button, { color: "black", minimal: true, onClick: onClickSettings, icon: "cog" }))] }));
31
+ }
32
+ function formatCounterLabel(current, total) {
33
+ if (current !== undefined && total !== undefined) {
34
+ return `${current} / ${total}`;
35
+ }
36
+ if (current !== undefined) {
37
+ return `[ ${current} ]`;
38
+ }
39
+ if (total !== undefined) {
40
+ return `[ ${total} ]`;
41
+ }
42
+ return '';
46
43
  }
47
44
  //# sourceMappingURL=PanelHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PanelHeader.js","sourceRoot":"","sources":["../../../src/components/header/PanelHeader.tsx"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAa,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,MAAM,MAAM,GAAG;IACb,SAAS,EAAE,GAAG,CAAC;QACb,OAAO,EAAE,MAAM;QACf,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,eAAe;QAC/B,YAAY,EAAE,iCAAiC;KAChD,CAAC;IACF,aAAa,EAAE,GAAG,CAAC;QACjB,OAAO,EAAE,MAAM;QACf,aAAa,EAAE,KAAK;QACpB,IAAI,EAAE,CAAC;QACP,YAAY,EAAE;YACZ,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,MAAM;SACjB;KACF,CAAC;IACF,YAAY,EAAE,GAAG,CAAC;QAChB,MAAM,EAAE,CAAC;QACT,SAAS,EAAE,OAAO;QAClB,UAAU,EAAE,MAAM;QAClB,UAAU,EAAE,QAAQ;KACrB,CAAC;CACH,CAAC;AASF,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,OAAO,EACP,QAAQ,EACR,eAAe,GACE;IACjB,MAAM,QAAQ,GAAG,MAAM,CAAuB,IAAI,CAAC,CAAC;IAEpD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE,OAAO;QAE9B,IAAI,OAAO,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACjD,QAAQ,CAAC,OAAO,CAAC,WAAW,GAAG,GAAG,OAAO,MAAM,KAAK,EAAE,CAAC;QACzD,CAAC;aAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,QAAQ,CAAC,OAAO,CAAC,WAAW,GAAG,KAAK,OAAO,IAAI,CAAC;QAClD,CAAC;aAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,QAAQ,CAAC,OAAO,CAAC,WAAW,GAAG,KAAK,KAAK,IAAI,CAAC;QAChD,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAErB,OAAO,CACL,eAAK,GAAG,EAAE,MAAM,CAAC,SAAS,aACxB,cAAK,GAAG,EAAE,MAAM,CAAC,aAAa,YAAG,QAAQ,GAAO,EAChD,YAAG,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,YAAY,GAAI,EAC7C,eAAe,IAAI,CAClB,KAAC,MAAM,IAAC,KAAK,EAAC,OAAO,EAAC,OAAO,QAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAC,KAAK,GAAG,CACtE,IACG,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"PanelHeader.js","sourceRoot":"","sources":["../../../src/components/header/PanelHeader.tsx"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAGrC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,MAAM,MAAM,GAAG;IACb,SAAS,EAAE,GAAG,CAAC;QACb,OAAO,EAAE,MAAM;QACf,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,eAAe;QAC/B,YAAY,EAAE,iCAAiC;KAChD,CAAC;IACF,aAAa,EAAE,GAAG,CAAC;QACjB,OAAO,EAAE,MAAM;QACf,aAAa,EAAE,KAAK;QACpB,IAAI,EAAE,CAAC;QACP,YAAY,EAAE;YACZ,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,MAAM;SACjB;KACF,CAAC;IACF,YAAY,EAAE,GAAG,CAAC;QAChB,MAAM,EAAE,CAAC;QACT,SAAS,EAAE,OAAO;QAClB,UAAU,EAAE,MAAM;QAClB,UAAU,EAAE,QAAQ;KACrB,CAAC;CACH,CAAC;AASF,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,OAAO,EACP,QAAQ,EACR,eAAe,GACE;IACjB,OAAO,CACL,eAAK,GAAG,EAAE,MAAM,CAAC,SAAS,aACxB,cAAK,GAAG,EAAE,MAAM,CAAC,aAAa,YAAG,QAAQ,GAAO,EAChD,YAAG,GAAG,EAAE,MAAM,CAAC,YAAY,YAAG,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,GAAK,EACpE,eAAe,IAAI,CAClB,KAAC,MAAM,IAAC,KAAK,EAAC,OAAO,EAAC,OAAO,QAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAC,KAAK,GAAG,CACtE,IACG,CACP,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAgB,EAAE,KAAc;IAC1D,IAAI,OAAO,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACjD,OAAO,GAAG,OAAO,MAAM,KAAK,EAAE,CAAC;IACjC,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,KAAK,OAAO,IAAI,CAAC;IAC1B,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,KAAK,KAAK,IAAI,CAAC;IACxB,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-science",
3
- "version": "0.36.0",
3
+ "version": "0.37.0",
4
4
  "description": "React components to build scientific applications UI",
5
5
  "exports": {
6
6
  "./app": {
@@ -1,17 +1,12 @@
1
1
  import { Button, Colors, NonIdealState } from '@blueprintjs/core';
2
2
  import type { IconName } from '@blueprintjs/icons';
3
3
  import styled from '@emotion/styled';
4
- import { CSSProperties, MouseEventHandler, useCallback, useMemo } from 'react';
5
- import { FileError, FileRejection, useDropzone } from 'react-dropzone';
4
+ import { CSSProperties, MouseEventHandler } from 'react';
5
+ import { DropzoneOptions, useDropzone } from 'react-dropzone';
6
6
  import tinycolor from 'tinycolor2';
7
7
 
8
- export interface DropZoneProps {
8
+ export interface DropZoneProps extends DropzoneOptions {
9
9
  borderColor?: string;
10
- onDrop?: <T extends File>(
11
- acceptedFiles: T[],
12
- rejectedFiles?: FileRejection[],
13
- ) => void;
14
- fileValidator?: <T extends File>(file: T) => FileError | FileError[] | null;
15
10
  emptyIcon?: IconName;
16
11
  emptyTitle?: string;
17
12
  emptyDescription?: string;
@@ -85,39 +80,25 @@ function DropZoneContent(
85
80
  const {
86
81
  borderColor = Colors.GRAY3,
87
82
  children = null,
88
- onDrop,
89
83
  onClick,
90
- fileValidator,
91
84
  emptyIcon = 'import',
92
85
  emptyTitle = 'No data loaded',
93
86
  emptyDescription = 'You can load data by drag-and-dropping files here',
94
87
  emptyButtonText = 'Select files',
95
88
  emptyButtonIcon = 'plus',
89
+ noClick,
90
+ ...otherProps
96
91
  } = props;
97
92
 
98
93
  const hasChildren = children !== null;
99
94
 
100
- const handleOnDrop = useCallback(
101
- <T extends File>(acceptedFiles: T[], rejectedFiles: FileRejection[]) => {
102
- onDrop?.(acceptedFiles, rejectedFiles);
103
- },
104
- [onDrop],
105
- );
106
-
107
95
  const { getRootProps, getInputProps, isDragActive } = useDropzone({
108
- noClick: hasChildren,
109
- validator: fileValidator,
110
- onDrop: handleOnDrop,
96
+ noClick: noClick ?? hasChildren,
97
+ ...otherProps,
111
98
  });
112
99
 
113
- const getPropsOptions = useMemo(() => {
114
- if (onClick) {
115
- return { onClick };
116
- }
117
- }, [onClick]);
118
-
119
100
  return (
120
- <DropzoneRoot {...getRootProps(getPropsOptions)}>
101
+ <DropzoneRoot {...getRootProps({ onClick })}>
121
102
  {children}
122
103
  {isDragActive ? (
123
104
  <DropzoneDragActive borderColor={borderColor}>
@@ -1,6 +1,6 @@
1
1
  /** @jsxImportSource @emotion/react */
2
2
  import { css } from '@emotion/react';
3
- import { ReactNode, useEffect, useRef } from 'react';
3
+ import { ReactNode } from 'react';
4
4
 
5
5
  import { Button } from '../button/Button';
6
6
 
@@ -42,27 +42,26 @@ export function PanelHeader({
42
42
  children,
43
43
  onClickSettings,
44
44
  }: PanelHeaderProps) {
45
- const labelRef = useRef<HTMLParagraphElement>(null);
46
-
47
- useEffect(() => {
48
- if (!labelRef.current) return;
49
-
50
- if (current !== undefined && total !== undefined) {
51
- labelRef.current.textContent = `${current} / ${total}`;
52
- } else if (current !== undefined) {
53
- labelRef.current.textContent = `[ ${current} ]`;
54
- } else if (total !== undefined) {
55
- labelRef.current.textContent = `[ ${total} ]`;
56
- }
57
- }, [current, total]);
58
-
59
45
  return (
60
46
  <div css={styles.container}>
61
47
  <div css={styles.leftContainer}>{children}</div>
62
- <p ref={labelRef} css={styles.counterLabel} />
48
+ <p css={styles.counterLabel}>{formatCounterLabel(current, total)}</p>
63
49
  {onClickSettings && (
64
50
  <Button color="black" minimal onClick={onClickSettings} icon="cog" />
65
51
  )}
66
52
  </div>
67
53
  );
68
54
  }
55
+
56
+ function formatCounterLabel(current?: number, total?: number) {
57
+ if (current !== undefined && total !== undefined) {
58
+ return `${current} / ${total}`;
59
+ }
60
+ if (current !== undefined) {
61
+ return `[ ${current} ]`;
62
+ }
63
+ if (total !== undefined) {
64
+ return `[ ${total} ]`;
65
+ }
66
+ return '';
67
+ }