@atlaskit/link-create 0.4.3 → 0.5.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/CHANGELOG.md +12 -0
- package/dist/cjs/common/constants.js +4 -2
- package/dist/cjs/controllers/form-context/main.js +3 -3
- package/dist/cjs/index.js +6 -0
- package/dist/cjs/ui/create-form/form-loader/index.js +12 -0
- package/dist/cjs/ui/create-form/form-loader/main.js +29 -0
- package/dist/cjs/ui/create-form/index.js +7 -0
- package/dist/cjs/ui/create-form/main.js +13 -6
- package/dist/cjs/ui/index.js +7 -0
- package/dist/cjs/ui/main.js +2 -7
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/common/constants.js +2 -1
- package/dist/es2019/controllers/form-context/main.js +3 -3
- package/dist/es2019/index.js +1 -1
- package/dist/es2019/ui/create-form/form-loader/index.js +1 -0
- package/dist/es2019/ui/create-form/form-loader/main.js +21 -0
- package/dist/es2019/ui/create-form/index.js +1 -0
- package/dist/es2019/ui/create-form/main.js +13 -6
- package/dist/es2019/ui/index.js +1 -0
- package/dist/es2019/ui/main.js +2 -3
- package/dist/es2019/version.json +1 -1
- package/dist/esm/common/constants.js +2 -1
- package/dist/esm/controllers/form-context/main.js +3 -3
- package/dist/esm/index.js +1 -1
- package/dist/esm/ui/create-form/form-loader/index.js +1 -0
- package/dist/esm/ui/create-form/form-loader/main.js +21 -0
- package/dist/esm/ui/create-form/index.js +1 -0
- package/dist/esm/ui/create-form/main.js +13 -6
- package/dist/esm/ui/index.js +1 -0
- package/dist/esm/ui/main.js +2 -7
- package/dist/esm/version.json +1 -1
- package/dist/types/common/constants.d.ts +1 -0
- package/dist/types/controllers/form-context/main.d.ts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/ui/create-form/form-loader/index.d.ts +1 -0
- package/dist/types/ui/create-form/form-loader/main.d.ts +4 -0
- package/dist/types/ui/create-form/index.d.ts +1 -0
- package/dist/types/ui/create-form/main.d.ts +4 -2
- package/dist/types/ui/index.d.ts +1 -0
- package/dist/types-ts4.5/common/constants.d.ts +4 -0
- package/dist/types-ts4.5/common/types.d.ts +88 -0
- package/dist/types-ts4.5/common/utils/analytics/analytics.codegen.d.ts +48 -0
- package/dist/types-ts4.5/common/utils/analytics/context.d.ts +29 -0
- package/dist/types-ts4.5/common/utils/analytics/index.d.ts +1 -0
- package/dist/types-ts4.5/controllers/callback-context/index.d.ts +1 -0
- package/dist/types-ts4.5/controllers/callback-context/main.d.ts +22 -0
- package/dist/types-ts4.5/controllers/form-context/index.d.ts +1 -0
- package/dist/types-ts4.5/controllers/form-context/main.d.ts +12 -0
- package/dist/types-ts4.5/index.d.ts +7 -0
- package/dist/types-ts4.5/ui/create-form/async-select/index.d.ts +1 -0
- package/dist/types-ts4.5/ui/create-form/async-select/main.d.ts +10 -0
- package/dist/types-ts4.5/ui/create-form/async-select/types.d.ts +18 -0
- package/dist/types-ts4.5/ui/create-form/form-loader/index.d.ts +1 -0
- package/dist/types-ts4.5/ui/create-form/form-loader/main.d.ts +4 -0
- package/dist/types-ts4.5/ui/create-form/index.d.ts +4 -0
- package/dist/types-ts4.5/ui/create-form/main.d.ts +12 -0
- package/dist/types-ts4.5/ui/create-form/messages.d.ts +12 -0
- package/dist/types-ts4.5/ui/create-form/textfield/index.d.ts +1 -0
- package/dist/types-ts4.5/ui/create-form/textfield/main.d.ts +9 -0
- package/dist/types-ts4.5/ui/create-form/textfield/types.d.ts +14 -0
- package/dist/types-ts4.5/ui/create-form/types.d.ts +6 -0
- package/dist/types-ts4.5/ui/create-form/utils/index.d.ts +13 -0
- package/dist/types-ts4.5/ui/error-boundary/error-boundary-base/index.d.ts +18 -0
- package/dist/types-ts4.5/ui/error-boundary/error-boundary-ui/error-svg/index.d.ts +4 -0
- package/dist/types-ts4.5/ui/error-boundary/error-boundary-ui/index.d.ts +3 -0
- package/dist/types-ts4.5/ui/error-boundary/error-boundary-ui/messages.d.ts +13 -0
- package/dist/types-ts4.5/ui/error-boundary/index.d.ts +2 -0
- package/dist/types-ts4.5/ui/group-selection/index.d.ts +4 -0
- package/dist/types-ts4.5/ui/group-selection/types.d.ts +12 -0
- package/dist/types-ts4.5/ui/index.d.ts +6 -0
- package/dist/types-ts4.5/ui/main.d.ts +7 -0
- package/dist/types-ts4.5/ui/messages.d.ts +7 -0
- package/dist/types-ts4.5/ui/types.d.ts +6 -0
- package/package.json +7 -6
- package/report.api.md +13 -1
- package/tmp/api-report-tmp.d.ts +9 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @atlaskit/link-create
|
|
2
2
|
|
|
3
|
+
## 0.5.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`ad753581e70`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ad753581e70) - [ux] Moves the FormFooter out of CreateForm and provides a new CreateFormLoader component & now we handle the submitting state in the form context
|
|
8
|
+
|
|
9
|
+
## 0.4.4
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [`9d00501a414`](https://bitbucket.org/atlassian/atlassian-frontend/commits/9d00501a414) - Ensure legacy types are published for TS 4.5-4.8
|
|
14
|
+
|
|
3
15
|
## 0.4.3
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.CREATE_FORM_MAX_WIDTH_IN_PX = exports.COMPONENT_NAME = exports.ANALYTICS_CHANNEL = void 0;
|
|
6
|
+
exports.CREATE_FORM_MIN_HEIGHT_IN_PX = exports.CREATE_FORM_MAX_WIDTH_IN_PX = exports.COMPONENT_NAME = exports.ANALYTICS_CHANNEL = void 0;
|
|
7
7
|
var ANALYTICS_CHANNEL = 'media';
|
|
8
8
|
exports.ANALYTICS_CHANNEL = ANALYTICS_CHANNEL;
|
|
9
9
|
var COMPONENT_NAME = 'linkCreate';
|
|
10
10
|
exports.COMPONENT_NAME = COMPONENT_NAME;
|
|
11
11
|
var CREATE_FORM_MAX_WIDTH_IN_PX = '600';
|
|
12
|
-
exports.CREATE_FORM_MAX_WIDTH_IN_PX = CREATE_FORM_MAX_WIDTH_IN_PX;
|
|
12
|
+
exports.CREATE_FORM_MAX_WIDTH_IN_PX = CREATE_FORM_MAX_WIDTH_IN_PX;
|
|
13
|
+
var CREATE_FORM_MIN_HEIGHT_IN_PX = '200';
|
|
14
|
+
exports.CREATE_FORM_MIN_HEIGHT_IN_PX = CREATE_FORM_MIN_HEIGHT_IN_PX;
|
|
@@ -32,19 +32,19 @@ var FormContextProvider = function FormContextProvider(_ref) {
|
|
|
32
32
|
validators = _useState4[0],
|
|
33
33
|
setValidators = _useState4[1];
|
|
34
34
|
|
|
35
|
-
//
|
|
35
|
+
// Add validators to the form
|
|
36
36
|
var assignValidator = (0, _react.useCallback)(function (name, fieldValidators) {
|
|
37
37
|
setValidators(function (prevValidators) {
|
|
38
38
|
return _objectSpread(_objectSpread({}, prevValidators), {}, (0, _defineProperty2.default)({}, name, fieldValidators));
|
|
39
39
|
});
|
|
40
40
|
}, []);
|
|
41
41
|
|
|
42
|
-
//
|
|
42
|
+
// Returns a validator function array
|
|
43
43
|
var getValidators = (0, _react.useCallback)(function () {
|
|
44
44
|
return validators;
|
|
45
45
|
}, [validators]);
|
|
46
46
|
|
|
47
|
-
//
|
|
47
|
+
// Sets the form footer error message
|
|
48
48
|
var setFormErrorMessage = (0, _react.useCallback)(function (errorMessage) {
|
|
49
49
|
return setError(errorMessage);
|
|
50
50
|
}, [setError]);
|
package/dist/cjs/index.js
CHANGED
|
@@ -16,6 +16,12 @@ Object.defineProperty(exports, "CreateForm", {
|
|
|
16
16
|
return _index.CreateForm;
|
|
17
17
|
}
|
|
18
18
|
});
|
|
19
|
+
Object.defineProperty(exports, "CreateFormLoader", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function get() {
|
|
22
|
+
return _index.CreateFormLoader;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
19
25
|
Object.defineProperty(exports, "FormContextProvider", {
|
|
20
26
|
enumerable: true,
|
|
21
27
|
get: function get() {
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "CreateFormLoader", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _main.CreateFormLoader;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _main = require("./main");
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.CreateFormLoader = CreateFormLoader;
|
|
8
|
+
var _react = require("@emotion/react");
|
|
9
|
+
var _spinner = _interopRequireDefault(require("@atlaskit/spinner"));
|
|
10
|
+
var _constants = require("../../../common/constants");
|
|
11
|
+
/** @jsx jsx */
|
|
12
|
+
|
|
13
|
+
var formLoaderStyles = (0, _react.css)({
|
|
14
|
+
display: "flex",
|
|
15
|
+
alignItems: "center",
|
|
16
|
+
justifyContent: "center",
|
|
17
|
+
minHeight: "".concat(_constants.CREATE_FORM_MIN_HEIGHT_IN_PX, "px")
|
|
18
|
+
});
|
|
19
|
+
function CreateFormLoader(_ref) {
|
|
20
|
+
var _ref$size = _ref.size,
|
|
21
|
+
size = _ref$size === void 0 ? 'large' : _ref$size;
|
|
22
|
+
return (0, _react.jsx)("div", {
|
|
23
|
+
css: formLoaderStyles
|
|
24
|
+
}, (0, _react.jsx)(_spinner.default, {
|
|
25
|
+
size: size,
|
|
26
|
+
interactionName: "load",
|
|
27
|
+
testId: "link-create-form-loader"
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
@@ -15,6 +15,12 @@ Object.defineProperty(exports, "CreateForm", {
|
|
|
15
15
|
return _main.CreateForm;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
|
+
Object.defineProperty(exports, "CreateFormLoader", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _formLoader.CreateFormLoader;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
18
24
|
Object.defineProperty(exports, "TextField", {
|
|
19
25
|
enumerable: true,
|
|
20
26
|
get: function get() {
|
|
@@ -23,4 +29,5 @@ Object.defineProperty(exports, "TextField", {
|
|
|
23
29
|
});
|
|
24
30
|
var _main = require("./main");
|
|
25
31
|
var _asyncSelect = require("./async-select");
|
|
32
|
+
var _formLoader = require("./form-loader");
|
|
26
33
|
var _textfield = require("./textfield");
|
|
@@ -21,6 +21,7 @@ var _error = _interopRequireDefault(require("@atlaskit/icon/glyph/error"));
|
|
|
21
21
|
var _constants = require("../../common/constants");
|
|
22
22
|
var _analytics = _interopRequireDefault(require("../../common/utils/analytics/analytics.codegen"));
|
|
23
23
|
var _formContext = require("../../controllers/form-context");
|
|
24
|
+
var _formLoader = require("./form-loader");
|
|
24
25
|
var _messages = require("./messages");
|
|
25
26
|
var _utils = require("./utils");
|
|
26
27
|
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); }
|
|
@@ -40,14 +41,16 @@ var errorStyles = (0, _react2.css)({
|
|
|
40
41
|
var CreateForm = function CreateForm(_ref) {
|
|
41
42
|
var children = _ref.children,
|
|
42
43
|
testId = _ref.testId,
|
|
44
|
+
onSubmit = _ref.onSubmit,
|
|
43
45
|
onCancel = _ref.onCancel,
|
|
44
|
-
|
|
46
|
+
isLoading = _ref.isLoading,
|
|
47
|
+
hideFooter = _ref.hideFooter;
|
|
48
|
+
var intl = (0, _reactIntlNext.useIntl)();
|
|
45
49
|
var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
|
|
46
50
|
createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
|
|
47
51
|
var _useFormContext = (0, _formContext.useFormContext)(),
|
|
48
52
|
getValidators = _useFormContext.getValidators,
|
|
49
53
|
formErrorMessage = _useFormContext.formErrorMessage;
|
|
50
|
-
var intl = (0, _reactIntlNext.useIntl)();
|
|
51
54
|
var handleSubmit = (0, _react.useCallback)( /*#__PURE__*/function () {
|
|
52
55
|
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(data) {
|
|
53
56
|
var validators, errors;
|
|
@@ -81,22 +84,26 @@ var CreateForm = function CreateForm(_ref) {
|
|
|
81
84
|
createAnalyticsEvent((0, _analytics.default)('ui.button.clicked.cancel', {})).fire(_constants.ANALYTICS_CHANNEL);
|
|
82
85
|
onCancel && onCancel();
|
|
83
86
|
}, [createAnalyticsEvent, onCancel]);
|
|
87
|
+
if (isLoading) {
|
|
88
|
+
return (0, _react2.jsx)(_formLoader.CreateFormLoader, null);
|
|
89
|
+
}
|
|
84
90
|
return (0, _react2.jsx)(_form.default, {
|
|
85
91
|
onSubmit: handleSubmit
|
|
86
92
|
}, function (_ref3) {
|
|
87
|
-
var
|
|
88
|
-
|
|
93
|
+
var formProps = _ref3.formProps,
|
|
94
|
+
submitting = _ref3.submitting;
|
|
89
95
|
return (0, _react2.jsx)("form", (0, _extends2.default)({}, formProps, {
|
|
90
96
|
name: "confluence-creation-form",
|
|
91
97
|
"data-testid": testId,
|
|
92
98
|
css: formStyles
|
|
93
|
-
}), (0, _react2.jsx)(_form.FormSection, null, children), (0, _react2.jsx)(_form.FormFooter, null, formErrorMessage && (0, _react2.jsx)("div", {
|
|
99
|
+
}), (0, _react2.jsx)(_form.FormSection, null, children), !hideFooter && (0, _react2.jsx)(_form.FormFooter, null, formErrorMessage && (0, _react2.jsx)("div", {
|
|
94
100
|
css: errorStyles,
|
|
95
|
-
"data-testid": "link-create-
|
|
101
|
+
"data-testid": "link-create-form-error"
|
|
96
102
|
}, (0, _react2.jsx)(_error.default, {
|
|
97
103
|
label: formErrorMessage,
|
|
98
104
|
primaryColor: "var(--ds-icon-danger, #E34935)"
|
|
99
105
|
}), formErrorMessage), (0, _react2.jsx)(_button.ButtonGroup, null, (0, _react2.jsx)(_standardButton.default, {
|
|
106
|
+
type: "button",
|
|
100
107
|
appearance: "subtle",
|
|
101
108
|
onClick: handleCancel,
|
|
102
109
|
testId: 'cancel-button'
|
package/dist/cjs/ui/index.js
CHANGED
|
@@ -16,6 +16,12 @@ Object.defineProperty(exports, "CreateForm", {
|
|
|
16
16
|
return _main2.CreateForm;
|
|
17
17
|
}
|
|
18
18
|
});
|
|
19
|
+
Object.defineProperty(exports, "CreateFormLoader", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function get() {
|
|
22
|
+
return _formLoader.CreateFormLoader;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
19
25
|
Object.defineProperty(exports, "TextField", {
|
|
20
26
|
enumerable: true,
|
|
21
27
|
get: function get() {
|
|
@@ -31,4 +37,5 @@ Object.defineProperty(exports, "default", {
|
|
|
31
37
|
var _main = _interopRequireDefault(require("./main"));
|
|
32
38
|
var _textfield = require("./create-form/textfield");
|
|
33
39
|
var _main2 = require("./create-form/main");
|
|
40
|
+
var _formLoader = require("./create-form/form-loader");
|
|
34
41
|
var _asyncSelect = require("./create-form/async-select");
|
package/dist/cjs/ui/main.js
CHANGED
|
@@ -25,12 +25,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
25
25
|
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; }
|
|
26
26
|
/** @jsx jsx */
|
|
27
27
|
|
|
28
|
-
var
|
|
29
|
-
return function (props) {
|
|
30
|
-
return (0, _react2.jsx)(_formContext.FormContextProvider, null, (0, _react2.jsx)(Component, props));
|
|
31
|
-
};
|
|
32
|
-
};
|
|
33
|
-
var LinkCreate = withFormContext(function (_ref) {
|
|
28
|
+
var LinkCreate = function LinkCreate(_ref) {
|
|
34
29
|
var plugins = _ref.plugins,
|
|
35
30
|
entityKey = _ref.entityKey,
|
|
36
31
|
onCreate = _ref.onCreate,
|
|
@@ -59,7 +54,7 @@ var LinkCreate = withFormContext(function (_ref) {
|
|
|
59
54
|
onFailure: handleFailure,
|
|
60
55
|
onCancel: onCancel
|
|
61
56
|
}, chosenOne.form);
|
|
62
|
-
}
|
|
57
|
+
};
|
|
63
58
|
var LinkCreateWithModal = function LinkCreateWithModal(props) {
|
|
64
59
|
var testId = props.testId,
|
|
65
60
|
onCancel = props.onCancel,
|
package/dist/cjs/version.json
CHANGED
|
@@ -10,7 +10,7 @@ const FormContextProvider = ({
|
|
|
10
10
|
const [error, setError] = useState();
|
|
11
11
|
const [validators, setValidators] = useState({});
|
|
12
12
|
|
|
13
|
-
//
|
|
13
|
+
// Add validators to the form
|
|
14
14
|
const assignValidator = useCallback((name, fieldValidators) => {
|
|
15
15
|
setValidators(prevValidators => ({
|
|
16
16
|
...prevValidators,
|
|
@@ -18,12 +18,12 @@ const FormContextProvider = ({
|
|
|
18
18
|
}));
|
|
19
19
|
}, []);
|
|
20
20
|
|
|
21
|
-
//
|
|
21
|
+
// Returns a validator function array
|
|
22
22
|
const getValidators = useCallback(() => {
|
|
23
23
|
return validators;
|
|
24
24
|
}, [validators]);
|
|
25
25
|
|
|
26
|
-
//
|
|
26
|
+
// Sets the form footer error message
|
|
27
27
|
const setFormErrorMessage = useCallback(errorMessage => {
|
|
28
28
|
return setError(errorMessage);
|
|
29
29
|
}, [setError]);
|
package/dist/es2019/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { default, TextField, CreateForm, AsyncSelect } from './ui/index';
|
|
1
|
+
export { default, TextField, CreateForm, AsyncSelect, CreateFormLoader } from './ui/index';
|
|
2
2
|
export { useLinkCreateCallback, LinkCreateCallbackProvider } from './controllers/callback-context';
|
|
3
3
|
export { FormContextProvider, useFormContext } from './controllers/form-context';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CreateFormLoader } from './main';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { css, jsx } from '@emotion/react';
|
|
3
|
+
import Spinner from '@atlaskit/spinner';
|
|
4
|
+
import { CREATE_FORM_MIN_HEIGHT_IN_PX } from '../../../common/constants';
|
|
5
|
+
const formLoaderStyles = css({
|
|
6
|
+
display: `flex`,
|
|
7
|
+
alignItems: `center`,
|
|
8
|
+
justifyContent: `center`,
|
|
9
|
+
minHeight: `${CREATE_FORM_MIN_HEIGHT_IN_PX}px`
|
|
10
|
+
});
|
|
11
|
+
export function CreateFormLoader({
|
|
12
|
+
size = 'large'
|
|
13
|
+
}) {
|
|
14
|
+
return jsx("div", {
|
|
15
|
+
css: formLoaderStyles
|
|
16
|
+
}, jsx(Spinner, {
|
|
17
|
+
size: size,
|
|
18
|
+
interactionName: "load",
|
|
19
|
+
testId: "link-create-form-loader"
|
|
20
|
+
}));
|
|
21
|
+
}
|
|
@@ -12,6 +12,7 @@ import ErrorIcon from '@atlaskit/icon/glyph/error';
|
|
|
12
12
|
import { ANALYTICS_CHANNEL, CREATE_FORM_MAX_WIDTH_IN_PX } from '../../common/constants';
|
|
13
13
|
import createEventPayload from '../../common/utils/analytics/analytics.codegen';
|
|
14
14
|
import { useFormContext } from '../../controllers/form-context';
|
|
15
|
+
import { CreateFormLoader } from './form-loader';
|
|
15
16
|
import { messages } from './messages';
|
|
16
17
|
import { validateFormData } from './utils';
|
|
17
18
|
const formStyles = css({
|
|
@@ -27,9 +28,12 @@ const errorStyles = css({
|
|
|
27
28
|
export const CreateForm = ({
|
|
28
29
|
children,
|
|
29
30
|
testId,
|
|
31
|
+
onSubmit,
|
|
30
32
|
onCancel,
|
|
31
|
-
|
|
33
|
+
isLoading,
|
|
34
|
+
hideFooter
|
|
32
35
|
}) => {
|
|
36
|
+
const intl = useIntl();
|
|
33
37
|
const {
|
|
34
38
|
createAnalyticsEvent
|
|
35
39
|
} = useAnalyticsEvents();
|
|
@@ -37,7 +41,6 @@ export const CreateForm = ({
|
|
|
37
41
|
getValidators,
|
|
38
42
|
formErrorMessage
|
|
39
43
|
} = useFormContext();
|
|
40
|
-
const intl = useIntl();
|
|
41
44
|
const handleSubmit = useCallback(async data => {
|
|
42
45
|
createAnalyticsEvent(createEventPayload('ui.button.clicked.create', {})).fire(ANALYTICS_CHANNEL);
|
|
43
46
|
const validators = getValidators();
|
|
@@ -54,22 +57,26 @@ export const CreateForm = ({
|
|
|
54
57
|
createAnalyticsEvent(createEventPayload('ui.button.clicked.cancel', {})).fire(ANALYTICS_CHANNEL);
|
|
55
58
|
onCancel && onCancel();
|
|
56
59
|
}, [createAnalyticsEvent, onCancel]);
|
|
60
|
+
if (isLoading) {
|
|
61
|
+
return jsx(CreateFormLoader, null);
|
|
62
|
+
}
|
|
57
63
|
return jsx(Form, {
|
|
58
64
|
onSubmit: handleSubmit
|
|
59
65
|
}, ({
|
|
60
|
-
|
|
61
|
-
|
|
66
|
+
formProps,
|
|
67
|
+
submitting
|
|
62
68
|
}) => jsx("form", _extends({}, formProps, {
|
|
63
69
|
name: "confluence-creation-form",
|
|
64
70
|
"data-testid": testId,
|
|
65
71
|
css: formStyles
|
|
66
|
-
}), jsx(FormSection, null, children), jsx(FormFooter, null, formErrorMessage && jsx("div", {
|
|
72
|
+
}), jsx(FormSection, null, children), !hideFooter && jsx(FormFooter, null, formErrorMessage && jsx("div", {
|
|
67
73
|
css: errorStyles,
|
|
68
|
-
"data-testid": "link-create-
|
|
74
|
+
"data-testid": "link-create-form-error"
|
|
69
75
|
}, jsx(ErrorIcon, {
|
|
70
76
|
label: formErrorMessage,
|
|
71
77
|
primaryColor: "var(--ds-icon-danger, #E34935)"
|
|
72
78
|
}), formErrorMessage), jsx(ButtonGroup, null, jsx(Button, {
|
|
79
|
+
type: "button",
|
|
73
80
|
appearance: "subtle",
|
|
74
81
|
onClick: handleCancel,
|
|
75
82
|
testId: 'cancel-button'
|
package/dist/es2019/ui/index.js
CHANGED
package/dist/es2019/ui/main.js
CHANGED
|
@@ -12,8 +12,7 @@ import { FormContextProvider, useFormContext } from '../controllers/form-context
|
|
|
12
12
|
import { name as packageName, version as packageVersion } from '../version.json';
|
|
13
13
|
import { ErrorBoundary } from './error-boundary';
|
|
14
14
|
import { messages } from './messages';
|
|
15
|
-
const
|
|
16
|
-
const LinkCreate = withFormContext(({
|
|
15
|
+
const LinkCreate = ({
|
|
17
16
|
plugins,
|
|
18
17
|
entityKey,
|
|
19
18
|
onCreate,
|
|
@@ -42,7 +41,7 @@ const LinkCreate = withFormContext(({
|
|
|
42
41
|
onFailure: handleFailure,
|
|
43
42
|
onCancel: onCancel
|
|
44
43
|
}, chosenOne.form);
|
|
45
|
-
}
|
|
44
|
+
};
|
|
46
45
|
const LinkCreateWithModal = props => {
|
|
47
46
|
const {
|
|
48
47
|
testId,
|
package/dist/es2019/version.json
CHANGED
|
@@ -21,19 +21,19 @@ var FormContextProvider = function FormContextProvider(_ref) {
|
|
|
21
21
|
validators = _useState4[0],
|
|
22
22
|
setValidators = _useState4[1];
|
|
23
23
|
|
|
24
|
-
//
|
|
24
|
+
// Add validators to the form
|
|
25
25
|
var assignValidator = useCallback(function (name, fieldValidators) {
|
|
26
26
|
setValidators(function (prevValidators) {
|
|
27
27
|
return _objectSpread(_objectSpread({}, prevValidators), {}, _defineProperty({}, name, fieldValidators));
|
|
28
28
|
});
|
|
29
29
|
}, []);
|
|
30
30
|
|
|
31
|
-
//
|
|
31
|
+
// Returns a validator function array
|
|
32
32
|
var getValidators = useCallback(function () {
|
|
33
33
|
return validators;
|
|
34
34
|
}, [validators]);
|
|
35
35
|
|
|
36
|
-
//
|
|
36
|
+
// Sets the form footer error message
|
|
37
37
|
var setFormErrorMessage = useCallback(function (errorMessage) {
|
|
38
38
|
return setError(errorMessage);
|
|
39
39
|
}, [setError]);
|
package/dist/esm/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { default, TextField, CreateForm, AsyncSelect } from './ui/index';
|
|
1
|
+
export { default, TextField, CreateForm, AsyncSelect, CreateFormLoader } from './ui/index';
|
|
2
2
|
export { useLinkCreateCallback, LinkCreateCallbackProvider } from './controllers/callback-context';
|
|
3
3
|
export { FormContextProvider, useFormContext } from './controllers/form-context';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CreateFormLoader } from './main';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { css, jsx } from '@emotion/react';
|
|
3
|
+
import Spinner from '@atlaskit/spinner';
|
|
4
|
+
import { CREATE_FORM_MIN_HEIGHT_IN_PX } from '../../../common/constants';
|
|
5
|
+
var formLoaderStyles = css({
|
|
6
|
+
display: "flex",
|
|
7
|
+
alignItems: "center",
|
|
8
|
+
justifyContent: "center",
|
|
9
|
+
minHeight: "".concat(CREATE_FORM_MIN_HEIGHT_IN_PX, "px")
|
|
10
|
+
});
|
|
11
|
+
export function CreateFormLoader(_ref) {
|
|
12
|
+
var _ref$size = _ref.size,
|
|
13
|
+
size = _ref$size === void 0 ? 'large' : _ref$size;
|
|
14
|
+
return jsx("div", {
|
|
15
|
+
css: formLoaderStyles
|
|
16
|
+
}, jsx(Spinner, {
|
|
17
|
+
size: size,
|
|
18
|
+
interactionName: "load",
|
|
19
|
+
testId: "link-create-form-loader"
|
|
20
|
+
}));
|
|
21
|
+
}
|
|
@@ -14,6 +14,7 @@ import ErrorIcon from '@atlaskit/icon/glyph/error';
|
|
|
14
14
|
import { ANALYTICS_CHANNEL, CREATE_FORM_MAX_WIDTH_IN_PX } from '../../common/constants';
|
|
15
15
|
import createEventPayload from '../../common/utils/analytics/analytics.codegen';
|
|
16
16
|
import { useFormContext } from '../../controllers/form-context';
|
|
17
|
+
import { CreateFormLoader } from './form-loader';
|
|
17
18
|
import { messages } from './messages';
|
|
18
19
|
import { validateFormData } from './utils';
|
|
19
20
|
var formStyles = css({
|
|
@@ -29,14 +30,16 @@ var errorStyles = css({
|
|
|
29
30
|
export var CreateForm = function CreateForm(_ref) {
|
|
30
31
|
var children = _ref.children,
|
|
31
32
|
testId = _ref.testId,
|
|
33
|
+
onSubmit = _ref.onSubmit,
|
|
32
34
|
onCancel = _ref.onCancel,
|
|
33
|
-
|
|
35
|
+
isLoading = _ref.isLoading,
|
|
36
|
+
hideFooter = _ref.hideFooter;
|
|
37
|
+
var intl = useIntl();
|
|
34
38
|
var _useAnalyticsEvents = useAnalyticsEvents(),
|
|
35
39
|
createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
|
|
36
40
|
var _useFormContext = useFormContext(),
|
|
37
41
|
getValidators = _useFormContext.getValidators,
|
|
38
42
|
formErrorMessage = _useFormContext.formErrorMessage;
|
|
39
|
-
var intl = useIntl();
|
|
40
43
|
var handleSubmit = useCallback( /*#__PURE__*/function () {
|
|
41
44
|
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(data) {
|
|
42
45
|
var validators, errors;
|
|
@@ -70,22 +73,26 @@ export var CreateForm = function CreateForm(_ref) {
|
|
|
70
73
|
createAnalyticsEvent(createEventPayload('ui.button.clicked.cancel', {})).fire(ANALYTICS_CHANNEL);
|
|
71
74
|
onCancel && onCancel();
|
|
72
75
|
}, [createAnalyticsEvent, onCancel]);
|
|
76
|
+
if (isLoading) {
|
|
77
|
+
return jsx(CreateFormLoader, null);
|
|
78
|
+
}
|
|
73
79
|
return jsx(Form, {
|
|
74
80
|
onSubmit: handleSubmit
|
|
75
81
|
}, function (_ref3) {
|
|
76
|
-
var
|
|
77
|
-
|
|
82
|
+
var formProps = _ref3.formProps,
|
|
83
|
+
submitting = _ref3.submitting;
|
|
78
84
|
return jsx("form", _extends({}, formProps, {
|
|
79
85
|
name: "confluence-creation-form",
|
|
80
86
|
"data-testid": testId,
|
|
81
87
|
css: formStyles
|
|
82
|
-
}), jsx(FormSection, null, children), jsx(FormFooter, null, formErrorMessage && jsx("div", {
|
|
88
|
+
}), jsx(FormSection, null, children), !hideFooter && jsx(FormFooter, null, formErrorMessage && jsx("div", {
|
|
83
89
|
css: errorStyles,
|
|
84
|
-
"data-testid": "link-create-
|
|
90
|
+
"data-testid": "link-create-form-error"
|
|
85
91
|
}, jsx(ErrorIcon, {
|
|
86
92
|
label: formErrorMessage,
|
|
87
93
|
primaryColor: "var(--ds-icon-danger, #E34935)"
|
|
88
94
|
}), formErrorMessage), jsx(ButtonGroup, null, jsx(Button, {
|
|
95
|
+
type: "button",
|
|
89
96
|
appearance: "subtle",
|
|
90
97
|
onClick: handleCancel,
|
|
91
98
|
testId: 'cancel-button'
|
package/dist/esm/ui/index.js
CHANGED
package/dist/esm/ui/main.js
CHANGED
|
@@ -14,12 +14,7 @@ import { FormContextProvider, useFormContext } from '../controllers/form-context
|
|
|
14
14
|
import { name as packageName, version as packageVersion } from '../version.json';
|
|
15
15
|
import { ErrorBoundary } from './error-boundary';
|
|
16
16
|
import { messages } from './messages';
|
|
17
|
-
var
|
|
18
|
-
return function (props) {
|
|
19
|
-
return jsx(FormContextProvider, null, jsx(Component, props));
|
|
20
|
-
};
|
|
21
|
-
};
|
|
22
|
-
var LinkCreate = withFormContext(function (_ref) {
|
|
17
|
+
var LinkCreate = function LinkCreate(_ref) {
|
|
23
18
|
var plugins = _ref.plugins,
|
|
24
19
|
entityKey = _ref.entityKey,
|
|
25
20
|
onCreate = _ref.onCreate,
|
|
@@ -48,7 +43,7 @@ var LinkCreate = withFormContext(function (_ref) {
|
|
|
48
43
|
onFailure: handleFailure,
|
|
49
44
|
onCancel: onCancel
|
|
50
45
|
}, chosenOne.form);
|
|
51
|
-
}
|
|
46
|
+
};
|
|
52
47
|
var LinkCreateWithModal = function LinkCreateWithModal(props) {
|
|
53
48
|
var testId = props.testId,
|
|
54
49
|
onCancel = props.onCancel,
|
package/dist/esm/version.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Validator, ValidatorMap } from '../../common/types';
|
|
3
3
|
interface FormContextType {
|
|
4
|
-
assignValidator: (name: string, validators: Validator[]) => void;
|
|
5
4
|
getValidators: () => ValidatorMap;
|
|
5
|
+
assignValidator: (name: string, validators: Validator[]) => void;
|
|
6
6
|
setFormErrorMessage: (errorMessage?: string) => void;
|
|
7
7
|
formErrorMessage?: string;
|
|
8
8
|
}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type { Option } from './ui/types';
|
|
2
2
|
export type { CreateFormProps } from './ui/index';
|
|
3
3
|
export type { LinkCreateProps, LinkCreatePlugin } from './common/types';
|
|
4
|
-
export { default, TextField, CreateForm, AsyncSelect } from './ui/index';
|
|
4
|
+
export { default, TextField, CreateForm, AsyncSelect, CreateFormLoader, } from './ui/index';
|
|
5
5
|
export { useLinkCreateCallback, LinkCreateCallbackProvider, } from './controllers/callback-context';
|
|
6
6
|
export { FormContextProvider, useFormContext, } from './controllers/form-context';
|
|
7
7
|
export type { Validator, ValidatorMap } from './common/types';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CreateFormLoader } from './main';
|
|
@@ -4,7 +4,9 @@ import { jsx } from '@emotion/react';
|
|
|
4
4
|
export interface CreateFormProps<FormData> {
|
|
5
5
|
children: ReactNode;
|
|
6
6
|
testId?: string;
|
|
7
|
-
onCancel?: () => void;
|
|
8
7
|
onSubmit: (data: FormData) => void;
|
|
8
|
+
onCancel?: () => void;
|
|
9
|
+
isLoading?: boolean;
|
|
10
|
+
hideFooter?: boolean;
|
|
9
11
|
}
|
|
10
|
-
export declare const CreateForm: <FormData_1 extends Record<string, any> = {}>({ children, testId, onCancel,
|
|
12
|
+
export declare const CreateForm: <FormData_1 extends Record<string, any> = {}>({ children, testId, onSubmit, onCancel, isLoading, hideFooter, }: CreateFormProps<FormData_1>) => jsx.JSX.Element;
|
package/dist/types/ui/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { default } from './main';
|
|
2
2
|
export { TextField } from './create-form/textfield';
|
|
3
3
|
export { CreateForm } from './create-form/main';
|
|
4
|
+
export { CreateFormLoader } from './create-form/form-loader';
|
|
4
5
|
export type { CreateFormProps } from './create-form/main';
|
|
5
6
|
export { AsyncSelect } from './create-form/async-select';
|