@atlaskit/app-provider 0.3.1 → 1.0.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 +17 -0
- package/constellation/index/examples.mdx +1 -1
- package/dist/cjs/router-link-provider/hooks/use-router-link.js +14 -2
- package/dist/es2019/router-link-provider/hooks/use-router-link.js +14 -2
- package/dist/esm/router-link-provider/hooks/use-router-link.js +14 -2
- package/dist/types/router-link-provider/hooks/use-router-link.d.ts +12 -2
- package/dist/types/router-link-provider/index.d.ts +16 -8
- package/dist/types-ts4.5/router-link-provider/hooks/use-router-link.d.ts +12 -2
- package/dist/types-ts4.5/router-link-provider/index.d.ts +16 -8
- package/package.json +3 -4
- package/report.api.md +11 -4
- package/tmp/api-report-tmp.d.ts +0 -57
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# @atlaskit/app-provider
|
|
2
2
|
|
|
3
|
+
## 1.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- [#69683](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/69683) [`203c0f3c8b03`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/203c0f3c8b03) - Stable v1 release of app provider
|
|
8
|
+
|
|
9
|
+
## 0.4.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- [#42305](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/42305) [`4c9d4a7be34`](https://bitbucket.org/atlassian/atlassian-frontend/commits/4c9d4a7be34) - - Router link components are now required to forward refs
|
|
14
|
+
- The `useRouterLink()` hook now supports generic router link configuration: `useRouterLink<YourLinkConfigObject>()`
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- [#42305](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/42305) [`4c9d4a7be34`](https://bitbucket.org/atlassian/atlassian-frontend/commits/4c9d4a7be34) - - Fixes a bug with router link component generic `href` prop typings where non-object types were allowed
|
|
19
|
+
|
|
3
20
|
## 0.3.1
|
|
4
21
|
|
|
5
22
|
### Patch Changes
|
|
@@ -32,7 +32,7 @@ The `useTheme` hook can be used to get the active themes. The `useSetTheme` hook
|
|
|
32
32
|
|
|
33
33
|
The `routerLinkComponent` prop provides support for configuring router links within Design System components.
|
|
34
34
|
|
|
35
|
-
Support for this is limited as Design System components are being updated, starting with
|
|
35
|
+
Support for this is limited as Design System components are being updated, starting with [Button](/components/button/button-new/examples).
|
|
36
36
|
|
|
37
37
|
This example shows how links can be configured to utilize the router link component supplied by [React Resource Router](https://github.com/atlassian-labs/react-resource-router), however any routing library can be used.
|
|
38
38
|
|
|
@@ -9,11 +9,23 @@ var _index = require("../index");
|
|
|
9
9
|
/**
|
|
10
10
|
* __useRouterLink()__
|
|
11
11
|
*
|
|
12
|
-
* Hook: Returns app-configured router link component
|
|
12
|
+
* Hook: Returns app-configured router link component.
|
|
13
|
+
*
|
|
14
|
+
* A generic can be passed to define advanced link configuration:
|
|
15
|
+
* ```
|
|
16
|
+
* type MyRouterLinkConfig = {
|
|
17
|
+
* to: string;
|
|
18
|
+
* replace?: boolean;
|
|
19
|
+
* }
|
|
20
|
+
*
|
|
21
|
+
* const RouterLink = useRouterLink<MyRouterLinkConfig>();
|
|
22
|
+
* ```
|
|
13
23
|
*/
|
|
14
24
|
var useRouterLink = function useRouterLink() {
|
|
15
25
|
var _useContext = (0, _react.useContext)(_index.RouterLinkProviderContext),
|
|
16
26
|
routerLinkComponent = _useContext.routerLinkComponent;
|
|
17
|
-
|
|
27
|
+
if (routerLinkComponent) {
|
|
28
|
+
return routerLinkComponent;
|
|
29
|
+
}
|
|
18
30
|
};
|
|
19
31
|
var _default = exports.default = useRouterLink;
|
|
@@ -4,12 +4,24 @@ import { RouterLinkProviderContext } from '../index';
|
|
|
4
4
|
/**
|
|
5
5
|
* __useRouterLink()__
|
|
6
6
|
*
|
|
7
|
-
* Hook: Returns app-configured router link component
|
|
7
|
+
* Hook: Returns app-configured router link component.
|
|
8
|
+
*
|
|
9
|
+
* A generic can be passed to define advanced link configuration:
|
|
10
|
+
* ```
|
|
11
|
+
* type MyRouterLinkConfig = {
|
|
12
|
+
* to: string;
|
|
13
|
+
* replace?: boolean;
|
|
14
|
+
* }
|
|
15
|
+
*
|
|
16
|
+
* const RouterLink = useRouterLink<MyRouterLinkConfig>();
|
|
17
|
+
* ```
|
|
8
18
|
*/
|
|
9
19
|
const useRouterLink = () => {
|
|
10
20
|
const {
|
|
11
21
|
routerLinkComponent
|
|
12
22
|
} = useContext(RouterLinkProviderContext);
|
|
13
|
-
|
|
23
|
+
if (routerLinkComponent) {
|
|
24
|
+
return routerLinkComponent;
|
|
25
|
+
}
|
|
14
26
|
};
|
|
15
27
|
export default useRouterLink;
|
|
@@ -4,11 +4,23 @@ import { RouterLinkProviderContext } from '../index';
|
|
|
4
4
|
/**
|
|
5
5
|
* __useRouterLink()__
|
|
6
6
|
*
|
|
7
|
-
* Hook: Returns app-configured router link component
|
|
7
|
+
* Hook: Returns app-configured router link component.
|
|
8
|
+
*
|
|
9
|
+
* A generic can be passed to define advanced link configuration:
|
|
10
|
+
* ```
|
|
11
|
+
* type MyRouterLinkConfig = {
|
|
12
|
+
* to: string;
|
|
13
|
+
* replace?: boolean;
|
|
14
|
+
* }
|
|
15
|
+
*
|
|
16
|
+
* const RouterLink = useRouterLink<MyRouterLinkConfig>();
|
|
17
|
+
* ```
|
|
8
18
|
*/
|
|
9
19
|
var useRouterLink = function useRouterLink() {
|
|
10
20
|
var _useContext = useContext(RouterLinkProviderContext),
|
|
11
21
|
routerLinkComponent = _useContext.routerLinkComponent;
|
|
12
|
-
|
|
22
|
+
if (routerLinkComponent) {
|
|
23
|
+
return routerLinkComponent;
|
|
24
|
+
}
|
|
13
25
|
};
|
|
14
26
|
export default useRouterLink;
|
|
@@ -2,7 +2,17 @@ import { type RouterLinkComponent } from '../index';
|
|
|
2
2
|
/**
|
|
3
3
|
* __useRouterLink()__
|
|
4
4
|
*
|
|
5
|
-
* Hook: Returns app-configured router link component
|
|
5
|
+
* Hook: Returns app-configured router link component.
|
|
6
|
+
*
|
|
7
|
+
* A generic can be passed to define advanced link configuration:
|
|
8
|
+
* ```
|
|
9
|
+
* type MyRouterLinkConfig = {
|
|
10
|
+
* to: string;
|
|
11
|
+
* replace?: boolean;
|
|
12
|
+
* }
|
|
13
|
+
*
|
|
14
|
+
* const RouterLink = useRouterLink<MyRouterLinkConfig>();
|
|
15
|
+
* ```
|
|
6
16
|
*/
|
|
7
|
-
declare const useRouterLink: () => RouterLinkComponent | undefined;
|
|
17
|
+
declare const useRouterLink: <RouterLinkConfig extends Record<string, any> = never>() => RouterLinkComponent<RouterLinkConfig> | undefined;
|
|
8
18
|
export default useRouterLink;
|
|
@@ -1,25 +1,33 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
export type RouterLinkComponent<RouterLinkConfig extends
|
|
3
|
-
export type RouterLinkComponentProps<RouterLinkConfig extends
|
|
2
|
+
export type RouterLinkComponent<RouterLinkConfig extends Record<string, any> = never> = React.ForwardRefExoticComponent<RouterLinkComponentProps<RouterLinkConfig> & React.RefAttributes<HTMLAnchorElement>>;
|
|
3
|
+
export type RouterLinkComponentProps<RouterLinkConfig extends Record<string, any> = never> = {
|
|
4
4
|
/**
|
|
5
5
|
* A string which can be mapped to the underlying router link,
|
|
6
6
|
* or optionally a custom object defined in the generic type for advanced use.
|
|
7
7
|
*
|
|
8
8
|
* @example
|
|
9
9
|
* ```
|
|
10
|
-
* const MyRouterLink
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
10
|
+
* const MyRouterLink = forwardRef(
|
|
11
|
+
* (
|
|
12
|
+
* {
|
|
13
|
+
* href,
|
|
14
|
+
* children,
|
|
15
|
+
* ...rest
|
|
16
|
+
* }: RouterLinkComponentProps<{
|
|
17
|
+
* href: string;
|
|
18
|
+
* replace: boolean;
|
|
19
|
+
* }>,
|
|
20
|
+
* ref: Ref<HTMLAnchorElement>,
|
|
21
|
+
* ) => { ...
|
|
14
22
|
* ```
|
|
15
23
|
*/
|
|
16
24
|
href: string | RouterLinkConfig;
|
|
17
25
|
children: React.ReactNode;
|
|
18
26
|
};
|
|
19
|
-
export type RouterLinkProviderContextProps<RouterLinkConfig extends
|
|
27
|
+
export type RouterLinkProviderContextProps<RouterLinkConfig extends Record<string, any> = never> = {
|
|
20
28
|
routerLinkComponent?: RouterLinkComponent<RouterLinkConfig>;
|
|
21
29
|
};
|
|
22
|
-
export declare const RouterLinkProviderContext: React.Context<RouterLinkProviderContextProps<
|
|
30
|
+
export declare const RouterLinkProviderContext: React.Context<RouterLinkProviderContextProps<never>>;
|
|
23
31
|
export type RouterLinkProviderProps = {
|
|
24
32
|
/**
|
|
25
33
|
* The rendering mechanism of router links within Design System components.
|
|
@@ -2,7 +2,17 @@ import { type RouterLinkComponent } from '../index';
|
|
|
2
2
|
/**
|
|
3
3
|
* __useRouterLink()__
|
|
4
4
|
*
|
|
5
|
-
* Hook: Returns app-configured router link component
|
|
5
|
+
* Hook: Returns app-configured router link component.
|
|
6
|
+
*
|
|
7
|
+
* A generic can be passed to define advanced link configuration:
|
|
8
|
+
* ```
|
|
9
|
+
* type MyRouterLinkConfig = {
|
|
10
|
+
* to: string;
|
|
11
|
+
* replace?: boolean;
|
|
12
|
+
* }
|
|
13
|
+
*
|
|
14
|
+
* const RouterLink = useRouterLink<MyRouterLinkConfig>();
|
|
15
|
+
* ```
|
|
6
16
|
*/
|
|
7
|
-
declare const useRouterLink: () => RouterLinkComponent | undefined;
|
|
17
|
+
declare const useRouterLink: <RouterLinkConfig extends Record<string, any> = never>() => RouterLinkComponent<RouterLinkConfig> | undefined;
|
|
8
18
|
export default useRouterLink;
|
|
@@ -1,25 +1,33 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
export type RouterLinkComponent<RouterLinkConfig extends
|
|
3
|
-
export type RouterLinkComponentProps<RouterLinkConfig extends
|
|
2
|
+
export type RouterLinkComponent<RouterLinkConfig extends Record<string, any> = never> = React.ForwardRefExoticComponent<RouterLinkComponentProps<RouterLinkConfig> & React.RefAttributes<HTMLAnchorElement>>;
|
|
3
|
+
export type RouterLinkComponentProps<RouterLinkConfig extends Record<string, any> = never> = {
|
|
4
4
|
/**
|
|
5
5
|
* A string which can be mapped to the underlying router link,
|
|
6
6
|
* or optionally a custom object defined in the generic type for advanced use.
|
|
7
7
|
*
|
|
8
8
|
* @example
|
|
9
9
|
* ```
|
|
10
|
-
* const MyRouterLink
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
10
|
+
* const MyRouterLink = forwardRef(
|
|
11
|
+
* (
|
|
12
|
+
* {
|
|
13
|
+
* href,
|
|
14
|
+
* children,
|
|
15
|
+
* ...rest
|
|
16
|
+
* }: RouterLinkComponentProps<{
|
|
17
|
+
* href: string;
|
|
18
|
+
* replace: boolean;
|
|
19
|
+
* }>,
|
|
20
|
+
* ref: Ref<HTMLAnchorElement>,
|
|
21
|
+
* ) => { ...
|
|
14
22
|
* ```
|
|
15
23
|
*/
|
|
16
24
|
href: string | RouterLinkConfig;
|
|
17
25
|
children: React.ReactNode;
|
|
18
26
|
};
|
|
19
|
-
export type RouterLinkProviderContextProps<RouterLinkConfig extends
|
|
27
|
+
export type RouterLinkProviderContextProps<RouterLinkConfig extends Record<string, any> = never> = {
|
|
20
28
|
routerLinkComponent?: RouterLinkComponent<RouterLinkConfig>;
|
|
21
29
|
};
|
|
22
|
-
export declare const RouterLinkProviderContext: React.Context<RouterLinkProviderContextProps<
|
|
30
|
+
export declare const RouterLinkProviderContext: React.Context<RouterLinkProviderContextProps<never>>;
|
|
23
31
|
export type RouterLinkProviderProps = {
|
|
24
32
|
/**
|
|
25
33
|
* The rendering mechanism of router links within Design System components.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/app-provider",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "A top level provider for the Design System.",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"name": "App provider",
|
|
16
16
|
"category": "Components",
|
|
17
17
|
"status": {
|
|
18
|
-
"type": "
|
|
18
|
+
"type": "beta"
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
},
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
".": "./src/index.tsx"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@atlaskit/tokens": "^1.
|
|
41
|
+
"@atlaskit/tokens": "^1.35.0",
|
|
42
42
|
"@babel/runtime": "^7.0.0",
|
|
43
43
|
"bind-event-listener": "^2.1.1"
|
|
44
44
|
},
|
|
@@ -49,7 +49,6 @@
|
|
|
49
49
|
"@af/visual-regression": "*",
|
|
50
50
|
"@atlaskit/ssr": "*",
|
|
51
51
|
"@atlaskit/visual-regression": "*",
|
|
52
|
-
"@atlaskit/webdriver-runner": "*",
|
|
53
52
|
"@atlassian/atlassian-frontend-prettier-config-1.0.0": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.0",
|
|
54
53
|
"@testing-library/react": "^12.1.5",
|
|
55
54
|
"@testing-library/react-hooks": "^8.0.1",
|
package/report.api.md
CHANGED
|
@@ -42,11 +42,16 @@ type ColorMode = 'auto' | 'dark' | 'light';
|
|
|
42
42
|
type ReconciledColorMode = Exclude<ColorMode, 'auto'>;
|
|
43
43
|
|
|
44
44
|
// @public (undocumented)
|
|
45
|
-
type RouterLinkComponent<RouterLinkConfig extends
|
|
46
|
-
React_2.
|
|
45
|
+
type RouterLinkComponent<RouterLinkConfig extends Record<string, any> = never> =
|
|
46
|
+
React_2.ForwardRefExoticComponent<
|
|
47
|
+
RouterLinkComponentProps<RouterLinkConfig> &
|
|
48
|
+
React_2.RefAttributes<HTMLAnchorElement>
|
|
49
|
+
>;
|
|
47
50
|
|
|
48
51
|
// @public (undocumented)
|
|
49
|
-
export type RouterLinkComponentProps<
|
|
52
|
+
export type RouterLinkComponentProps<
|
|
53
|
+
RouterLinkConfig extends Record<string, any> = never,
|
|
54
|
+
> = {
|
|
50
55
|
href: RouterLinkConfig | string;
|
|
51
56
|
children: React_2.ReactNode;
|
|
52
57
|
};
|
|
@@ -58,7 +63,9 @@ type Theme = Omit<ThemeState, 'colorMode' | 'contrastMode'>;
|
|
|
58
63
|
export function useColorMode(): ReconciledColorMode;
|
|
59
64
|
|
|
60
65
|
// @public
|
|
61
|
-
export const useRouterLink:
|
|
66
|
+
export const useRouterLink: <
|
|
67
|
+
RouterLinkConfig extends Record<string, any> = never,
|
|
68
|
+
>() => RouterLinkComponent<RouterLinkConfig> | undefined;
|
|
62
69
|
|
|
63
70
|
// @public
|
|
64
71
|
export function useSetColorMode(): (value: ColorMode) => void;
|
package/tmp/api-report-tmp.d.ts
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
## API Report File for "@atlaskit/app-provider"
|
|
2
|
-
|
|
3
|
-
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
|
|
4
|
-
|
|
5
|
-
```ts
|
|
6
|
-
|
|
7
|
-
import { default as React_2 } from 'react';
|
|
8
|
-
import { ThemeState } from '@atlaskit/tokens';
|
|
9
|
-
|
|
10
|
-
// @public
|
|
11
|
-
function AppProvider({ children, defaultColorMode, defaultTheme, routerLinkComponent, }: AppProviderProps): JSX.Element;
|
|
12
|
-
export default AppProvider;
|
|
13
|
-
|
|
14
|
-
// @public (undocumented)
|
|
15
|
-
interface AppProviderProps {
|
|
16
|
-
children: React_2.ReactNode;
|
|
17
|
-
defaultColorMode?: ColorMode;
|
|
18
|
-
defaultTheme?: Partial<Theme>;
|
|
19
|
-
routerLinkComponent?: RouterLinkComponent<any>;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
// @public (undocumented)
|
|
23
|
-
type ColorMode = 'auto' | 'dark' | 'light';
|
|
24
|
-
|
|
25
|
-
// @public (undocumented)
|
|
26
|
-
type ReconciledColorMode = Exclude<ColorMode, 'auto'>;
|
|
27
|
-
|
|
28
|
-
// @public (undocumented)
|
|
29
|
-
type RouterLinkComponent<RouterLinkConfig extends {} = {}> = React_2.ComponentType<RouterLinkComponentProps<RouterLinkConfig>>;
|
|
30
|
-
|
|
31
|
-
// @public (undocumented)
|
|
32
|
-
export type RouterLinkComponentProps<RouterLinkConfig extends {} = {}> = {
|
|
33
|
-
href: RouterLinkConfig | string;
|
|
34
|
-
children: React_2.ReactNode;
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
// @public (undocumented)
|
|
38
|
-
type Theme = Omit<ThemeState, 'colorMode' | 'contrastMode'>;
|
|
39
|
-
|
|
40
|
-
// @public
|
|
41
|
-
export function useColorMode(): ReconciledColorMode;
|
|
42
|
-
|
|
43
|
-
// @public
|
|
44
|
-
export const useRouterLink: () => RouterLinkComponent | undefined;
|
|
45
|
-
|
|
46
|
-
// @public
|
|
47
|
-
export function useSetColorMode(): (value: ColorMode) => void;
|
|
48
|
-
|
|
49
|
-
// @public
|
|
50
|
-
export function useSetTheme(): (value: Partial<Theme>) => void;
|
|
51
|
-
|
|
52
|
-
// @public
|
|
53
|
-
export function useTheme(): Theme;
|
|
54
|
-
|
|
55
|
-
// (No @packageDocumentation comment for this package)
|
|
56
|
-
|
|
57
|
-
```
|