@ndla/safelink 1.1.7 → 2.0.2

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/README.md CHANGED
@@ -21,23 +21,3 @@ import Safelink from '@ndla/safelink';
21
21
 
22
22
  <Safelink to="/internal-url">Click me!</Safelink>;
23
23
  ```
24
-
25
- ### Basic example with context
26
-
27
- In your app, add this to your top component:
28
-
29
- ```js
30
- import { MissingRouterContext } from '@ndla/safelink';
31
-
32
- <MissingRouterContext.Provider value={true}>
33
- <SomeComponent />
34
- </MissingRouterContext.Provider>;
35
- ```
36
-
37
- and use SafeLink like this:
38
-
39
- ```js
40
- import Safelink from '@ndla/safelink';
41
-
42
- <SafeLink to="/no-router-context">Click me!</SafeLink>;
43
- ```
package/es/SafeLink.js CHANGED
@@ -39,7 +39,7 @@ var LaunchIcon = /*#__PURE__*/_styled(Launch, {
39
39
  } : {
40
40
  name: "vum9tn",
41
41
  styles: "margin-left:6px;height:auto;width:auto;margin-top:1px;",
42
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNhZmVMaW5rLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQmlDIiwiZmlsZSI6IlNhZmVMaW5rLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LXByZXNlbnQsIE5ETEEuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgR1BMdjMgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqXG4gKi9cblxuaW1wb3J0IFJlYWN0LCB7IEhUTUxBdHRyaWJ1dGVzLCBSZWFjdE5vZGUsIHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rLCBMaW5rUHJvcHMgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IExhdW5jaCB9IGZyb20gJ0BuZGxhL2ljb25zL2NvbW1vbic7XG5pbXBvcnQgaXNTdHJpbmcgZnJvbSAnbG9kYXNoL2lzU3RyaW5nJztcbmltcG9ydCBNaXNzaW5nUm91dGVyQ29udGV4dCBmcm9tICcuL01pc3NpbmdSb3V0ZXJDb250ZXh0JztcblxuY29uc3QgaXNFeHRlcm5hbExpbmsgPSAodG8/OiBMaW5rUHJvcHNbJ3RvJ10pID0+XG4gIHRvICYmIGlzU3RyaW5nKHRvKSAmJiAodG8uc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSB8fCB0by5zdGFydHNXaXRoKCdodHRwOi8vJykpO1xuXG5leHBvcnQgY29uc3QgaXNPbGROZGxhTGluayA9ICh0bz86IExpbmtQcm9wc1sndG8nXSkgPT4gdG8gJiYgaXNTdHJpbmcodG8pICYmIHRvLm1hdGNoKC8oLiopXFwvP25vZGVcXC8oXFxkKykuKi8pICE9PSBudWxsO1xuXG5jb25zdCBMYXVuY2hJY29uID0gc3R5bGVkKExhdW5jaClgXG4gIG1hcmdpbi1sZWZ0OiA2cHg7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbi10b3A6IDFweDtcbmA7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIHNob3dOZXdXaW5kb3dJY29uPzogYm9vbGVhbjtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG59O1xuXG5leHBvcnQgdHlwZSBTYWZlTGlua1Byb3BzID0gUHJvcHMgJiBMaW5rUHJvcHMgJiBIVE1MQXR0cmlidXRlczxIVE1MRWxlbWVudD47XG5cbi8vIEZhbGxiYWNrIHRvIG5vcm1hbCBsaW5rIGlmIGFwcCBpcyBtaXNzaW5nIFJvdXRlckNvbnRleHQsIGxpbmsgaXMgZXh0ZXJuYWwgb3IgaXMgb2xkIG5kbGEgbGlua1xuY29uc3QgU2FmZUxpbmsgPSAoeyB0bywgcmVwbGFjZSwgY2hpbGRyZW4sIHNob3dOZXdXaW5kb3dJY29uLCB0YWJJbmRleCwgLi4ucmVzdCB9OiBTYWZlTGlua1Byb3BzKSA9PiB7XG4gIGNvbnN0IGlzTWlzc2luZ1JvdXRlckNvbnRleHQgPSB1c2VDb250ZXh0KE1pc3NpbmdSb3V0ZXJDb250ZXh0KTtcblxuICBpZiAoaXNNaXNzaW5nUm91dGVyQ29udGV4dCB8fCBpc0V4dGVybmFsTGluayh0bykgfHwgaXNPbGROZGxhTGluayh0bykpIHtcbiAgICBjb25zdCBocmVmID0gdHlwZW9mIHRvID09PSAnc3RyaW5nJyA/IHRvIDogJyMnO1xuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8YSBocmVmPXtocmVmfSB7Li4ucmVzdH0+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgIHtzaG93TmV3V2luZG93SWNvbiAmJiA8TGF1bmNoSWNvbiBzdHlsZT17eyB2ZXJ0aWNhbEFsaWduOiAndGV4dC10b3AnIH19IC8+fVxuICAgICAgICA8L2E+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8TGluayB0YWJJbmRleD17dGFiSW5kZXggPz8gMH0gdG89e3RvfSByZXBsYWNlPXtyZXBsYWNlfSB7Li4ucmVzdH0+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgICB7c2hvd05ld1dpbmRvd0ljb24gJiYgPExhdW5jaEljb24gc3R5bGU9e3sgdmVydGljYWxBbGlnbjogJ3RleHQtdG9wJyB9fSAvPn1cbiAgICA8L0xpbms+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBTYWZlTGluaztcbiJdfQ== */",
42
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNhZmVMaW5rLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQmlDIiwiZmlsZSI6IlNhZmVMaW5rLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LXByZXNlbnQsIE5ETEEuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgR1BMdjMgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqXG4gKi9cblxuaW1wb3J0IFJlYWN0LCB7IEhUTUxBdHRyaWJ1dGVzLCBSZWFjdE5vZGUsIHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rLCBMaW5rUHJvcHMgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IExhdW5jaCB9IGZyb20gJ0BuZGxhL2ljb25zL2NvbW1vbic7XG5pbXBvcnQgaXNTdHJpbmcgZnJvbSAnbG9kYXNoL2lzU3RyaW5nJztcbmltcG9ydCBNaXNzaW5nUm91dGVyQ29udGV4dCBmcm9tICcuL01pc3NpbmdSb3V0ZXJDb250ZXh0JztcblxuY29uc3QgaXNFeHRlcm5hbExpbmsgPSAodG8/OiBMaW5rUHJvcHNbJ3RvJ10pID0+XG4gIHRvICYmIGlzU3RyaW5nKHRvKSAmJiAodG8uc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSB8fCB0by5zdGFydHNXaXRoKCdodHRwOi8vJykpO1xuXG5leHBvcnQgY29uc3QgaXNPbGROZGxhTGluayA9ICh0bz86IExpbmtQcm9wc1sndG8nXSkgPT4gdG8gJiYgaXNTdHJpbmcodG8pICYmIHRvLm1hdGNoKC8oLiopXFwvP25vZGVcXC8oXFxkKykuKi8pICE9PSBudWxsO1xuXG5jb25zdCBMYXVuY2hJY29uID0gc3R5bGVkKExhdW5jaClgXG4gIG1hcmdpbi1sZWZ0OiA2cHg7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbi10b3A6IDFweDtcbmA7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIHNob3dOZXdXaW5kb3dJY29uPzogYm9vbGVhbjtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG59O1xuXG5leHBvcnQgdHlwZSBTYWZlTGlua1Byb3BzID0gUHJvcHMgJiBMaW5rUHJvcHMgJiBIVE1MQXR0cmlidXRlczxIVE1MRWxlbWVudD47XG5cbi8vIEZhbGxiYWNrIHRvIG5vcm1hbCBsaW5rIGlmIGFwcCBpcyBtaXNzaW5nIFJvdXRlckNvbnRleHQsIGxpbmsgaXMgZXh0ZXJuYWwgb3IgaXMgb2xkIG5kbGEgbGlua1xuY29uc3QgU2FmZUxpbmsgPSAoeyB0bywgcmVwbGFjZSwgY2hpbGRyZW4sIHNob3dOZXdXaW5kb3dJY29uLCB0YWJJbmRleCwgLi4ucmVzdCB9OiBTYWZlTGlua1Byb3BzKSA9PiB7XG4gIGNvbnN0IGlzTWlzc2luZ1JvdXRlckNvbnRleHQgPSB1c2VDb250ZXh0KE1pc3NpbmdSb3V0ZXJDb250ZXh0KTtcblxuICBpZiAoaXNNaXNzaW5nUm91dGVyQ29udGV4dCB8fCBpc0V4dGVybmFsTGluayh0bykgfHwgaXNPbGROZGxhTGluayh0bykpIHtcbiAgICBjb25zdCBocmVmID0gdHlwZW9mIHRvID09PSAnc3RyaW5nJyA/IHRvIDogJyMnO1xuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8YSBocmVmPXtocmVmfSB7Li4ucmVzdH0+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgIHtzaG93TmV3V2luZG93SWNvbiAmJiA8TGF1bmNoSWNvbiBzdHlsZT17eyB2ZXJ0aWNhbEFsaWduOiAndGV4dC10b3AnIH19IC8+fVxuICAgICAgICA8L2E+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICAvLyBSUjYgbGluayBpbW1lZGlhdGVseSBmYWlscyBpZiB0byBpcyBzb21laG93IHVuZGVmaW5lZCwgc28gd2UgcHJvdmlkZSBhbiBlbXB0eSBmYWxsYmFjayB0byByZWNvdmVyLlxuICAgIDxMaW5rIHRhYkluZGV4PXt0YWJJbmRleCA/PyAwfSB0bz17dG8gPz8gJyd9IHJlcGxhY2U9e3JlcGxhY2V9IHsuLi5yZXN0fT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICAgIHtzaG93TmV3V2luZG93SWNvbiAmJiA8TGF1bmNoSWNvbiBzdHlsZT17eyB2ZXJ0aWNhbEFsaWduOiAndGV4dC10b3AnIH19IC8+fVxuICAgIDwvTGluaz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNhZmVMaW5rO1xuIl19 */",
43
43
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
44
44
  });
45
45
 
@@ -65,15 +65,17 @@ var SafeLink = function SafeLink(_ref) {
65
65
  })));
66
66
  }
67
67
 
68
- return ___EmotionJSX(Link, _extends({
69
- tabIndex: tabIndex !== null && tabIndex !== void 0 ? tabIndex : 0,
70
- to: to,
71
- replace: replace
72
- }, rest), children, showNewWindowIcon && ___EmotionJSX(LaunchIcon, {
73
- style: {
74
- verticalAlign: 'text-top'
75
- }
76
- }));
68
+ return (// RR6 link immediately fails if to is somehow undefined, so we provide an empty fallback to recover.
69
+ ___EmotionJSX(Link, _extends({
70
+ tabIndex: tabIndex !== null && tabIndex !== void 0 ? tabIndex : 0,
71
+ to: to !== null && to !== void 0 ? to : '',
72
+ replace: replace
73
+ }, rest), children, showNewWindowIcon && ___EmotionJSX(LaunchIcon, {
74
+ style: {
75
+ verticalAlign: 'text-top'
76
+ }
77
+ }))
78
+ );
77
79
  };
78
80
 
79
81
  export default SafeLink;
@@ -5,5 +5,6 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
7
  */
8
+ /// <reference types="react" />
8
9
  declare const MissingRouterContext: import("react").Context<boolean>;
9
10
  export default MissingRouterContext;
package/lib/SafeLink.d.ts CHANGED
@@ -7,7 +7,7 @@
7
7
  */
8
8
  import { HTMLAttributes, ReactNode } from 'react';
9
9
  import { LinkProps } from 'react-router-dom';
10
- export declare const isOldNdlaLink: (to?: string | import("history").LocationDescriptorObject<{} | null | undefined> | ((location: import("history").Location<{} | null | undefined>) => import("history").History.LocationDescriptor<{} | null | undefined>) | undefined) => boolean | "" | undefined;
10
+ export declare const isOldNdlaLink: (to?: string | Partial<import("history").Path> | undefined) => boolean | "" | undefined;
11
11
  declare type Props = {
12
12
  showNewWindowIcon?: boolean;
13
13
  children?: ReactNode;
package/lib/SafeLink.js CHANGED
@@ -53,7 +53,7 @@ var LaunchIcon = ( /*#__PURE__*/0, _styledBase["default"])(_common.Launch, {
53
53
  } : {
54
54
  name: "vum9tn",
55
55
  styles: "margin-left:6px;height:auto;width:auto;margin-top:1px;",
56
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNhZmVMaW5rLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQmlDIiwiZmlsZSI6IlNhZmVMaW5rLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LXByZXNlbnQsIE5ETEEuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgR1BMdjMgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqXG4gKi9cblxuaW1wb3J0IFJlYWN0LCB7IEhUTUxBdHRyaWJ1dGVzLCBSZWFjdE5vZGUsIHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rLCBMaW5rUHJvcHMgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IExhdW5jaCB9IGZyb20gJ0BuZGxhL2ljb25zL2NvbW1vbic7XG5pbXBvcnQgaXNTdHJpbmcgZnJvbSAnbG9kYXNoL2lzU3RyaW5nJztcbmltcG9ydCBNaXNzaW5nUm91dGVyQ29udGV4dCBmcm9tICcuL01pc3NpbmdSb3V0ZXJDb250ZXh0JztcblxuY29uc3QgaXNFeHRlcm5hbExpbmsgPSAodG8/OiBMaW5rUHJvcHNbJ3RvJ10pID0+XG4gIHRvICYmIGlzU3RyaW5nKHRvKSAmJiAodG8uc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSB8fCB0by5zdGFydHNXaXRoKCdodHRwOi8vJykpO1xuXG5leHBvcnQgY29uc3QgaXNPbGROZGxhTGluayA9ICh0bz86IExpbmtQcm9wc1sndG8nXSkgPT4gdG8gJiYgaXNTdHJpbmcodG8pICYmIHRvLm1hdGNoKC8oLiopXFwvP25vZGVcXC8oXFxkKykuKi8pICE9PSBudWxsO1xuXG5jb25zdCBMYXVuY2hJY29uID0gc3R5bGVkKExhdW5jaClgXG4gIG1hcmdpbi1sZWZ0OiA2cHg7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbi10b3A6IDFweDtcbmA7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIHNob3dOZXdXaW5kb3dJY29uPzogYm9vbGVhbjtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG59O1xuXG5leHBvcnQgdHlwZSBTYWZlTGlua1Byb3BzID0gUHJvcHMgJiBMaW5rUHJvcHMgJiBIVE1MQXR0cmlidXRlczxIVE1MRWxlbWVudD47XG5cbi8vIEZhbGxiYWNrIHRvIG5vcm1hbCBsaW5rIGlmIGFwcCBpcyBtaXNzaW5nIFJvdXRlckNvbnRleHQsIGxpbmsgaXMgZXh0ZXJuYWwgb3IgaXMgb2xkIG5kbGEgbGlua1xuY29uc3QgU2FmZUxpbmsgPSAoeyB0bywgcmVwbGFjZSwgY2hpbGRyZW4sIHNob3dOZXdXaW5kb3dJY29uLCB0YWJJbmRleCwgLi4ucmVzdCB9OiBTYWZlTGlua1Byb3BzKSA9PiB7XG4gIGNvbnN0IGlzTWlzc2luZ1JvdXRlckNvbnRleHQgPSB1c2VDb250ZXh0KE1pc3NpbmdSb3V0ZXJDb250ZXh0KTtcblxuICBpZiAoaXNNaXNzaW5nUm91dGVyQ29udGV4dCB8fCBpc0V4dGVybmFsTGluayh0bykgfHwgaXNPbGROZGxhTGluayh0bykpIHtcbiAgICBjb25zdCBocmVmID0gdHlwZW9mIHRvID09PSAnc3RyaW5nJyA/IHRvIDogJyMnO1xuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8YSBocmVmPXtocmVmfSB7Li4ucmVzdH0+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgIHtzaG93TmV3V2luZG93SWNvbiAmJiA8TGF1bmNoSWNvbiBzdHlsZT17eyB2ZXJ0aWNhbEFsaWduOiAndGV4dC10b3AnIH19IC8+fVxuICAgICAgICA8L2E+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8TGluayB0YWJJbmRleD17dGFiSW5kZXggPz8gMH0gdG89e3RvfSByZXBsYWNlPXtyZXBsYWNlfSB7Li4ucmVzdH0+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgICB7c2hvd05ld1dpbmRvd0ljb24gJiYgPExhdW5jaEljb24gc3R5bGU9e3sgdmVydGljYWxBbGlnbjogJ3RleHQtdG9wJyB9fSAvPn1cbiAgICA8L0xpbms+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBTYWZlTGluaztcbiJdfQ== */",
56
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNhZmVMaW5rLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQmlDIiwiZmlsZSI6IlNhZmVMaW5rLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LXByZXNlbnQsIE5ETEEuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgR1BMdjMgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqXG4gKi9cblxuaW1wb3J0IFJlYWN0LCB7IEhUTUxBdHRyaWJ1dGVzLCBSZWFjdE5vZGUsIHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rLCBMaW5rUHJvcHMgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IExhdW5jaCB9IGZyb20gJ0BuZGxhL2ljb25zL2NvbW1vbic7XG5pbXBvcnQgaXNTdHJpbmcgZnJvbSAnbG9kYXNoL2lzU3RyaW5nJztcbmltcG9ydCBNaXNzaW5nUm91dGVyQ29udGV4dCBmcm9tICcuL01pc3NpbmdSb3V0ZXJDb250ZXh0JztcblxuY29uc3QgaXNFeHRlcm5hbExpbmsgPSAodG8/OiBMaW5rUHJvcHNbJ3RvJ10pID0+XG4gIHRvICYmIGlzU3RyaW5nKHRvKSAmJiAodG8uc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSB8fCB0by5zdGFydHNXaXRoKCdodHRwOi8vJykpO1xuXG5leHBvcnQgY29uc3QgaXNPbGROZGxhTGluayA9ICh0bz86IExpbmtQcm9wc1sndG8nXSkgPT4gdG8gJiYgaXNTdHJpbmcodG8pICYmIHRvLm1hdGNoKC8oLiopXFwvP25vZGVcXC8oXFxkKykuKi8pICE9PSBudWxsO1xuXG5jb25zdCBMYXVuY2hJY29uID0gc3R5bGVkKExhdW5jaClgXG4gIG1hcmdpbi1sZWZ0OiA2cHg7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbi10b3A6IDFweDtcbmA7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIHNob3dOZXdXaW5kb3dJY29uPzogYm9vbGVhbjtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG59O1xuXG5leHBvcnQgdHlwZSBTYWZlTGlua1Byb3BzID0gUHJvcHMgJiBMaW5rUHJvcHMgJiBIVE1MQXR0cmlidXRlczxIVE1MRWxlbWVudD47XG5cbi8vIEZhbGxiYWNrIHRvIG5vcm1hbCBsaW5rIGlmIGFwcCBpcyBtaXNzaW5nIFJvdXRlckNvbnRleHQsIGxpbmsgaXMgZXh0ZXJuYWwgb3IgaXMgb2xkIG5kbGEgbGlua1xuY29uc3QgU2FmZUxpbmsgPSAoeyB0bywgcmVwbGFjZSwgY2hpbGRyZW4sIHNob3dOZXdXaW5kb3dJY29uLCB0YWJJbmRleCwgLi4ucmVzdCB9OiBTYWZlTGlua1Byb3BzKSA9PiB7XG4gIGNvbnN0IGlzTWlzc2luZ1JvdXRlckNvbnRleHQgPSB1c2VDb250ZXh0KE1pc3NpbmdSb3V0ZXJDb250ZXh0KTtcblxuICBpZiAoaXNNaXNzaW5nUm91dGVyQ29udGV4dCB8fCBpc0V4dGVybmFsTGluayh0bykgfHwgaXNPbGROZGxhTGluayh0bykpIHtcbiAgICBjb25zdCBocmVmID0gdHlwZW9mIHRvID09PSAnc3RyaW5nJyA/IHRvIDogJyMnO1xuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8YSBocmVmPXtocmVmfSB7Li4ucmVzdH0+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgIHtzaG93TmV3V2luZG93SWNvbiAmJiA8TGF1bmNoSWNvbiBzdHlsZT17eyB2ZXJ0aWNhbEFsaWduOiAndGV4dC10b3AnIH19IC8+fVxuICAgICAgICA8L2E+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICAvLyBSUjYgbGluayBpbW1lZGlhdGVseSBmYWlscyBpZiB0byBpcyBzb21laG93IHVuZGVmaW5lZCwgc28gd2UgcHJvdmlkZSBhbiBlbXB0eSBmYWxsYmFjayB0byByZWNvdmVyLlxuICAgIDxMaW5rIHRhYkluZGV4PXt0YWJJbmRleCA/PyAwfSB0bz17dG8gPz8gJyd9IHJlcGxhY2U9e3JlcGxhY2V9IHsuLi5yZXN0fT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICAgIHtzaG93TmV3V2luZG93SWNvbiAmJiA8TGF1bmNoSWNvbiBzdHlsZT17eyB2ZXJ0aWNhbEFsaWduOiAndGV4dC10b3AnIH19IC8+fVxuICAgIDwvTGluaz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNhZmVMaW5rO1xuIl19 */",
57
57
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
58
58
  });
59
59
 
@@ -79,15 +79,17 @@ var SafeLink = function SafeLink(_ref) {
79
79
  })));
80
80
  }
81
81
 
82
- return (0, _core.jsx)(_reactRouterDom.Link, _extends({
83
- tabIndex: tabIndex !== null && tabIndex !== void 0 ? tabIndex : 0,
84
- to: to,
85
- replace: replace
86
- }, rest), children, showNewWindowIcon && (0, _core.jsx)(LaunchIcon, {
87
- style: {
88
- verticalAlign: 'text-top'
89
- }
90
- }));
82
+ return (// RR6 link immediately fails if to is somehow undefined, so we provide an empty fallback to recover.
83
+ (0, _core.jsx)(_reactRouterDom.Link, _extends({
84
+ tabIndex: tabIndex !== null && tabIndex !== void 0 ? tabIndex : 0,
85
+ to: to !== null && to !== void 0 ? to : '',
86
+ replace: replace
87
+ }, rest), children, showNewWindowIcon && (0, _core.jsx)(LaunchIcon, {
88
+ style: {
89
+ verticalAlign: 'text-top'
90
+ }
91
+ }))
92
+ );
91
93
  };
92
94
 
93
95
  var _default = SafeLink;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ndla/safelink",
3
- "version": "1.1.7",
3
+ "version": "2.0.2",
4
4
  "description": "SafeLink component for NDLA",
5
5
  "license": "GPL-3.0",
6
6
  "main": "lib/index.js",
@@ -26,17 +26,17 @@
26
26
  "es"
27
27
  ],
28
28
  "dependencies": {
29
- "@ndla/button": "^2.2.0",
30
- "@ndla/icons": "^1.7.0"
29
+ "@ndla/button": "^2.2.1",
30
+ "@ndla/icons": "^1.7.1"
31
31
  },
32
32
  "peerDependencies": {
33
33
  "@emotion/core": "^10.0.35",
34
34
  "@emotion/styled": "^10.0.27",
35
35
  "react": "16.13.1 || ^17.0.0",
36
- "react-router-dom": "^5.2.0"
36
+ "react-router-dom": "^6.3.0"
37
37
  },
38
38
  "publishConfig": {
39
39
  "access": "public"
40
40
  },
41
- "gitHead": "76c237a1e2d807c08054f066bbf5b274010c0e02"
41
+ "gitHead": "edc7a29956dd163f2e0df15537f4312031946c03"
42
42
  }