@atlaskit/link-create 0.10.0 → 1.0.1

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.
Files changed (87) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/controllers/create-field/index.js +12 -0
  3. package/dist/cjs/controllers/create-field/main.js +62 -0
  4. package/dist/cjs/index.js +12 -0
  5. package/dist/cjs/ui/create-form/async-select/main.js +117 -35
  6. package/dist/cjs/ui/create-form/form-footer/main.js +9 -2
  7. package/dist/cjs/ui/create-form/form-spy/index.js +27 -0
  8. package/dist/cjs/ui/create-form/index.js +15 -1
  9. package/dist/cjs/ui/create-form/main.js +20 -10
  10. package/dist/cjs/ui/create-form/select/index.js +12 -0
  11. package/dist/cjs/ui/create-form/select/main.js +50 -0
  12. package/dist/cjs/ui/create-form/select/types.js +5 -0
  13. package/dist/cjs/ui/create-form/textfield/main.js +26 -48
  14. package/dist/cjs/ui/index.js +15 -1
  15. package/dist/cjs/version.json +1 -1
  16. package/dist/es2019/controllers/create-field/index.js +1 -0
  17. package/dist/es2019/controllers/create-field/main.js +57 -0
  18. package/dist/es2019/index.js +1 -1
  19. package/dist/es2019/ui/create-form/async-select/main.js +75 -34
  20. package/dist/es2019/ui/create-form/form-footer/main.js +9 -2
  21. package/dist/es2019/ui/create-form/form-spy/index.js +18 -0
  22. package/dist/es2019/ui/create-form/index.js +3 -1
  23. package/dist/es2019/ui/create-form/main.js +25 -16
  24. package/dist/es2019/ui/create-form/select/index.js +1 -0
  25. package/dist/es2019/ui/create-form/select/main.js +40 -0
  26. package/dist/es2019/ui/create-form/textfield/main.js +24 -48
  27. package/dist/es2019/ui/index.js +3 -1
  28. package/dist/es2019/version.json +1 -1
  29. package/dist/esm/controllers/create-field/index.js +1 -0
  30. package/dist/esm/controllers/create-field/main.js +56 -0
  31. package/dist/esm/controllers/create-field/types.js +1 -0
  32. package/dist/esm/index.js +1 -1
  33. package/dist/esm/ui/create-form/async-select/main.js +118 -36
  34. package/dist/esm/ui/create-form/form-footer/main.js +9 -2
  35. package/dist/esm/ui/create-form/form-spy/index.js +19 -0
  36. package/dist/esm/ui/create-form/index.js +3 -1
  37. package/dist/esm/ui/create-form/main.js +19 -8
  38. package/dist/esm/ui/create-form/select/index.js +1 -0
  39. package/dist/esm/ui/create-form/select/main.js +42 -0
  40. package/dist/esm/ui/create-form/select/types.js +1 -0
  41. package/dist/esm/ui/create-form/textfield/main.js +25 -47
  42. package/dist/esm/ui/index.js +3 -1
  43. package/dist/esm/version.json +1 -1
  44. package/dist/types/common/utils/form/index.d.ts +2 -2
  45. package/dist/types/controllers/create-field/index.d.ts +1 -0
  46. package/dist/types/controllers/create-field/main.d.ts +3 -0
  47. package/dist/types/controllers/create-field/types.d.ts +24 -0
  48. package/dist/types/index.d.ts +1 -1
  49. package/dist/types/ui/create-form/async-select/main.d.ts +5 -5
  50. package/dist/types/ui/create-form/async-select/types.d.ts +9 -4
  51. package/dist/types/ui/create-form/form-spy/index.d.ts +12 -0
  52. package/dist/types/ui/create-form/index.d.ts +2 -0
  53. package/dist/types/ui/create-form/main.d.ts +2 -1
  54. package/dist/types/ui/create-form/select/index.d.ts +1 -0
  55. package/dist/types/ui/create-form/select/main.d.ts +12 -0
  56. package/dist/types/ui/create-form/select/types.d.ts +18 -0
  57. package/dist/types/ui/create-form/textfield/main.d.ts +2 -1
  58. package/dist/types/ui/index.d.ts +2 -0
  59. package/dist/types-ts4.5/common/utils/form/index.d.ts +2 -2
  60. package/dist/types-ts4.5/controllers/create-field/index.d.ts +1 -0
  61. package/dist/types-ts4.5/controllers/create-field/main.d.ts +3 -0
  62. package/dist/types-ts4.5/controllers/create-field/types.d.ts +24 -0
  63. package/dist/types-ts4.5/index.d.ts +1 -1
  64. package/dist/types-ts4.5/ui/create-form/async-select/main.d.ts +5 -5
  65. package/dist/types-ts4.5/ui/create-form/async-select/types.d.ts +9 -4
  66. package/dist/types-ts4.5/ui/create-form/form-spy/index.d.ts +12 -0
  67. package/dist/types-ts4.5/ui/create-form/index.d.ts +2 -0
  68. package/dist/types-ts4.5/ui/create-form/main.d.ts +2 -1
  69. package/dist/types-ts4.5/ui/create-form/select/index.d.ts +1 -0
  70. package/dist/types-ts4.5/ui/create-form/select/main.d.ts +12 -0
  71. package/dist/types-ts4.5/ui/create-form/select/types.d.ts +18 -0
  72. package/dist/types-ts4.5/ui/create-form/textfield/main.d.ts +2 -1
  73. package/dist/types-ts4.5/ui/index.d.ts +2 -0
  74. package/example-helpers/mock-plugin-form.tsx +1 -3
  75. package/package.json +7 -4
  76. package/report.api.md +54 -11
  77. package/tmp/api-report-tmp.d.ts +32 -4
  78. package/dist/cjs/ui/group-selection/index.js +0 -22
  79. package/dist/es2019/ui/group-selection/index.js +0 -16
  80. package/dist/esm/ui/group-selection/index.js +0 -15
  81. package/dist/types/ui/group-selection/index.d.ts +0 -4
  82. package/dist/types/ui/group-selection/types.d.ts +0 -12
  83. package/dist/types-ts4.5/ui/group-selection/index.d.ts +0 -4
  84. package/dist/types-ts4.5/ui/group-selection/types.d.ts +0 -12
  85. /package/dist/cjs/{ui/group-selection → controllers/create-field}/types.js +0 -0
  86. /package/dist/es2019/{ui/group-selection → controllers/create-field}/types.js +0 -0
  87. /package/dist/{esm/ui/group-selection → es2019/ui/create-form/select}/types.js +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @atlaskit/link-create
