@transferwise/components 46.53.0 → 46.54.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.
- package/build/i18n/en.json +1 -0
- package/build/i18n/en.json.js +1 -0
- package/build/i18n/en.json.js.map +1 -1
- package/build/i18n/en.json.mjs +1 -0
- package/build/i18n/en.json.mjs.map +1 -1
- package/build/main.css +10 -0
- package/build/styles/main.css +10 -0
- package/build/styles/upload/Upload.css +10 -0
- package/build/types/upload/Upload.d.ts +1 -0
- package/build/types/upload/Upload.d.ts.map +1 -1
- package/build/types/upload/Upload.messages.d.ts +4 -0
- package/build/types/upload/Upload.messages.d.ts.map +1 -1
- package/build/types/upload/steps/completeStep/completeStep.d.ts +1 -3
- package/build/types/upload/steps/completeStep/completeStep.d.ts.map +1 -1
- package/build/types/upload/steps/uploadImageStep/uploadImageStep.d.ts +1 -0
- package/build/types/upload/steps/uploadImageStep/uploadImageStep.d.ts.map +1 -1
- package/build/upload/Upload.js +26 -12
- package/build/upload/Upload.js.map +1 -1
- package/build/upload/Upload.messages.js +3 -0
- package/build/upload/Upload.messages.js.map +1 -1
- package/build/upload/Upload.messages.mjs +3 -0
- package/build/upload/Upload.messages.mjs.map +1 -1
- package/build/upload/Upload.mjs +26 -12
- package/build/upload/Upload.mjs.map +1 -1
- package/build/upload/steps/completeStep/completeStep.js +15 -30
- package/build/upload/steps/completeStep/completeStep.js.map +1 -1
- package/build/upload/steps/completeStep/completeStep.mjs +16 -31
- package/build/upload/steps/completeStep/completeStep.mjs.map +1 -1
- package/build/upload/steps/uploadImageStep/uploadImageStep.js +56 -32
- package/build/upload/steps/uploadImageStep/uploadImageStep.js.map +1 -1
- package/build/upload/steps/uploadImageStep/uploadImageStep.mjs +56 -32
- package/build/upload/steps/uploadImageStep/uploadImageStep.mjs.map +1 -1
- package/package.json +2 -2
- package/src/i18n/en.json +1 -0
- package/src/main.css +10 -0
- package/src/upload/Upload.css +10 -0
- package/src/upload/Upload.less +9 -0
- package/src/upload/Upload.messages.ts +4 -0
- package/src/upload/Upload.spec.js +8 -7
- package/src/upload/Upload.story.tsx +1 -0
- package/src/upload/Upload.tsx +39 -20
- package/src/upload/steps/completeStep/completeStep.spec.js +0 -9
- package/src/upload/steps/completeStep/completeStep.tsx +14 -29
- package/src/upload/steps/uploadImageStep/uploadImageStep.spec.js +12 -0
- package/src/upload/steps/uploadImageStep/uploadImageStep.tsx +43 -24
|
@@ -3,20 +3,15 @@
|
|
|
3
3
|
var icons = require('@transferwise/icons');
|
|
4
4
|
var Body = require('../../../body/Body.js');
|
|
5
5
|
var Button = require('../../../button/Button.js');
|
|
6
|
-
var StatusIcon = require('../../../statusIcon/StatusIcon.js');
|
|
7
6
|
var Title = require('../../../title/Title.js');
|
|
8
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
9
|
-
var sentiment = require('../../../common/propsValues/sentiment.js');
|
|
10
|
-
var size = require('../../../common/propsValues/size.js');
|
|
11
8
|
var typography = require('../../../common/propsValues/typography.js');
|
|
12
9
|
|
|
13
10
|
function CompleteStep({
|
|
14
11
|
csButtonText,
|
|
15
|
-
csFailureText,
|
|
16
12
|
csSuccessText,
|
|
17
13
|
fileName,
|
|
18
14
|
isComplete,
|
|
19
|
-
isError,
|
|
20
15
|
isImage,
|
|
21
16
|
onClear,
|
|
22
17
|
uploadedImage
|
|
@@ -26,34 +21,24 @@ function CompleteStep({
|
|
|
26
21
|
"aria-hidden": !isComplete,
|
|
27
22
|
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
28
23
|
className: "droppable-card-content",
|
|
29
|
-
children: [/*#__PURE__*/jsxRuntime.
|
|
24
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
30
25
|
className: "droppable-card-content d-flex flex-column align-items-center",
|
|
31
26
|
"aria-live": "polite",
|
|
32
|
-
children:
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
})
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}) : /*#__PURE__*/jsxRuntime.jsx(icons.Document, {}), fileName && /*#__PURE__*/jsxRuntime.jsx(Body, {
|
|
46
|
-
as: "p",
|
|
47
|
-
className: "m-b-0",
|
|
48
|
-
children: fileName
|
|
49
|
-
}), csSuccessText && /*#__PURE__*/jsxRuntime.jsx(Title, {
|
|
50
|
-
className: "caption m-t-1",
|
|
51
|
-
type: typography.Typography.TITLE_BODY,
|
|
52
|
-
children: csSuccessText
|
|
53
|
-
})]
|
|
54
|
-
})
|
|
27
|
+
children: [isImage && uploadedImage ? /*#__PURE__*/jsxRuntime.jsx("img", {
|
|
28
|
+
src: uploadedImage,
|
|
29
|
+
alt: "OK",
|
|
30
|
+
className: "thumbnail "
|
|
31
|
+
}) : /*#__PURE__*/jsxRuntime.jsx(icons.Document, {}), fileName && /*#__PURE__*/jsxRuntime.jsx(Body, {
|
|
32
|
+
as: "p",
|
|
33
|
+
className: "m-b-0",
|
|
34
|
+
children: fileName
|
|
35
|
+
}), csSuccessText && /*#__PURE__*/jsxRuntime.jsx(Title, {
|
|
36
|
+
className: "caption m-t-1",
|
|
37
|
+
type: typography.Typography.TITLE_BODY,
|
|
38
|
+
children: csSuccessText
|
|
39
|
+
})]
|
|
55
40
|
}), csButtonText && /*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
56
|
-
className:
|
|
41
|
+
className: "m-t-1",
|
|
57
42
|
onClick: onClear,
|
|
58
43
|
children: csButtonText
|
|
59
44
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completeStep.js","sources":["../../../../src/upload/steps/completeStep/completeStep.tsx"],"sourcesContent":["import { Document as DocumentIcon } from '@transferwise/icons';\n\nimport { Typography } from '../../..';\nimport Body from '../../../body';\nimport Button from '../../../button';\nimport
|
|
1
|
+
{"version":3,"file":"completeStep.js","sources":["../../../../src/upload/steps/completeStep/completeStep.tsx"],"sourcesContent":["import { Document as DocumentIcon } from '@transferwise/icons';\n\nimport { Typography } from '../../..';\nimport Body from '../../../body';\nimport Button from '../../../button';\nimport Title from '../../../title';\n\nexport interface CompleteStepProps {\n csButtonText: string;\n csSuccessText: string;\n fileName: string;\n isComplete: boolean;\n isImage: boolean;\n uploadedImage?: string;\n onClear: React.MouseEventHandler<HTMLButtonElement>;\n}\n\nexport default function CompleteStep({\n csButtonText,\n csSuccessText,\n fileName,\n isComplete,\n isImage,\n onClear,\n uploadedImage,\n}: CompleteStepProps) {\n return (\n <div className=\"droppable-complete-card droppable-card\" aria-hidden={!isComplete}>\n <div className=\"droppable-card-content\">\n <div\n className=\"droppable-card-content d-flex flex-column align-items-center\"\n aria-live=\"polite\"\n >\n {isImage && uploadedImage ? (\n <img src={uploadedImage} alt=\"OK\" className=\"thumbnail \" />\n ) : (\n <DocumentIcon />\n )}\n\n {fileName && (\n <Body as=\"p\" className=\"m-b-0\">\n {fileName}\n </Body>\n )}\n {csSuccessText && (\n <Title className=\"caption m-t-1\" type={Typography.TITLE_BODY}>\n {csSuccessText}\n </Title>\n )}\n </div>\n {csButtonText && (\n <Button className=\"m-t-1\" onClick={onClear}>\n {csButtonText}\n </Button>\n )}\n </div>\n </div>\n );\n}\n"],"names":["CompleteStep","csButtonText","csSuccessText","fileName","isComplete","isImage","onClear","uploadedImage","_jsx","className","children","_jsxs","src","alt","DocumentIcon","Body","as","Title","type","Typography","TITLE_BODY","Button","onClick"],"mappings":";;;;;;;;;AAiBc,SAAUA,YAAYA,CAAC;EACnCC,YAAY;EACZC,aAAa;EACbC,QAAQ;EACRC,UAAU;EACVC,OAAO;EACPC,OAAO;AACPC,EAAAA,aAAAA;AACkB,CAAA,EAAA;AAClB,EAAA,oBACEC,cAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,wCAAwC;AAAC,IAAA,aAAA,EAAa,CAACL,UAAW;AAAAM,IAAAA,QAAA,eAC/EC,eAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,SAAS,EAAC,wBAAwB;AAAAC,MAAAA,QAAA,gBACrCC,eAAA,CAAA,KAAA,EAAA;AACEF,QAAAA,SAAS,EAAC,8DAA8D;AACxE,QAAA,WAAA,EAAU,QAAQ;AAAAC,QAAAA,QAAA,EAEjBL,CAAAA,OAAO,IAAIE,aAAa,gBACvBC,cAAA,CAAA,KAAA,EAAA;AAAKI,UAAAA,GAAG,EAAEL,aAAc;AAACM,UAAAA,GAAG,EAAC,IAAI;AAACJ,UAAAA,SAAS,EAAC,YAAA;AAAY,SAAA,CAAG,gBAE3DD,cAAA,CAACM,cAAY,EAAA,EAAA,CACd,EAEAX,QAAQ,iBACPK,cAAA,CAACO,IAAI,EAAA;AAACC,UAAAA,EAAE,EAAC,GAAG;AAACP,UAAAA,SAAS,EAAC,OAAO;AAAAC,UAAAA,QAAA,EAC3BP,QAAAA;AAAQ,SACL,CACP,EACAD,aAAa,iBACZM,cAAA,CAACS,KAAK,EAAA;AAACR,UAAAA,SAAS,EAAC,eAAe;UAACS,IAAI,EAAEC,qBAAU,CAACC,UAAW;AAAAV,UAAAA,QAAA,EAC1DR,aAAAA;AAAa,SACT,CACR,CAAA;AAAA,OACE,CACL,EAACD,YAAY,iBACXO,cAAA,CAACa,MAAM,EAAA;AAACZ,QAAAA,SAAS,EAAC,OAAO;AAACa,QAAAA,OAAO,EAAEhB,OAAQ;AAAAI,QAAAA,QAAA,EACxCT,YAAAA;AAAY,OACP,CACT,CAAA;KACE,CAAA;AACP,GAAK,CAAC,CAAA;AAEV;;;;"}
|
|
@@ -1,20 +1,15 @@
|
|
|
1
1
|
import { Document } from '@transferwise/icons';
|
|
2
2
|
import Body from '../../../body/Body.mjs';
|
|
3
3
|
import Button from '../../../button/Button.mjs';
|
|
4
|
-
import StatusIcon from '../../../statusIcon/StatusIcon.mjs';
|
|
5
4
|
import Title from '../../../title/Title.mjs';
|
|
6
|
-
import { jsx, jsxs
|
|
7
|
-
import { Sentiment } from '../../../common/propsValues/sentiment.mjs';
|
|
8
|
-
import { Size } from '../../../common/propsValues/size.mjs';
|
|
5
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
9
6
|
import { Typography } from '../../../common/propsValues/typography.mjs';
|
|
10
7
|
|
|
11
8
|
function CompleteStep({
|
|
12
9
|
csButtonText,
|
|
13
|
-
csFailureText,
|
|
14
10
|
csSuccessText,
|
|
15
11
|
fileName,
|
|
16
12
|
isComplete,
|
|
17
|
-
isError,
|
|
18
13
|
isImage,
|
|
19
14
|
onClear,
|
|
20
15
|
uploadedImage
|
|
@@ -24,34 +19,24 @@ function CompleteStep({
|
|
|
24
19
|
"aria-hidden": !isComplete,
|
|
25
20
|
children: /*#__PURE__*/jsxs("div", {
|
|
26
21
|
className: "droppable-card-content",
|
|
27
|
-
children: [/*#__PURE__*/
|
|
22
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
28
23
|
className: "droppable-card-content d-flex flex-column align-items-center",
|
|
29
24
|
"aria-live": "polite",
|
|
30
|
-
children:
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
})
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}) : /*#__PURE__*/jsx(Document, {}), fileName && /*#__PURE__*/jsx(Body, {
|
|
44
|
-
as: "p",
|
|
45
|
-
className: "m-b-0",
|
|
46
|
-
children: fileName
|
|
47
|
-
}), csSuccessText && /*#__PURE__*/jsx(Title, {
|
|
48
|
-
className: "caption m-t-1",
|
|
49
|
-
type: Typography.TITLE_BODY,
|
|
50
|
-
children: csSuccessText
|
|
51
|
-
})]
|
|
52
|
-
})
|
|
25
|
+
children: [isImage && uploadedImage ? /*#__PURE__*/jsx("img", {
|
|
26
|
+
src: uploadedImage,
|
|
27
|
+
alt: "OK",
|
|
28
|
+
className: "thumbnail "
|
|
29
|
+
}) : /*#__PURE__*/jsx(Document, {}), fileName && /*#__PURE__*/jsx(Body, {
|
|
30
|
+
as: "p",
|
|
31
|
+
className: "m-b-0",
|
|
32
|
+
children: fileName
|
|
33
|
+
}), csSuccessText && /*#__PURE__*/jsx(Title, {
|
|
34
|
+
className: "caption m-t-1",
|
|
35
|
+
type: Typography.TITLE_BODY,
|
|
36
|
+
children: csSuccessText
|
|
37
|
+
})]
|
|
53
38
|
}), csButtonText && /*#__PURE__*/jsx(Button, {
|
|
54
|
-
className:
|
|
39
|
+
className: "m-t-1",
|
|
55
40
|
onClick: onClear,
|
|
56
41
|
children: csButtonText
|
|
57
42
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completeStep.mjs","sources":["../../../../src/upload/steps/completeStep/completeStep.tsx"],"sourcesContent":["import { Document as DocumentIcon } from '@transferwise/icons';\n\nimport { Typography } from '../../..';\nimport Body from '../../../body';\nimport Button from '../../../button';\nimport
|
|
1
|
+
{"version":3,"file":"completeStep.mjs","sources":["../../../../src/upload/steps/completeStep/completeStep.tsx"],"sourcesContent":["import { Document as DocumentIcon } from '@transferwise/icons';\n\nimport { Typography } from '../../..';\nimport Body from '../../../body';\nimport Button from '../../../button';\nimport Title from '../../../title';\n\nexport interface CompleteStepProps {\n csButtonText: string;\n csSuccessText: string;\n fileName: string;\n isComplete: boolean;\n isImage: boolean;\n uploadedImage?: string;\n onClear: React.MouseEventHandler<HTMLButtonElement>;\n}\n\nexport default function CompleteStep({\n csButtonText,\n csSuccessText,\n fileName,\n isComplete,\n isImage,\n onClear,\n uploadedImage,\n}: CompleteStepProps) {\n return (\n <div className=\"droppable-complete-card droppable-card\" aria-hidden={!isComplete}>\n <div className=\"droppable-card-content\">\n <div\n className=\"droppable-card-content d-flex flex-column align-items-center\"\n aria-live=\"polite\"\n >\n {isImage && uploadedImage ? (\n <img src={uploadedImage} alt=\"OK\" className=\"thumbnail \" />\n ) : (\n <DocumentIcon />\n )}\n\n {fileName && (\n <Body as=\"p\" className=\"m-b-0\">\n {fileName}\n </Body>\n )}\n {csSuccessText && (\n <Title className=\"caption m-t-1\" type={Typography.TITLE_BODY}>\n {csSuccessText}\n </Title>\n )}\n </div>\n {csButtonText && (\n <Button className=\"m-t-1\" onClick={onClear}>\n {csButtonText}\n </Button>\n )}\n </div>\n </div>\n );\n}\n"],"names":["CompleteStep","csButtonText","csSuccessText","fileName","isComplete","isImage","onClear","uploadedImage","_jsx","className","children","_jsxs","src","alt","DocumentIcon","Body","as","Title","type","Typography","TITLE_BODY","Button","onClick"],"mappings":";;;;;;;AAiBc,SAAUA,YAAYA,CAAC;EACnCC,YAAY;EACZC,aAAa;EACbC,QAAQ;EACRC,UAAU;EACVC,OAAO;EACPC,OAAO;AACPC,EAAAA,aAAAA;AACkB,CAAA,EAAA;AAClB,EAAA,oBACEC,GAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,wCAAwC;AAAC,IAAA,aAAA,EAAa,CAACL,UAAW;AAAAM,IAAAA,QAAA,eAC/EC,IAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,SAAS,EAAC,wBAAwB;AAAAC,MAAAA,QAAA,gBACrCC,IAAA,CAAA,KAAA,EAAA;AACEF,QAAAA,SAAS,EAAC,8DAA8D;AACxE,QAAA,WAAA,EAAU,QAAQ;AAAAC,QAAAA,QAAA,EAEjBL,CAAAA,OAAO,IAAIE,aAAa,gBACvBC,GAAA,CAAA,KAAA,EAAA;AAAKI,UAAAA,GAAG,EAAEL,aAAc;AAACM,UAAAA,GAAG,EAAC,IAAI;AAACJ,UAAAA,SAAS,EAAC,YAAA;AAAY,SAAA,CAAG,gBAE3DD,GAAA,CAACM,QAAY,EAAA,EAAA,CACd,EAEAX,QAAQ,iBACPK,GAAA,CAACO,IAAI,EAAA;AAACC,UAAAA,EAAE,EAAC,GAAG;AAACP,UAAAA,SAAS,EAAC,OAAO;AAAAC,UAAAA,QAAA,EAC3BP,QAAAA;AAAQ,SACL,CACP,EACAD,aAAa,iBACZM,GAAA,CAACS,KAAK,EAAA;AAACR,UAAAA,SAAS,EAAC,eAAe;UAACS,IAAI,EAAEC,UAAU,CAACC,UAAW;AAAAV,UAAAA,QAAA,EAC1DR,aAAAA;AAAa,SACT,CACR,CAAA;AAAA,OACE,CACL,EAACD,YAAY,iBACXO,GAAA,CAACa,MAAM,EAAA;AAACZ,QAAAA,SAAS,EAAC,OAAO;AAACa,QAAAA,OAAO,EAAEhB,OAAQ;AAAAI,QAAAA,QAAA,EACxCT,YAAAA;AAAY,OACP,CACT,CAAA;KACE,CAAA;AACP,GAAK,CAAC,CAAA;AAEV;;;;"}
|
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
var icons = require('@transferwise/icons');
|
|
4
4
|
var React = require('react');
|
|
5
|
+
var StatusIcon = require('../../../statusIcon/StatusIcon.js');
|
|
6
|
+
var InlineAlert = require('../../../inlineAlert/InlineAlert.js');
|
|
5
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
8
|
+
var sentiment = require('../../../common/propsValues/sentiment.js');
|
|
9
|
+
var size = require('../../../common/propsValues/size.js');
|
|
6
10
|
|
|
7
11
|
class UploadImageStep extends React.PureComponent {
|
|
8
12
|
uploadInputRef = /*#__PURE__*/React.createRef();
|
|
@@ -20,6 +24,18 @@ class UploadImageStep extends React.PureComponent {
|
|
|
20
24
|
usHelpImage,
|
|
21
25
|
usLabel
|
|
22
26
|
} = this.props;
|
|
27
|
+
const {
|
|
28
|
+
errorMessage
|
|
29
|
+
} = this.props;
|
|
30
|
+
if (errorMessage) {
|
|
31
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
32
|
+
className: "d-flex flex-column align-items-center",
|
|
33
|
+
children: /*#__PURE__*/jsxRuntime.jsx(StatusIcon, {
|
|
34
|
+
size: size.Size.LARGE,
|
|
35
|
+
sentiment: sentiment.Sentiment.NEGATIVE
|
|
36
|
+
})
|
|
37
|
+
});
|
|
38
|
+
}
|
|
23
39
|
if (!usHelpImage) {
|
|
24
40
|
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
25
41
|
className: "circle circle-sm circle-inverse p-t-1",
|
|
@@ -44,41 +60,49 @@ class UploadImageStep extends React.PureComponent {
|
|
|
44
60
|
usButtonText,
|
|
45
61
|
usDisabled,
|
|
46
62
|
usLabel,
|
|
47
|
-
usPlaceholder
|
|
63
|
+
usPlaceholder,
|
|
64
|
+
errorMessage
|
|
48
65
|
} = this.props;
|
|
49
66
|
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
children:
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
onChange: () => this.onManualUpload()
|
|
79
|
-
})]
|
|
67
|
+
className: "droppable-default-card",
|
|
68
|
+
"aria-hidden": isComplete,
|
|
69
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
70
|
+
className: "droppable-card-content",
|
|
71
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
72
|
+
className: "m-b-3",
|
|
73
|
+
children: this.getImage()
|
|
74
|
+
}), usLabel && /*#__PURE__*/jsxRuntime.jsx("h4", {
|
|
75
|
+
className: "np-text-title-body m-b-1",
|
|
76
|
+
children: usLabel
|
|
77
|
+
}), usPlaceholder && /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
78
|
+
className: "np-text-body-large m-b-3",
|
|
79
|
+
children: String(usPlaceholder)
|
|
80
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("label", {
|
|
81
|
+
className: `btn btn-primary btn-md ${usDisabled ? 'disabled' : ''}`,
|
|
82
|
+
children: [usButtonText ? /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
83
|
+
children: usButtonText
|
|
84
|
+
}) : /*#__PURE__*/jsxRuntime.jsx(icons.Upload, {
|
|
85
|
+
size: 24,
|
|
86
|
+
className: "m-r-0"
|
|
87
|
+
}), /*#__PURE__*/jsxRuntime.jsx("input", {
|
|
88
|
+
ref: this.uploadInputRef,
|
|
89
|
+
type: "file",
|
|
90
|
+
accept: usAccept === '*' ? undefined : usAccept,
|
|
91
|
+
className: "tw-droppable-input hidden",
|
|
92
|
+
disabled: usDisabled,
|
|
93
|
+
name: "file-upload",
|
|
94
|
+
onChange: () => this.onManualUpload()
|
|
80
95
|
})]
|
|
81
|
-
})
|
|
96
|
+
}), errorMessage && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
97
|
+
className: "upload-error-message",
|
|
98
|
+
children: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
99
|
+
className: "m-t-3 has-error",
|
|
100
|
+
children: /*#__PURE__*/jsxRuntime.jsx(InlineAlert, {
|
|
101
|
+
type: sentiment.Sentiment.NEGATIVE,
|
|
102
|
+
children: errorMessage
|
|
103
|
+
})
|
|
104
|
+
})
|
|
105
|
+
})]
|
|
82
106
|
})
|
|
83
107
|
});
|
|
84
108
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploadImageStep.js","sources":["../../../../src/upload/steps/uploadImageStep/uploadImageStep.tsx"],"sourcesContent":["import { Upload as UploadIcon } from '@transferwise/icons';\nimport { createRef, PureComponent } from 'react';\n\nexport interface UploadImageStepProps {\n fileDropped: (file: File) => void;\n isComplete: boolean;\n usAccept: string;\n usButtonText: string;\n usDisabled: boolean;\n usHelpImage: React.ReactNode;\n usLabel: string;\n usPlaceholder: string;\n}\n\nexport default class UploadImageStep extends PureComponent<UploadImageStepProps> {\n uploadInputRef = createRef<HTMLInputElement>();\n\n onManualUpload = () => {\n const { fileDropped } = this.props;\n const file = this.uploadInputRef.current?.files?.[0];\n if (file != null) {\n fileDropped(file);\n }\n };\n\n getImage = () => {\n const { usHelpImage, usLabel } = this.props;\n\n if (!usHelpImage) {\n return (\n <div className=\"circle circle-sm circle-inverse p-t-1\">\n <UploadIcon size={24} />\n </div>\n );\n }\n\n if (typeof usHelpImage === 'string') {\n return <img src={usHelpImage} alt={usLabel} className=\"thumbnail text-xs-center\" />;\n }\n\n return usHelpImage;\n };\n\n render() {\n const { isComplete, usAccept, usButtonText, usDisabled, usLabel, usPlaceholder }
|
|
1
|
+
{"version":3,"file":"uploadImageStep.js","sources":["../../../../src/upload/steps/uploadImageStep/uploadImageStep.tsx"],"sourcesContent":["import { Upload as UploadIcon } from '@transferwise/icons';\nimport { createRef, PureComponent } from 'react';\nimport StatusIcon from '../../../statusIcon';\nimport { Sentiment, Size } from '../../../common';\nimport InlineAlert from '../../../inlineAlert';\n\nexport interface UploadImageStepProps {\n fileDropped: (file: File) => void;\n isComplete: boolean;\n usAccept: string;\n usButtonText: string;\n usDisabled: boolean;\n usHelpImage: React.ReactNode;\n usLabel: string;\n usPlaceholder: string;\n errorMessage?: string | string[];\n}\n\nexport default class UploadImageStep extends PureComponent<UploadImageStepProps> {\n uploadInputRef = createRef<HTMLInputElement>();\n\n onManualUpload = () => {\n const { fileDropped } = this.props;\n const file = this.uploadInputRef.current?.files?.[0];\n if (file != null) {\n fileDropped(file);\n }\n };\n\n getImage = () => {\n const { usHelpImage, usLabel } = this.props;\n const { errorMessage } = this.props;\n\n if (errorMessage) {\n return (\n <div className=\"d-flex flex-column align-items-center\">\n <StatusIcon size={Size.LARGE} sentiment={Sentiment.NEGATIVE} />\n </div>\n );\n }\n\n if (!usHelpImage) {\n return (\n <div className=\"circle circle-sm circle-inverse p-t-1\">\n <UploadIcon size={24} />\n </div>\n );\n }\n\n if (typeof usHelpImage === 'string') {\n return <img src={usHelpImage} alt={usLabel} className=\"thumbnail text-xs-center\" />;\n }\n\n return usHelpImage;\n };\n\n render() {\n const { isComplete, usAccept, usButtonText, usDisabled, usLabel, usPlaceholder, errorMessage } =\n this.props;\n\n return (\n <div className=\"droppable-default-card\" aria-hidden={isComplete}>\n <div className=\"droppable-card-content\">\n <div className=\"m-b-3\">{this.getImage()}</div>\n {usLabel && <h4 className=\"np-text-title-body m-b-1\">{usLabel}</h4>}\n {usPlaceholder && <p className=\"np-text-body-large m-b-3\">{String(usPlaceholder)}</p>}\n <label className={`btn btn-primary btn-md ${usDisabled ? 'disabled' : ''}`}>\n {usButtonText ? (\n <span>{usButtonText}</span>\n ) : (\n <UploadIcon size={24} className=\"m-r-0\" />\n )}\n <input\n ref={this.uploadInputRef}\n type=\"file\"\n accept={usAccept === '*' ? undefined : usAccept}\n className=\"tw-droppable-input hidden\"\n disabled={usDisabled}\n name=\"file-upload\"\n onChange={() => this.onManualUpload()}\n />\n </label>\n {errorMessage && (\n <div className=\"upload-error-message\">\n <div className=\"m-t-3 has-error\">\n <InlineAlert type={Sentiment.NEGATIVE}>{errorMessage}</InlineAlert>\n </div>\n </div>\n )}\n </div>\n </div>\n );\n }\n}\n"],"names":["UploadImageStep","PureComponent","uploadInputRef","createRef","onManualUpload","fileDropped","props","file","current","files","getImage","usHelpImage","usLabel","errorMessage","_jsx","className","children","StatusIcon","size","Size","LARGE","sentiment","Sentiment","NEGATIVE","UploadIcon","src","alt","render","isComplete","usAccept","usButtonText","usDisabled","usPlaceholder","_jsxs","String","ref","type","accept","undefined","disabled","name","onChange","InlineAlert"],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { Upload } from '@transferwise/icons';
|
|
2
2
|
import { PureComponent, createRef } from 'react';
|
|
3
|
+
import StatusIcon from '../../../statusIcon/StatusIcon.mjs';
|
|
4
|
+
import InlineAlert from '../../../inlineAlert/InlineAlert.mjs';
|
|
3
5
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
6
|
+
import { Sentiment } from '../../../common/propsValues/sentiment.mjs';
|
|
7
|
+
import { Size } from '../../../common/propsValues/size.mjs';
|
|
4
8
|
|
|
5
9
|
class UploadImageStep extends PureComponent {
|
|
6
10
|
uploadInputRef = /*#__PURE__*/createRef();
|
|
@@ -18,6 +22,18 @@ class UploadImageStep extends PureComponent {
|
|
|
18
22
|
usHelpImage,
|
|
19
23
|
usLabel
|
|
20
24
|
} = this.props;
|
|
25
|
+
const {
|
|
26
|
+
errorMessage
|
|
27
|
+
} = this.props;
|
|
28
|
+
if (errorMessage) {
|
|
29
|
+
return /*#__PURE__*/jsx("div", {
|
|
30
|
+
className: "d-flex flex-column align-items-center",
|
|
31
|
+
children: /*#__PURE__*/jsx(StatusIcon, {
|
|
32
|
+
size: Size.LARGE,
|
|
33
|
+
sentiment: Sentiment.NEGATIVE
|
|
34
|
+
})
|
|
35
|
+
});
|
|
36
|
+
}
|
|
21
37
|
if (!usHelpImage) {
|
|
22
38
|
return /*#__PURE__*/jsx("div", {
|
|
23
39
|
className: "circle circle-sm circle-inverse p-t-1",
|
|
@@ -42,41 +58,49 @@ class UploadImageStep extends PureComponent {
|
|
|
42
58
|
usButtonText,
|
|
43
59
|
usDisabled,
|
|
44
60
|
usLabel,
|
|
45
|
-
usPlaceholder
|
|
61
|
+
usPlaceholder,
|
|
62
|
+
errorMessage
|
|
46
63
|
} = this.props;
|
|
47
64
|
return /*#__PURE__*/jsx("div", {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
children:
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
onChange: () => this.onManualUpload()
|
|
77
|
-
})]
|
|
65
|
+
className: "droppable-default-card",
|
|
66
|
+
"aria-hidden": isComplete,
|
|
67
|
+
children: /*#__PURE__*/jsxs("div", {
|
|
68
|
+
className: "droppable-card-content",
|
|
69
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
70
|
+
className: "m-b-3",
|
|
71
|
+
children: this.getImage()
|
|
72
|
+
}), usLabel && /*#__PURE__*/jsx("h4", {
|
|
73
|
+
className: "np-text-title-body m-b-1",
|
|
74
|
+
children: usLabel
|
|
75
|
+
}), usPlaceholder && /*#__PURE__*/jsx("p", {
|
|
76
|
+
className: "np-text-body-large m-b-3",
|
|
77
|
+
children: String(usPlaceholder)
|
|
78
|
+
}), /*#__PURE__*/jsxs("label", {
|
|
79
|
+
className: `btn btn-primary btn-md ${usDisabled ? 'disabled' : ''}`,
|
|
80
|
+
children: [usButtonText ? /*#__PURE__*/jsx("span", {
|
|
81
|
+
children: usButtonText
|
|
82
|
+
}) : /*#__PURE__*/jsx(Upload, {
|
|
83
|
+
size: 24,
|
|
84
|
+
className: "m-r-0"
|
|
85
|
+
}), /*#__PURE__*/jsx("input", {
|
|
86
|
+
ref: this.uploadInputRef,
|
|
87
|
+
type: "file",
|
|
88
|
+
accept: usAccept === '*' ? undefined : usAccept,
|
|
89
|
+
className: "tw-droppable-input hidden",
|
|
90
|
+
disabled: usDisabled,
|
|
91
|
+
name: "file-upload",
|
|
92
|
+
onChange: () => this.onManualUpload()
|
|
78
93
|
})]
|
|
79
|
-
})
|
|
94
|
+
}), errorMessage && /*#__PURE__*/jsx("div", {
|
|
95
|
+
className: "upload-error-message",
|
|
96
|
+
children: /*#__PURE__*/jsx("div", {
|
|
97
|
+
className: "m-t-3 has-error",
|
|
98
|
+
children: /*#__PURE__*/jsx(InlineAlert, {
|
|
99
|
+
type: Sentiment.NEGATIVE,
|
|
100
|
+
children: errorMessage
|
|
101
|
+
})
|
|
102
|
+
})
|
|
103
|
+
})]
|
|
80
104
|
})
|
|
81
105
|
});
|
|
82
106
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploadImageStep.mjs","sources":["../../../../src/upload/steps/uploadImageStep/uploadImageStep.tsx"],"sourcesContent":["import { Upload as UploadIcon } from '@transferwise/icons';\nimport { createRef, PureComponent } from 'react';\n\nexport interface UploadImageStepProps {\n fileDropped: (file: File) => void;\n isComplete: boolean;\n usAccept: string;\n usButtonText: string;\n usDisabled: boolean;\n usHelpImage: React.ReactNode;\n usLabel: string;\n usPlaceholder: string;\n}\n\nexport default class UploadImageStep extends PureComponent<UploadImageStepProps> {\n uploadInputRef = createRef<HTMLInputElement>();\n\n onManualUpload = () => {\n const { fileDropped } = this.props;\n const file = this.uploadInputRef.current?.files?.[0];\n if (file != null) {\n fileDropped(file);\n }\n };\n\n getImage = () => {\n const { usHelpImage, usLabel } = this.props;\n\n if (!usHelpImage) {\n return (\n <div className=\"circle circle-sm circle-inverse p-t-1\">\n <UploadIcon size={24} />\n </div>\n );\n }\n\n if (typeof usHelpImage === 'string') {\n return <img src={usHelpImage} alt={usLabel} className=\"thumbnail text-xs-center\" />;\n }\n\n return usHelpImage;\n };\n\n render() {\n const { isComplete, usAccept, usButtonText, usDisabled, usLabel, usPlaceholder }
|
|
1
|
+
{"version":3,"file":"uploadImageStep.mjs","sources":["../../../../src/upload/steps/uploadImageStep/uploadImageStep.tsx"],"sourcesContent":["import { Upload as UploadIcon } from '@transferwise/icons';\nimport { createRef, PureComponent } from 'react';\nimport StatusIcon from '../../../statusIcon';\nimport { Sentiment, Size } from '../../../common';\nimport InlineAlert from '../../../inlineAlert';\n\nexport interface UploadImageStepProps {\n fileDropped: (file: File) => void;\n isComplete: boolean;\n usAccept: string;\n usButtonText: string;\n usDisabled: boolean;\n usHelpImage: React.ReactNode;\n usLabel: string;\n usPlaceholder: string;\n errorMessage?: string | string[];\n}\n\nexport default class UploadImageStep extends PureComponent<UploadImageStepProps> {\n uploadInputRef = createRef<HTMLInputElement>();\n\n onManualUpload = () => {\n const { fileDropped } = this.props;\n const file = this.uploadInputRef.current?.files?.[0];\n if (file != null) {\n fileDropped(file);\n }\n };\n\n getImage = () => {\n const { usHelpImage, usLabel } = this.props;\n const { errorMessage } = this.props;\n\n if (errorMessage) {\n return (\n <div className=\"d-flex flex-column align-items-center\">\n <StatusIcon size={Size.LARGE} sentiment={Sentiment.NEGATIVE} />\n </div>\n );\n }\n\n if (!usHelpImage) {\n return (\n <div className=\"circle circle-sm circle-inverse p-t-1\">\n <UploadIcon size={24} />\n </div>\n );\n }\n\n if (typeof usHelpImage === 'string') {\n return <img src={usHelpImage} alt={usLabel} className=\"thumbnail text-xs-center\" />;\n }\n\n return usHelpImage;\n };\n\n render() {\n const { isComplete, usAccept, usButtonText, usDisabled, usLabel, usPlaceholder, errorMessage } =\n this.props;\n\n return (\n <div className=\"droppable-default-card\" aria-hidden={isComplete}>\n <div className=\"droppable-card-content\">\n <div className=\"m-b-3\">{this.getImage()}</div>\n {usLabel && <h4 className=\"np-text-title-body m-b-1\">{usLabel}</h4>}\n {usPlaceholder && <p className=\"np-text-body-large m-b-3\">{String(usPlaceholder)}</p>}\n <label className={`btn btn-primary btn-md ${usDisabled ? 'disabled' : ''}`}>\n {usButtonText ? (\n <span>{usButtonText}</span>\n ) : (\n <UploadIcon size={24} className=\"m-r-0\" />\n )}\n <input\n ref={this.uploadInputRef}\n type=\"file\"\n accept={usAccept === '*' ? undefined : usAccept}\n className=\"tw-droppable-input hidden\"\n disabled={usDisabled}\n name=\"file-upload\"\n onChange={() => this.onManualUpload()}\n />\n </label>\n {errorMessage && (\n <div className=\"upload-error-message\">\n <div className=\"m-t-3 has-error\">\n <InlineAlert type={Sentiment.NEGATIVE}>{errorMessage}</InlineAlert>\n </div>\n </div>\n )}\n </div>\n </div>\n );\n }\n}\n"],"names":["UploadImageStep","PureComponent","uploadInputRef","createRef","onManualUpload","fileDropped","props","file","current","files","getImage","usHelpImage","usLabel","errorMessage","_jsx","className","children","StatusIcon","size","Size","LARGE","sentiment","Sentiment","NEGATIVE","UploadIcon","src","alt","render","isComplete","usAccept","usButtonText","usDisabled","usPlaceholder","_jsxs","String","ref","type","accept","undefined","disabled","name","onChange","InlineAlert"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@transferwise/components",
|
|
3
|
-
"version": "46.
|
|
3
|
+
"version": "46.54.0",
|
|
4
4
|
"description": "Neptune React components",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
"rollup-preserve-directives": "^1.1.1",
|
|
94
94
|
"storybook": "^8.2.2",
|
|
95
95
|
"@transferwise/less-config": "3.1.0",
|
|
96
|
-
"@transferwise/neptune-css": "14.13.
|
|
96
|
+
"@transferwise/neptune-css": "14.13.1",
|
|
97
97
|
"@wise/components-theming": "1.5.0"
|
|
98
98
|
},
|
|
99
99
|
"peerDependencies": {
|
package/src/i18n/en.json
CHANGED
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
"neptune.Upload.csWrongTypeMessage": "File type not supported. Please try again with a different file",
|
|
37
37
|
"neptune.Upload.psButtonText": "Cancel",
|
|
38
38
|
"neptune.Upload.psProcessingText": "Uploading...",
|
|
39
|
+
"neptune.Upload.retry": "Retry",
|
|
39
40
|
"neptune.Upload.usButtonText": "Or select a file",
|
|
40
41
|
"neptune.Upload.usDropMessage": "Drop file to start upload",
|
|
41
42
|
"neptune.Upload.usPlaceholder": "Drag and drop a file less than {maxSize}MB",
|
package/src/main.css
CHANGED
|
@@ -5440,6 +5440,16 @@ html:not([dir="rtl"]) .np-navigation-option {
|
|
|
5440
5440
|
.tw-droppable-sm {
|
|
5441
5441
|
min-height: 245px;
|
|
5442
5442
|
}
|
|
5443
|
+
.upload-error-message {
|
|
5444
|
+
margin-top: 24px;
|
|
5445
|
+
margin-top: var(--padding-medium);
|
|
5446
|
+
border-top: 1px solid rgba(0,0,0,0.10196);
|
|
5447
|
+
border-top: 1px solid var(--color-border-neutral);
|
|
5448
|
+
text-align: start;
|
|
5449
|
+
}
|
|
5450
|
+
.upload-error-message .alert {
|
|
5451
|
+
min-width: 100px;
|
|
5452
|
+
}
|
|
5443
5453
|
.np-upload-button-container {
|
|
5444
5454
|
border-style: solid;
|
|
5445
5455
|
}
|
package/src/upload/Upload.css
CHANGED
|
@@ -13,3 +13,13 @@
|
|
|
13
13
|
.tw-droppable-sm {
|
|
14
14
|
min-height: 245px;
|
|
15
15
|
}
|
|
16
|
+
.upload-error-message {
|
|
17
|
+
margin-top: 24px;
|
|
18
|
+
margin-top: var(--padding-medium);
|
|
19
|
+
border-top: 1px solid rgba(0,0,0,0.10196);
|
|
20
|
+
border-top: 1px solid var(--color-border-neutral);
|
|
21
|
+
text-align: start;
|
|
22
|
+
}
|
|
23
|
+
.upload-error-message .alert {
|
|
24
|
+
min-width: 100px;
|
|
25
|
+
}
|
package/src/upload/Upload.less
CHANGED
|
@@ -46,6 +46,7 @@ const props = {
|
|
|
46
46
|
psProcessingText: 'psProcessingText',
|
|
47
47
|
usAccept: 'image/*',
|
|
48
48
|
usButtonText: 'Or Select File',
|
|
49
|
+
usButtonRetryText: 'Try again',
|
|
49
50
|
usDropMessage: 'Drop file to start upload',
|
|
50
51
|
usPlaceholder: 'Drag and drop a file less than 5MB',
|
|
51
52
|
};
|
|
@@ -231,7 +232,7 @@ describe('Upload', () => {
|
|
|
231
232
|
expect(component.find(CompleteStep)).toHaveLength(1);
|
|
232
233
|
});
|
|
233
234
|
|
|
234
|
-
it('step
|
|
235
|
+
it('step UploadImageStep is called with error props', async () => {
|
|
235
236
|
component = mount(<Upload {...props} />);
|
|
236
237
|
const upload = component.children();
|
|
237
238
|
asyncFileRead.mockImplementation(async () => {
|
|
@@ -244,12 +245,12 @@ describe('Upload', () => {
|
|
|
244
245
|
await waitForUpload();
|
|
245
246
|
component.update();
|
|
246
247
|
|
|
247
|
-
expect(component.find(
|
|
248
|
-
...
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
248
|
+
expect(component.find(UploadImageStep).props()).toStrictEqual({
|
|
249
|
+
...UPLOADIMAGE_STEP_PROPS,
|
|
250
|
+
isComplete: false,
|
|
251
|
+
errorMessage: 'csFailureText',
|
|
252
|
+
usButtonText: 'Try again',
|
|
253
|
+
usHelpImage: null,
|
|
253
254
|
});
|
|
254
255
|
});
|
|
255
256
|
|