@atlaskit/link-picker 1.23.2 → 1.24.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 +6 -0
- package/dist/cjs/ui/index.js +3 -2
- package/dist/cjs/ui/messages-provider/index.js +18 -0
- package/dist/cjs/ui/messages-provider/lazy-messages-provider/index.js +21 -0
- package/dist/cjs/ui/messages-provider/lazy-messages-provider/utils/fetch-messages-for-locale.js +64 -0
- package/dist/cjs/ui/messages-provider/lazy-messages-provider/utils/types.js +5 -0
- package/dist/cjs/ui/messages-provider/lazy-messages-provider/utils/use-messages.js +42 -0
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/ui/index.js +3 -2
- package/dist/es2019/ui/messages-provider/index.js +11 -0
- package/dist/es2019/ui/messages-provider/lazy-messages-provider/index.js +13 -0
- package/dist/es2019/ui/messages-provider/lazy-messages-provider/utils/fetch-messages-for-locale.js +21 -0
- package/dist/es2019/ui/messages-provider/lazy-messages-provider/utils/types.js +1 -0
- package/dist/es2019/ui/messages-provider/lazy-messages-provider/utils/use-messages.js +30 -0
- package/dist/es2019/version.json +1 -1
- package/dist/esm/ui/index.js +3 -2
- package/dist/esm/ui/messages-provider/index.js +10 -0
- package/dist/esm/ui/messages-provider/lazy-messages-provider/index.js +13 -0
- package/dist/esm/ui/messages-provider/lazy-messages-provider/utils/fetch-messages-for-locale.js +41 -0
- package/dist/esm/ui/messages-provider/lazy-messages-provider/utils/types.js +1 -0
- package/dist/esm/ui/messages-provider/lazy-messages-provider/utils/use-messages.js +34 -0
- package/dist/esm/version.json +1 -1
- package/dist/types/ui/messages-provider/index.d.ts +5 -0
- package/dist/types/ui/messages-provider/lazy-messages-provider/index.d.ts +6 -0
- package/dist/types/ui/messages-provider/lazy-messages-provider/utils/fetch-messages-for-locale.d.ts +2 -0
- package/dist/types/ui/messages-provider/lazy-messages-provider/utils/types.d.ts +2 -0
- package/dist/types/ui/messages-provider/lazy-messages-provider/utils/use-messages.d.ts +6 -0
- package/dist/types-ts4.5/ui/messages-provider/index.d.ts +5 -0
- package/dist/types-ts4.5/ui/messages-provider/lazy-messages-provider/index.d.ts +6 -0
- package/dist/types-ts4.5/ui/messages-provider/lazy-messages-provider/utils/fetch-messages-for-locale.d.ts +2 -0
- package/dist/types-ts4.5/ui/messages-provider/lazy-messages-provider/utils/types.d.ts +2 -0
- package/dist/types-ts4.5/ui/messages-provider/lazy-messages-provider/utils/use-messages.d.ts +6 -0
- package/package.json +4 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @atlaskit/link-picker
|
|
2
2
|
|
|
3
|
+
## 1.24.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`5a810cbc8c7`](https://bitbucket.org/atlassian/atlassian-frontend/commits/5a810cbc8c7) - Adds internal MessagesProvider behind `platform.linking-platform.link-picker.lazy-intl-messages` feature flag which, when enabled, lazy loads and self-provides messages for the current locale (as defined by a parent `IntlProvider`).
|
|
8
|
+
|
|
3
9
|
## 1.23.2
|
|
4
10
|
|
|
5
11
|
### Patch Changes
|
package/dist/cjs/ui/index.js
CHANGED
|
@@ -15,6 +15,7 @@ var _version = require("../version.json");
|
|
|
15
15
|
var _errorBoundary = _interopRequireDefault(require("./error-boundary"));
|
|
16
16
|
var _loaderFallback = require("./loader-fallback");
|
|
17
17
|
var _sessionProvider = require("../controllers/session-provider");
|
|
18
|
+
var _messagesProvider = require("./messages-provider");
|
|
18
19
|
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); }
|
|
19
20
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || (0, _typeof2.default)(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; }
|
|
20
21
|
var testIds = {
|
|
@@ -45,13 +46,13 @@ var ComposedLinkPicker = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
|
45
46
|
var RootComponent = component !== null && component !== void 0 ? component : DefaultRootComponent;
|
|
46
47
|
return /*#__PURE__*/_react.default.createElement(_analyticsNext.AnalyticsContext, {
|
|
47
48
|
data: PACKAGE_DATA
|
|
48
|
-
}, /*#__PURE__*/_react.default.createElement(_sessionProvider.LinkPickerSessionProvider, null, /*#__PURE__*/_react.default.createElement(_errorBoundary.default, null, /*#__PURE__*/_react.default.createElement(_reactLooselyLazy.LazySuspense, {
|
|
49
|
+
}, /*#__PURE__*/_react.default.createElement(_sessionProvider.LinkPickerSessionProvider, null, /*#__PURE__*/_react.default.createElement(_messagesProvider.MessagesProvider, null, /*#__PURE__*/_react.default.createElement(_errorBoundary.default, null, /*#__PURE__*/_react.default.createElement(_reactLooselyLazy.LazySuspense, {
|
|
49
50
|
fallback: /*#__PURE__*/_react.default.createElement(_loaderFallback.LoaderFallback, {
|
|
50
51
|
hideDisplayText: props.hideDisplayText
|
|
51
52
|
})
|
|
52
53
|
}, /*#__PURE__*/_react.default.createElement(RootComponent, (0, _extends2.default)({}, props, {
|
|
53
54
|
"data-testid": testIds.linkPickerRoot
|
|
54
|
-
}), /*#__PURE__*/_react.default.createElement(LazyLinkPicker, props))))));
|
|
55
|
+
}), /*#__PURE__*/_react.default.createElement(LazyLinkPicker, props)))))));
|
|
55
56
|
});
|
|
56
57
|
exports.ComposedLinkPicker = ComposedLinkPicker;
|
|
57
58
|
var _default = ComposedLinkPicker;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.MessagesProvider = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
10
|
+
var _lazyMessagesProvider = require("./lazy-messages-provider");
|
|
11
|
+
var MessagesProvider = function MessagesProvider(_ref) {
|
|
12
|
+
var children = _ref.children;
|
|
13
|
+
if ((0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.link-picker.lazy-intl-messages')) {
|
|
14
|
+
return /*#__PURE__*/_react.default.createElement(_lazyMessagesProvider.LazyMessagesProvider, null, children);
|
|
15
|
+
}
|
|
16
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children);
|
|
17
|
+
};
|
|
18
|
+
exports.MessagesProvider = MessagesProvider;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.LazyMessagesProvider = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _reactIntlNext = require("react-intl-next");
|
|
11
|
+
var _useMessages = require("./utils/use-messages");
|
|
12
|
+
var LazyMessagesProvider = function LazyMessagesProvider(props) {
|
|
13
|
+
var intl = (0, _reactIntlNext.useIntl)();
|
|
14
|
+
var messages = (0, _useMessages.useMessages)(intl.locale);
|
|
15
|
+
return /*#__PURE__*/_react.default.createElement(_reactIntlNext.IntlProvider, (0, _extends2.default)({}, props, {
|
|
16
|
+
defaultLocale: "en",
|
|
17
|
+
messages: messages,
|
|
18
|
+
locale: intl.locale
|
|
19
|
+
}));
|
|
20
|
+
};
|
|
21
|
+
exports.LazyMessagesProvider = LazyMessagesProvider;
|
package/dist/cjs/ui/messages-provider/lazy-messages-provider/utils/fetch-messages-for-locale.js
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.fetchMessagesForLocale = void 0;
|
|
9
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
|
+
var _en = _interopRequireDefault(require("../../../../i18n/en"));
|
|
12
|
+
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); }
|
|
13
|
+
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; }
|
|
14
|
+
var fetchMessagesForLocale = /*#__PURE__*/function () {
|
|
15
|
+
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(locale) {
|
|
16
|
+
var _messages, parentLocale, _messages2;
|
|
17
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
18
|
+
while (1) switch (_context.prev = _context.next) {
|
|
19
|
+
case 0:
|
|
20
|
+
_context.prev = 0;
|
|
21
|
+
_context.next = 3;
|
|
22
|
+
return function (specifier) {
|
|
23
|
+
return new Promise(function (r) {
|
|
24
|
+
return r(specifier);
|
|
25
|
+
}).then(function (s) {
|
|
26
|
+
return _interopRequireWildcard(require(s));
|
|
27
|
+
});
|
|
28
|
+
}( /* webpackChunkName: "@atlaskit-internal_link-picker-i18n-[request]" */"../../../../i18n/".concat(locale));
|
|
29
|
+
case 3:
|
|
30
|
+
_messages = _context.sent;
|
|
31
|
+
return _context.abrupt("return", _messages.default);
|
|
32
|
+
case 7:
|
|
33
|
+
_context.prev = 7;
|
|
34
|
+
_context.t0 = _context["catch"](0);
|
|
35
|
+
case 9:
|
|
36
|
+
_context.prev = 9;
|
|
37
|
+
parentLocale = locale.split(/[-_]/)[0];
|
|
38
|
+
_context.next = 13;
|
|
39
|
+
return function (specifier) {
|
|
40
|
+
return new Promise(function (r) {
|
|
41
|
+
return r(specifier);
|
|
42
|
+
}).then(function (s) {
|
|
43
|
+
return _interopRequireWildcard(require(s));
|
|
44
|
+
});
|
|
45
|
+
}( /* webpackChunkName: "@atlaskit-internal_link-picker-i18n-[request]" */"../../../../i18n/".concat(parentLocale));
|
|
46
|
+
case 13:
|
|
47
|
+
_messages2 = _context.sent;
|
|
48
|
+
return _context.abrupt("return", _messages2.default);
|
|
49
|
+
case 17:
|
|
50
|
+
_context.prev = 17;
|
|
51
|
+
_context.t1 = _context["catch"](9);
|
|
52
|
+
case 19:
|
|
53
|
+
return _context.abrupt("return", _en.default);
|
|
54
|
+
case 20:
|
|
55
|
+
case "end":
|
|
56
|
+
return _context.stop();
|
|
57
|
+
}
|
|
58
|
+
}, _callee, null, [[0, 7], [9, 17]]);
|
|
59
|
+
}));
|
|
60
|
+
return function fetchMessagesForLocale(_x) {
|
|
61
|
+
return _ref.apply(this, arguments);
|
|
62
|
+
};
|
|
63
|
+
}();
|
|
64
|
+
exports.fetchMessagesForLocale = fetchMessagesForLocale;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useMessages = void 0;
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
+
var _react = require("react");
|
|
10
|
+
var _en = _interopRequireDefault(require("../../../../i18n/en"));
|
|
11
|
+
var _fetchMessagesForLocale = require("./fetch-messages-for-locale");
|
|
12
|
+
/**
|
|
13
|
+
* Hook to load the messages for a given locale
|
|
14
|
+
* English is sync/pre-loaded
|
|
15
|
+
*/
|
|
16
|
+
var useMessages = function useMessages(locale) {
|
|
17
|
+
var _useState = (0, _react.useState)({
|
|
18
|
+
locale: 'en',
|
|
19
|
+
messages: _en.default
|
|
20
|
+
}),
|
|
21
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
22
|
+
localeState = _useState2[0],
|
|
23
|
+
setLocaleState = _useState2[1];
|
|
24
|
+
(0, _react.useEffect)(function () {
|
|
25
|
+
if (locale !== localeState.locale) {
|
|
26
|
+
var current = true;
|
|
27
|
+
(0, _fetchMessagesForLocale.fetchMessagesForLocale)(locale).then(function (messages) {
|
|
28
|
+
if (current) {
|
|
29
|
+
setLocaleState({
|
|
30
|
+
messages: messages,
|
|
31
|
+
locale: locale
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
return function () {
|
|
36
|
+
current = false;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}, [localeState, locale]);
|
|
40
|
+
return localeState.messages;
|
|
41
|
+
};
|
|
42
|
+
exports.useMessages = useMessages;
|
package/dist/cjs/version.json
CHANGED
package/dist/es2019/ui/index.js
CHANGED
|
@@ -7,6 +7,7 @@ import { name as packageName, version as packageVersion } from '../version.json'
|
|
|
7
7
|
import ErrorBoundary from './error-boundary';
|
|
8
8
|
import { LoaderFallback } from './loader-fallback';
|
|
9
9
|
import { LinkPickerSessionProvider } from '../controllers/session-provider';
|
|
10
|
+
import { MessagesProvider } from './messages-provider';
|
|
10
11
|
export const testIds = {
|
|
11
12
|
linkPickerRoot: 'link-picker-root'
|
|
12
13
|
};
|
|
@@ -32,12 +33,12 @@ export const ComposedLinkPicker = /*#__PURE__*/memo(props => {
|
|
|
32
33
|
const RootComponent = component !== null && component !== void 0 ? component : DefaultRootComponent;
|
|
33
34
|
return /*#__PURE__*/React.createElement(AnalyticsContext, {
|
|
34
35
|
data: PACKAGE_DATA
|
|
35
|
-
}, /*#__PURE__*/React.createElement(LinkPickerSessionProvider, null, /*#__PURE__*/React.createElement(ErrorBoundary, null, /*#__PURE__*/React.createElement(LazySuspense, {
|
|
36
|
+
}, /*#__PURE__*/React.createElement(LinkPickerSessionProvider, null, /*#__PURE__*/React.createElement(MessagesProvider, null, /*#__PURE__*/React.createElement(ErrorBoundary, null, /*#__PURE__*/React.createElement(LazySuspense, {
|
|
36
37
|
fallback: /*#__PURE__*/React.createElement(LoaderFallback, {
|
|
37
38
|
hideDisplayText: props.hideDisplayText
|
|
38
39
|
})
|
|
39
40
|
}, /*#__PURE__*/React.createElement(RootComponent, _extends({}, props, {
|
|
40
41
|
"data-testid": testIds.linkPickerRoot
|
|
41
|
-
}), /*#__PURE__*/React.createElement(LazyLinkPicker, props))))));
|
|
42
|
+
}), /*#__PURE__*/React.createElement(LazyLinkPicker, props)))))));
|
|
42
43
|
});
|
|
43
44
|
export default ComposedLinkPicker;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
3
|
+
import { LazyMessagesProvider } from './lazy-messages-provider';
|
|
4
|
+
export const MessagesProvider = ({
|
|
5
|
+
children
|
|
6
|
+
}) => {
|
|
7
|
+
if (getBooleanFF('platform.linking-platform.link-picker.lazy-intl-messages')) {
|
|
8
|
+
return /*#__PURE__*/React.createElement(LazyMessagesProvider, null, children);
|
|
9
|
+
}
|
|
10
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, children);
|
|
11
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { IntlProvider, useIntl } from 'react-intl-next';
|
|
4
|
+
import { useMessages } from './utils/use-messages';
|
|
5
|
+
export const LazyMessagesProvider = props => {
|
|
6
|
+
const intl = useIntl();
|
|
7
|
+
const messages = useMessages(intl.locale);
|
|
8
|
+
return /*#__PURE__*/React.createElement(IntlProvider, _extends({}, props, {
|
|
9
|
+
defaultLocale: "en",
|
|
10
|
+
messages: messages,
|
|
11
|
+
locale: intl.locale
|
|
12
|
+
}));
|
|
13
|
+
};
|
package/dist/es2019/ui/messages-provider/lazy-messages-provider/utils/fetch-messages-for-locale.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import messages from '../../../../i18n/en';
|
|
2
|
+
export const fetchMessagesForLocale = async locale => {
|
|
3
|
+
try {
|
|
4
|
+
const messages = await import( /* webpackChunkName: "@atlaskit-internal_link-picker-i18n-[request]" */`../../../../i18n/${locale}`);
|
|
5
|
+
return messages.default;
|
|
6
|
+
} catch (e) {
|
|
7
|
+
// ignore
|
|
8
|
+
}
|
|
9
|
+
try {
|
|
10
|
+
const parentLocale = locale.split(/[-_]/)[0];
|
|
11
|
+
const messages = await import( /* webpackChunkName: "@atlaskit-internal_link-picker-i18n-[request]" */`../../../../i18n/${parentLocale}`);
|
|
12
|
+
return messages.default;
|
|
13
|
+
} catch (e) {
|
|
14
|
+
// ignore
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* English bundled by default as this is the majority of users
|
|
19
|
+
*/
|
|
20
|
+
return messages;
|
|
21
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
import messages from '../../../../i18n/en';
|
|
3
|
+
import { fetchMessagesForLocale } from './fetch-messages-for-locale';
|
|
4
|
+
/**
|
|
5
|
+
* Hook to load the messages for a given locale
|
|
6
|
+
* English is sync/pre-loaded
|
|
7
|
+
*/
|
|
8
|
+
export const useMessages = locale => {
|
|
9
|
+
const [localeState, setLocaleState] = useState({
|
|
10
|
+
locale: 'en',
|
|
11
|
+
messages
|
|
12
|
+
});
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
if (locale !== localeState.locale) {
|
|
15
|
+
let current = true;
|
|
16
|
+
fetchMessagesForLocale(locale).then(messages => {
|
|
17
|
+
if (current) {
|
|
18
|
+
setLocaleState({
|
|
19
|
+
messages,
|
|
20
|
+
locale
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
return () => {
|
|
25
|
+
current = false;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
}, [localeState, locale]);
|
|
29
|
+
return localeState.messages;
|
|
30
|
+
};
|
package/dist/es2019/version.json
CHANGED
package/dist/esm/ui/index.js
CHANGED
|
@@ -7,6 +7,7 @@ import { name as packageName, version as packageVersion } from '../version.json'
|
|
|
7
7
|
import ErrorBoundary from './error-boundary';
|
|
8
8
|
import { LoaderFallback } from './loader-fallback';
|
|
9
9
|
import { LinkPickerSessionProvider } from '../controllers/session-provider';
|
|
10
|
+
import { MessagesProvider } from './messages-provider';
|
|
10
11
|
export var testIds = {
|
|
11
12
|
linkPickerRoot: 'link-picker-root'
|
|
12
13
|
};
|
|
@@ -31,12 +32,12 @@ export var ComposedLinkPicker = /*#__PURE__*/memo(function (props) {
|
|
|
31
32
|
var RootComponent = component !== null && component !== void 0 ? component : DefaultRootComponent;
|
|
32
33
|
return /*#__PURE__*/React.createElement(AnalyticsContext, {
|
|
33
34
|
data: PACKAGE_DATA
|
|
34
|
-
}, /*#__PURE__*/React.createElement(LinkPickerSessionProvider, null, /*#__PURE__*/React.createElement(ErrorBoundary, null, /*#__PURE__*/React.createElement(LazySuspense, {
|
|
35
|
+
}, /*#__PURE__*/React.createElement(LinkPickerSessionProvider, null, /*#__PURE__*/React.createElement(MessagesProvider, null, /*#__PURE__*/React.createElement(ErrorBoundary, null, /*#__PURE__*/React.createElement(LazySuspense, {
|
|
35
36
|
fallback: /*#__PURE__*/React.createElement(LoaderFallback, {
|
|
36
37
|
hideDisplayText: props.hideDisplayText
|
|
37
38
|
})
|
|
38
39
|
}, /*#__PURE__*/React.createElement(RootComponent, _extends({}, props, {
|
|
39
40
|
"data-testid": testIds.linkPickerRoot
|
|
40
|
-
}), /*#__PURE__*/React.createElement(LazyLinkPicker, props))))));
|
|
41
|
+
}), /*#__PURE__*/React.createElement(LazyLinkPicker, props)))))));
|
|
41
42
|
});
|
|
42
43
|
export default ComposedLinkPicker;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
3
|
+
import { LazyMessagesProvider } from './lazy-messages-provider';
|
|
4
|
+
export var MessagesProvider = function MessagesProvider(_ref) {
|
|
5
|
+
var children = _ref.children;
|
|
6
|
+
if (getBooleanFF('platform.linking-platform.link-picker.lazy-intl-messages')) {
|
|
7
|
+
return /*#__PURE__*/React.createElement(LazyMessagesProvider, null, children);
|
|
8
|
+
}
|
|
9
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, children);
|
|
10
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { IntlProvider, useIntl } from 'react-intl-next';
|
|
4
|
+
import { useMessages } from './utils/use-messages';
|
|
5
|
+
export var LazyMessagesProvider = function LazyMessagesProvider(props) {
|
|
6
|
+
var intl = useIntl();
|
|
7
|
+
var messages = useMessages(intl.locale);
|
|
8
|
+
return /*#__PURE__*/React.createElement(IntlProvider, _extends({}, props, {
|
|
9
|
+
defaultLocale: "en",
|
|
10
|
+
messages: messages,
|
|
11
|
+
locale: intl.locale
|
|
12
|
+
}));
|
|
13
|
+
};
|
package/dist/esm/ui/messages-provider/lazy-messages-provider/utils/fetch-messages-for-locale.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
|
+
import messages from '../../../../i18n/en';
|
|
4
|
+
export var fetchMessagesForLocale = /*#__PURE__*/function () {
|
|
5
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(locale) {
|
|
6
|
+
var _messages, parentLocale, _messages2;
|
|
7
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
8
|
+
while (1) switch (_context.prev = _context.next) {
|
|
9
|
+
case 0:
|
|
10
|
+
_context.prev = 0;
|
|
11
|
+
_context.next = 3;
|
|
12
|
+
return import( /* webpackChunkName: "@atlaskit-internal_link-picker-i18n-[request]" */"../../../../i18n/".concat(locale));
|
|
13
|
+
case 3:
|
|
14
|
+
_messages = _context.sent;
|
|
15
|
+
return _context.abrupt("return", _messages.default);
|
|
16
|
+
case 7:
|
|
17
|
+
_context.prev = 7;
|
|
18
|
+
_context.t0 = _context["catch"](0);
|
|
19
|
+
case 9:
|
|
20
|
+
_context.prev = 9;
|
|
21
|
+
parentLocale = locale.split(/[-_]/)[0];
|
|
22
|
+
_context.next = 13;
|
|
23
|
+
return import( /* webpackChunkName: "@atlaskit-internal_link-picker-i18n-[request]" */"../../../../i18n/".concat(parentLocale));
|
|
24
|
+
case 13:
|
|
25
|
+
_messages2 = _context.sent;
|
|
26
|
+
return _context.abrupt("return", _messages2.default);
|
|
27
|
+
case 17:
|
|
28
|
+
_context.prev = 17;
|
|
29
|
+
_context.t1 = _context["catch"](9);
|
|
30
|
+
case 19:
|
|
31
|
+
return _context.abrupt("return", messages);
|
|
32
|
+
case 20:
|
|
33
|
+
case "end":
|
|
34
|
+
return _context.stop();
|
|
35
|
+
}
|
|
36
|
+
}, _callee, null, [[0, 7], [9, 17]]);
|
|
37
|
+
}));
|
|
38
|
+
return function fetchMessagesForLocale(_x) {
|
|
39
|
+
return _ref.apply(this, arguments);
|
|
40
|
+
};
|
|
41
|
+
}();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
3
|
+
import messages from '../../../../i18n/en';
|
|
4
|
+
import { fetchMessagesForLocale } from './fetch-messages-for-locale';
|
|
5
|
+
/**
|
|
6
|
+
* Hook to load the messages for a given locale
|
|
7
|
+
* English is sync/pre-loaded
|
|
8
|
+
*/
|
|
9
|
+
export var useMessages = function useMessages(locale) {
|
|
10
|
+
var _useState = useState({
|
|
11
|
+
locale: 'en',
|
|
12
|
+
messages: messages
|
|
13
|
+
}),
|
|
14
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
15
|
+
localeState = _useState2[0],
|
|
16
|
+
setLocaleState = _useState2[1];
|
|
17
|
+
useEffect(function () {
|
|
18
|
+
if (locale !== localeState.locale) {
|
|
19
|
+
var current = true;
|
|
20
|
+
fetchMessagesForLocale(locale).then(function (messages) {
|
|
21
|
+
if (current) {
|
|
22
|
+
setLocaleState({
|
|
23
|
+
messages: messages,
|
|
24
|
+
locale: locale
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
return function () {
|
|
29
|
+
current = false;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}, [localeState, locale]);
|
|
33
|
+
return localeState.messages;
|
|
34
|
+
};
|
package/dist/esm/version.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/link-picker",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.24.0",
|
|
4
4
|
"description": "Standalone link picker",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"publishConfig": {
|
|
@@ -36,6 +36,9 @@
|
|
|
36
36
|
"platform-feature-flags": {
|
|
37
37
|
"platform.linking-platform.link-picker.enable-empty-state": {
|
|
38
38
|
"type": "boolean"
|
|
39
|
+
},
|
|
40
|
+
"platform.linking-platform.link-picker.lazy-intl-messages": {
|
|
41
|
+
"type": "boolean"
|
|
39
42
|
}
|
|
40
43
|
},
|
|
41
44
|
"scripts": {
|