2
2
 
3
+ ## 1.0.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`572ea7d92bd`](https://bitbucket.org/atlassian/atlassian-frontend/commits/572ea7d92bd) - revised form mutator types
8
+
9
+ ## 1.0.0
10
+
11
+ ### Major Changes
12
+
13
+ - [`687749df97a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/687749df97a) - Refactor form components to use react-final-form
14
+
3
15
  ## 0.10.0
4
16
 
5
17
  ### Minor Changes
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "CreateField", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _main.CreateField;
10
+ }
11
+ });
12
+ var _main = require("./main");
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.CreateField = CreateField;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _react = require("react");
10
+ var _react2 = require("@emotion/react");
11
+ var _reactFinalForm = require("react-final-form");
12
+ var _form = require("@atlaskit/form");
13
+ var _form2 = require("../../common/utils/form");
14
+ var _formContext = require("../form-context");
15
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
16
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } /** @jsx jsx */
17
+ var fieldWrapperStyles = (0, _react2.css)({
18
+ marginTop: "var(--ds-space-100, 8px)"
19
+ });
20
+ function CreateField(_ref) {
21
+ var id = _ref.id,
22
+ name = _ref.name,
23
+ label = _ref.label,
24
+ isRequired = _ref.isRequired,
25
+ validators = _ref.validators,
26
+ validationHelpText = _ref.validationHelpText,
27
+ testId = _ref.testId,
28
+ children = _ref.children;
29
+ var _useFormContext = (0, _formContext.useFormContext)(),
30
+ assignValidator = _useFormContext.assignValidator;
31
+ (0, _react.useEffect)(function () {
32
+ if (validators) {
33
+ assignValidator(name, validators);
34
+ }
35
+ }, [name, validators, assignValidator]);
36
+ var fieldId = (0, _react.useMemo)(function () {
37
+ return id ? id : "link-create-field-".concat(name);
38
+ }, [id, name]);
39
+ return (0, _react2.jsx)("div", {
40
+ css: fieldWrapperStyles,
41
+ "data-testid": testId
42
+ }, (0, _react2.jsx)(_reactFinalForm.Field, {
43
+ name: name
44
+ }, function (_ref2) {
45
+ var input = _ref2.input,
46
+ meta = _ref2.meta;
47
+ var isInvalid = (0, _form2.validateSubmitErrors)(meta);
48
+ var submitError = meta.submitError;
49
+ return (0, _react2.jsx)(_react.Fragment, null, label && (0, _react2.jsx)(_form.Label, {
50
+ htmlFor: fieldId,
51
+ id: "".concat(fieldId, "-label"),
52
+ testId: "".concat(testId, "-label")
53
+ }, label, isRequired && (0, _react2.jsx)(_form.RequiredAsterisk, null)), children(_objectSpread(_objectSpread({}, input), {}, {
54
+ fieldId: fieldId,
55
+ isInvalid: isInvalid
56
+ })), !submitError && validationHelpText && (0, _react2.jsx)(_form.HelperMessage, {
57
+ testId: "".concat(testId, "-helper-message")
58
+ }, validationHelpText), submitError && isInvalid && (0, _react2.jsx)(_form.ErrorMessage, {
59
+ testId: "".concat(testId, "-error-message")
60
+ }, submitError));
61
+ }));
62
+ }
package/dist/cjs/index.js CHANGED
@@ -22,12 +22,24 @@ Object.defineProperty(exports, "CreateFormLoader", {
22
22
  return _index.CreateFormLoader;
23
23
  }
24
24
  });
25
+ Object.defineProperty(exports, "FormSpy", {
26
+ enumerable: true,
27
+ get: function get() {
28
+ return _index.FormSpy;
29
+ }
30
+ });
25
31
  Object.defineProperty(exports, "LinkCreateCallbackProvider", {
26
32
  enumerable: true,
27
33
  get: function get() {
28
34
  return _callbackContext.LinkCreateCallbackProvider;
29
35
  }
30
36
  });
37
+ Object.defineProperty(exports, "Select", {
38
+ enumerable: true,
39
+ get: function get() {
40
+ return _index.Select;
41
+ }
42
+ });
31
43
  Object.defineProperty(exports, "TextField", {
32
44
  enumerable: true,
33
45
  get: function get() {
@@ -6,59 +6,141 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.AsyncSelect = AsyncSelect;
8
8
  exports.TEST_ID = void 0;
9
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
13
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
14
  var _react = require("react");
12
15
  var _react2 = require("@emotion/react");
13
- var _form = require("@atlaskit/form");
16
+ var _debouncePromise = _interopRequireDefault(require("debounce-promise"));
17
+ var _reactFinalForm = require("react-final-form");
14
18
  var _select = require("@atlaskit/select");
15
- var _form2 = require("../../../common/utils/form");
16
- var _formContext = require("../../../controllers/form-context");
17
- var _excluded = ["label", "name", "validationHelpText", "isRequired", "testId", "validators", "defaultValue"];
19
+ var _createField = require("../../../controllers/create-field");
20
+ var _excluded = ["id", "name", "label", "isRequired", "validators", "validationHelpText", "testId", "defaultOption", "loadOptions"],
21
+ _excluded2 = ["fieldId"];
18
22
  /** @jsx jsx */
19
23
  var TEST_ID = 'link-create-async-select';
24
+
20
25
  /**
21
- * An async select utilising the Atlaskit AsyncSelect and Field objects from `@atlaskit/form`.
22
- * Validation is handled by the form as it is on form submission. Any errors returned by
23
- * the handleSubmit function passed to the form <Form> that have a key matching the `name`
24
- * of this text field are shown above the field.
26
+ * An async select utilising the Atlaskit AsyncSelect and Field components from
27
+ * `@atlaskit/form`. Validation is handled by the form on form submission. Any
28
+ * errors returned by the handleSubmit function passed to the form <Form> that
29
+ * have a key matching the `name` of this field are shown below the field.
25
30
  */
26
31
  exports.TEST_ID = TEST_ID;
27
32
  function AsyncSelect(_ref) {
28
- var label = _ref.label,
33
+ var id = _ref.id,
29
34
  name = _ref.name,
30
- validationHelpText = _ref.validationHelpText,
35
+ label = _ref.label,
31
36
  isRequired = _ref.isRequired,
37
+ validators = _ref.validators,
38
+ validationHelpText = _ref.validationHelpText,
32
39
  _ref$testId = _ref.testId,
33
40
  testId = _ref$testId === void 0 ? TEST_ID : _ref$testId,
34
- validators = _ref.validators,
35
- defaultValue = _ref.defaultValue,
36
- rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
37
- var _useFormContext = (0, _formContext.useFormContext)(),
38
- assignValidator = _useFormContext.assignValidator;
41
+ propsDefaultValue = _ref.defaultOption,
42
+ loadOptions = _ref.loadOptions,
43
+ restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
44
+ var _useForm = (0, _reactFinalForm.useForm)(),
45
+ mutators = _useForm.mutators;
46
+ var _useState = (0, _react.useState)(propsDefaultValue),
47
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
48
+ defaultValue = _useState2[0],
49
+ setDefaultValue = _useState2[1];
50
+ var _useState3 = (0, _react.useState)(false),
51
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
52
+ isLoadingDefaultOptions = _useState4[0],
53
+ setIsLoadingDefaultOptions = _useState4[1];
54
+ var _useState5 = (0, _react.useState)([]),
55
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
56
+ defaultOptions = _useState6[0],
57
+ setDefaultOptions = _useState6[1];
58
+ (0, _react.useEffect)(function () {
59
+ var current = true;
60
+ var fetch = /*#__PURE__*/function () {
61
+ var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
62
+ var query,
63
+ options,
64
+ _args = arguments;
65
+ return _regenerator.default.wrap(function _callee$(_context) {
66
+ while (1) switch (_context.prev = _context.next) {
67
+ case 0:
68
+ query = _args.length > 0 && _args[0] !== undefined ? _args[0] : '';
69
+ if (loadOptions) {
70
+ _context.next = 3;
71
+ break;
72
+ }
73
+ return _context.abrupt("return");
74
+ case 3:
75
+ _context.prev = 3;
76
+ /**
77
+ * If we are fetching default options, clear the
78
+ * value the user has set
79
+ */
80
+ mutators.setField(name, null);
81
+ setIsLoadingDefaultOptions(true);
82
+ setDefaultOptions([]);
83
+ _context.next = 9;
84
+ return loadOptions(query);
85
+ case 9:
86
+ options = _context.sent;
87
+ if (current) {
88
+ setDefaultOptions(options);
89
+ setIsLoadingDefaultOptions(false);
90
+ }
91
+ _context.next = 16;
92
+ break;
93
+ case 13:
94
+ _context.prev = 13;
95
+ _context.t0 = _context["catch"](3);
96
+ if (current) {
97
+ setIsLoadingDefaultOptions(false);
98
+ }
99
+ case 16:
100
+ case "end":
101
+ return _context.stop();
102
+ }
103
+ }, _callee, null, [[3, 13]]);
104
+ }));
105
+ return function fetch() {
106
+ return _ref2.apply(this, arguments);
107
+ };
108
+ }();
109
+ fetch();
110
+ return function () {
111
+ current = false;
112
+ };
113
+ }, [loadOptions, setIsLoadingDefaultOptions, setDefaultOptions, mutators, name]);
39
114
  (0, _react.useEffect)(function () {
40
- if (validators) {
41
- assignValidator(name, validators);
115
+ /**
116
+ * Mutate the form state to set a default value for this field
117
+ * if `defaultOption` is a prop and we have not set a value for it yet
118
+ */
119
+ if (!defaultValue && propsDefaultValue) {
120
+ setDefaultValue(propsDefaultValue);
121
+ mutators.setField(name, propsDefaultValue);
42
122
  }
43
- }, [name, validators, assignValidator]);
44
- return (0, _react2.jsx)("div", {
45
- "data-testid": testId
46
- }, (0, _react2.jsx)(_form.Field, {
123
+ }, [defaultValue, propsDefaultValue, name, mutators]);
124
+ var debouncedLoadOptions = (0, _react.useMemo)(function () {
125
+ return loadOptions ? (0, _debouncePromise.default)(loadOptions, 300) : undefined;
126
+ }, [loadOptions]);
127
+ return (0, _react2.jsx)(_createField.CreateField, {
128
+ id: id,
47
129
  name: name,
48
130
  label: label,
49
131
  isRequired: isRequired,
50
- defaultValue: defaultValue
51
- }, function (_ref2) {
52
- var fieldProps = _ref2.fieldProps,
53
- meta = _ref2.meta,
54
- error = _ref2.error;
55
- var isInvalid = (0, _form2.validateSubmitErrors)(meta);
56
- return (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)(_select.AsyncSelect, (0, _extends2.default)({}, fieldProps, rest, {
57
- isInvalid: isInvalid
58
- })), !error && validationHelpText && (0, _react2.jsx)(_form.HelperMessage, {
59
- testId: "".concat(testId, "-helper-message")
60
- }, validationHelpText), isInvalid && (0, _react2.jsx)(_form.ErrorMessage, {
61
- testId: "".concat(testId, "-error-message")
62
- }, error));
63
- }));
132
+ validators: validators,
133
+ validationHelpText: validationHelpText,
134
+ testId: testId
135
+ }, function (_ref3) {
136
+ var fieldId = _ref3.fieldId,
137
+ fieldProps = (0, _objectWithoutProperties2.default)(_ref3, _excluded2);
138
+ return (0, _react2.jsx)(_select.AsyncSelect, (0, _extends2.default)({
139
+ inputId: fieldId
140
+ }, fieldProps, restProps, {
141
+ loadOptions: debouncedLoadOptions,
142
+ defaultOptions: defaultOptions,
143
+ isLoading: isLoadingDefaultOptions
144
+ }));
145
+ });
64
146
  }
@@ -10,13 +10,17 @@ var _react = require("@emotion/react");
10
10
  var _reactIntlNext = require("react-intl-next");
11
11
  var _button = _interopRequireWildcard(require("@atlaskit/button"));
12
12
  var _loadingButton = _interopRequireDefault(require("@atlaskit/button/loading-button"));
13
- var _form = require("@atlaskit/form");
14
13
  var _error = _interopRequireDefault(require("@atlaskit/icon/glyph/error"));
15
14
  var _messages = require("./messages");
16
15
  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); }
17
16
  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; }
18
17
  /** @jsx jsx */
19
18
 
19
+ var formFooterWrapperStyles = (0, _react.css)({
20
+ display: 'flex',
21
+ marginTop: "var(--ds-space-300, 24px)",
22
+ justifyContent: 'flex-end'
23
+ });
20
24
  var errorStyles = (0, _react.css)({
21
25
  display: 'flex',
22
26
  alignItems: 'center',
@@ -28,7 +32,10 @@ function CreateFormFooter(_ref) {
28
32
  submitting = _ref.submitting,
29
33
  testId = _ref.testId;
30
34
  var intl = (0, _reactIntlNext.useIntl)();
31
- return (0, _react.jsx)(_form.FormFooter, null, formErrorMessage && (0, _react.jsx)("div", {
35
+ return (0, _react.jsx)("footer", {
36
+ "data-testid": "".concat(testId, "-footer"),
37
+ css: formFooterWrapperStyles
38
+ }, formErrorMessage && (0, _react.jsx)("div", {
32
39
  css: errorStyles,
33
40
  "data-testid": "".concat(testId, "-error")
34
41
  }, (0, _react.jsx)(_error.default, {
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.FormSpy = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _reactFinalForm = require("react-final-form");
10
+ /**
11
+ * Lightweight wrapper around the react-final-form
12
+ * FormSpy component so that we can control selectively
13
+ * how much of the API we are commited to.
14
+ */
15
+ var FormSpy = function FormSpy(_ref) {
16
+ var children = _ref.children;
17
+ return /*#__PURE__*/_react.default.createElement(_reactFinalForm.FormSpy, {
18
+ subscription: {
19
+ values: true
20
+ }
21
+ }, function (props) {
22
+ return children({
23
+ values: props.values
24
+ });
25
+ });
26
+ };
27
+ exports.FormSpy = FormSpy;
@@ -21,6 +21,18 @@ Object.defineProperty(exports, "CreateFormLoader", {
21
21
  return _formLoader.CreateFormLoader;
22
22
  }
23
23
  });
24
+ Object.defineProperty(exports, "FormSpy", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _formSpy.FormSpy;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "Select", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _select.Select;
34
+ }
35
+ });
24
36
  Object.defineProperty(exports, "TextField", {
25
37
  enumerable: true,
26
38
  get: function get() {
@@ -28,6 +40,8 @@ Object.defineProperty(exports, "TextField", {
28
40
  }
29
41
  });
30
42
  var _main = require("./main");
43
+ var _select = require("./select");
31
44
  var _asyncSelect = require("./async-select");
32
45
  var _formLoader = require("./form-loader");
33
- var _textfield = require("./textfield");
46
+ var _textfield = require("./textfield");
47
+ var _formSpy = require("./form-spy");
@@ -5,21 +5,21 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.TEST_ID = exports.CreateForm = void 0;
8
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
8
9
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
11
  var _react = require("react");
12
12
  var _react2 = require("@emotion/react");
13
+ var _reactFinalForm = require("react-final-form");
13
14
  var _analyticsNext = require("@atlaskit/analytics-next");
14
- var _form = _interopRequireDefault(require("@atlaskit/form"));
15
15
  var _constants = require("../../common/constants");
16
16
  var _analytics = _interopRequireDefault(require("../../common/utils/analytics/analytics.codegen"));
17
17
  var _formContext = require("../../controllers/form-context");
18
18
  var _formFooter = require("./form-footer");
19
19
  var _formLoader = require("./form-loader");
20
20
  var _utils = require("./utils");
21
+ var _excluded = ["submitting"];
21
22
  /** @jsx jsx */
22
-
23
23
  var formStyles = (0, _react2.css)({
24
24
  maxWidth: "".concat(_constants.CREATE_FORM_MAX_WIDTH_IN_PX, "px"),
25
25
  padding: "0 0 ".concat("var(--ds-space-300, 24px)", " 0"),
@@ -34,7 +34,8 @@ var CreateForm = function CreateForm(_ref) {
34
34
  onSubmit = _ref.onSubmit,
35
35
  onCancel = _ref.onCancel,
36
36
  isLoading = _ref.isLoading,
37
- hideFooter = _ref.hideFooter;
37
+ hideFooter = _ref.hideFooter,
38
+ initialValues = _ref.initialValues;
38
39
  var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
39
40
  createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
40
41
  var _useFormContext = (0, _formContext.useFormContext)(),
@@ -76,16 +77,25 @@ var CreateForm = function CreateForm(_ref) {
76
77
  if (isLoading) {
77
78
  return (0, _react2.jsx)(_formLoader.CreateFormLoader, null);
78
79
  }
79
- return (0, _react2.jsx)(_form.default, {
80
- onSubmit: handleSubmit
80
+ return (0, _react2.jsx)(_reactFinalForm.Form, {
81
+ onSubmit: handleSubmit,
82
+ initialValues: initialValues,
83
+ mutators: {
84
+ setField: function setField(args, state, tools) {
85
+ tools.changeValue(state, args[0].toString(), function () {
86
+ return args[1];
87
+ });
88
+ }
89
+ }
81
90
  }, function (_ref3) {
82
- var formProps = _ref3.formProps,
83
- submitting = _ref3.submitting;
84
- return (0, _react2.jsx)("form", (0, _extends2.default)({}, formProps, {
91
+ var submitting = _ref3.submitting,
92
+ formProps = (0, _objectWithoutProperties2.default)(_ref3, _excluded);
93
+ return (0, _react2.jsx)("form", {
94
+ onSubmit: formProps.handleSubmit,
85
95
  name: "link-create-form",
86
96
  "data-testid": testId,
87
97
  css: formStyles
88
- }), (0, _react2.jsx)("div", null, children), !hideFooter && (0, _react2.jsx)(_formFooter.CreateFormFooter, {
98
+ }, (0, _react2.jsx)("div", null, children), !hideFooter && (0, _react2.jsx)(_formFooter.CreateFormFooter, {
89
99
  formErrorMessage: formErrorMessage,
90
100
  handleCancel: handleCancel,
91
101
  submitting: submitting,
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "Select", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _main.Select;
10
+ }
11
+ });
12
+ var _main = require("./main");
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.Select = Select;
8
+ exports.TEST_ID = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _react = require("@emotion/react");
12
+ var _select = _interopRequireDefault(require("@atlaskit/select"));
13
+ var _createField = require("../../../controllers/create-field");
14
+ var _excluded = ["id", "name", "label", "isRequired", "validators", "validationHelpText", "testId"],
15
+ _excluded2 = ["fieldId"];
16
+ /** @jsx jsx */
17
+ var TEST_ID = 'link-create-select';
18
+ /**
19
+ * A select utilising the Atlaskit Select and Field components from
20
+ * `@atlaskit/form`. Validation is handled by the form on form submission. Any
21
+ * errors returned by the handleSubmit function passed to the form <Form> that
22
+ * have a key matching the `name` of this field are shown below the field.
23
+ */
24
+ exports.TEST_ID = TEST_ID;
25
+ function Select(_ref) {
26
+ var id = _ref.id,
27
+ name = _ref.name,
28
+ label = _ref.label,
29
+ isRequired = _ref.isRequired,
30
+ validators = _ref.validators,
31
+ validationHelpText = _ref.validationHelpText,
32
+ _ref$testId = _ref.testId,
33
+ testId = _ref$testId === void 0 ? TEST_ID : _ref$testId,
34
+ restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
35
+ return (0, _react.jsx)(_createField.CreateField, {
36
+ id: id,
37
+ name: name,
38
+ label: label,
39
+ isRequired: isRequired,
40
+ validators: validators,
41
+ validationHelpText: validationHelpText,
42
+ testId: testId
43
+ }, function (_ref2) {
44
+ var fieldId = _ref2.fieldId,
45
+ fieldProps = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
46
+ return (0, _react.jsx)(_select.default, (0, _extends2.default)({
47
+ inputId: fieldId
48
+ }, fieldProps, restProps));
49
+ });
50
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -8,13 +8,11 @@ exports.TEST_ID = void 0;
8
8
  exports.TextField = TextField;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
- var _react = require("react");
12
- var _react2 = require("@emotion/react");
13
- var _form = require("@atlaskit/form");
11
+ var _react = require("@emotion/react");
14
12
  var _textfield = _interopRequireDefault(require("@atlaskit/textfield"));
15
- var _form2 = require("../../../common/utils/form");
16
- var _formContext = require("../../../controllers/form-context");
17
- var _excluded = ["label", "name", "testId", "validationHelpText", "validators", "defaultValue", "isRequired"];
13
+ var _createField = require("../../../controllers/create-field");
14
+ var _excluded = ["id", "name", "label", "isRequired", "validators", "validationHelpText", "testId"],
15
+ _excluded2 = ["fieldId"];
18
16
  /** @jsx jsx */
19
17
  var TEST_ID = 'link-create-text-field';
20
18
 
@@ -26,50 +24,30 @@ var TEST_ID = 'link-create-text-field';
26
24
  */
27
25
  exports.TEST_ID = TEST_ID;
28
26
  function TextField(_ref) {
29
- var label = _ref.label,
27
+ var id = _ref.id,
30
28
  name = _ref.name,
29
+ label = _ref.label,
30
+ isRequired = _ref.isRequired,
31
+ validators = _ref.validators,
32
+ validationHelpText = _ref.validationHelpText,
31
33
  _ref$testId = _ref.testId,
32
34
  testId = _ref$testId === void 0 ? TEST_ID : _ref$testId,
33
- validationHelpText = _ref.validationHelpText,
34
- validators = _ref.validators,
35
- defaultValue = _ref.defaultValue,
36
- isRequired = _ref.isRequired,
37
35
  restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
38
- var _useFormContext = (0, _formContext.useFormContext)(),
39
- assignValidator = _useFormContext.assignValidator;
40
- (0, _react.useEffect)(function () {
41
- if (validators) {
42
- assignValidator(name, validators);
43
- }
44
- }, [name, validators, assignValidator]);
45
- return (
46
- /**
47
- * The defaultValue here should be '' when there is nothing passed in from the props.
48
- * This is because if we don't give it anything, the `fieldProps` wouldn't have a `value`
49
- * prop and make the TextField component uncontrolled. Later when user starts typing, the
50
- * `value` will be populated again in `fieldProps` which cause the TextField to be changed
51
- * to a controlled component and raise a warning from React.
52
- */
53
-
54
- (0, _react2.jsx)(_form.Field, {
55
- name: name,
56
- label: label,
57
- isRequired: isRequired,
58
- defaultValue: defaultValue !== null && defaultValue !== void 0 ? defaultValue : ''
59
- }, function (_ref2) {
60
- var fieldProps = _ref2.fieldProps,
61
- meta = _ref2.meta,
62
- error = _ref2.error;
63
- var isInvalid = (0, _form2.validateSubmitErrors)(meta);
64
- return (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)(_textfield.default, (0, _extends2.default)({}, fieldProps, restProps, {
65
- testId: testId,
66
- isInvalid: isInvalid,
67
- isRequired: false // Remove the default browser validation
68
- })), !error && validationHelpText && (0, _react2.jsx)(_form.HelperMessage, {
69
- testId: "".concat(testId, "-helper-message")
70
- }, validationHelpText), error && isInvalid && (0, _react2.jsx)(_form.ErrorMessage, {
71
- testId: "".concat(testId, "-error-message")
72
- }, error));
73
- })
74
- );
36
+ return (0, _react.jsx)(_createField.CreateField, {
37
+ id: id,
38
+ name: name,
39
+ label: label,
40
+ isRequired: isRequired,
41
+ validators: validators,
42
+ validationHelpText: validationHelpText,
43
+ testId: testId
44
+ }, function (_ref2) {
45
+ var fieldId = _ref2.fieldId,
46
+ fieldProps = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
47
+ return (0, _react.jsx)(_textfield.default, (0, _extends2.default)({
48
+ id: fieldId
49
+ }, fieldProps, restProps, {
50
+ isRequired: false // Remove the default browser validation
51
+ }));
52
+ });
75
53
  }
@@ -22,6 +22,18 @@ Object.defineProperty(exports, "CreateFormLoader", {
22
22
  return _formLoader.CreateFormLoader;
23
23
  }
24
24
  });
25
+ Object.defineProperty(exports, "FormSpy", {
26
+ enumerable: true,
27
+ get: function get() {
28
+ return _formSpy.FormSpy;
29
+ }
30
+ });
31
+ Object.defineProperty(exports, "Select", {
32
+ enumerable: true,
33
+ get: function get() {
34
+ return _select.Select;
35
+ }
36
+ });
25
37
  Object.defineProperty(exports, "TextField", {
26
38
  enumerable: true,
27
39
  get: function get() {
@@ -38,4 +50,6 @@ var _main = _interopRequireDefault(require("./main"));
38
50
  var _textfield = require("./create-form/textfield");
39
51
  var _main2 = require("./create-form/main");
40
52
  var _formLoader = require("./create-form/form-loader");
41
- var _asyncSelect = require("./create-form/async-select");
53
+ var _select = require("./create-form/select");
54
+ var _asyncSelect = require("./create-form/async-select");
55
+ var _formSpy = require("./create-form/form-spy");
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/link-create",
3
- "version": "0.10.0",
3
+ "version": "1.0.1",
4
4
  "sideEffects": false
5
5
  }
@@ -0,0 +1 @@
1
+ export { CreateField } from './main';