@webiny/app 5.34.1-beta.1 → 5.34.1-beta.3
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/App.d.ts +7 -2
- package/App.js +21 -10
- package/App.js.map +1 -1
- package/core/createProviderPlugin.d.ts +1 -0
- package/core/createProviderPlugin.js +8 -1
- package/core/createProviderPlugin.js.map +1 -1
- package/package.json +10 -10
package/App.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import React, { ReactElement } from "react";
|
|
2
2
|
import { RouteProps } from "@webiny/react-router";
|
|
3
3
|
import { HigherOrderComponent } from "@webiny/react-composition";
|
|
4
|
+
declare type RoutesByPath = {
|
|
5
|
+
[key: string]: ReactElement<RouteProps>;
|
|
6
|
+
};
|
|
4
7
|
interface State {
|
|
5
|
-
routes:
|
|
8
|
+
routes: RoutesByPath;
|
|
6
9
|
plugins: JSX.Element[];
|
|
7
10
|
providers: HigherOrderComponent[];
|
|
8
11
|
}
|
|
@@ -15,10 +18,12 @@ declare const AppContext: React.Context<AppContext | undefined>;
|
|
|
15
18
|
export declare const useApp: () => AppContext;
|
|
16
19
|
export interface AppProps {
|
|
17
20
|
debounceRender?: number;
|
|
21
|
+
routes?: Array<RouteProps>;
|
|
22
|
+
providers?: Array<HigherOrderComponent>;
|
|
18
23
|
children?: React.ReactNode | React.ReactNode[];
|
|
19
24
|
}
|
|
20
25
|
export declare const App: {
|
|
21
|
-
({ debounceRender, children }: AppProps): JSX.Element;
|
|
26
|
+
({ debounceRender, routes, providers, children }: AppProps): JSX.Element;
|
|
22
27
|
displayName: string;
|
|
23
28
|
};
|
|
24
29
|
export {};
|
package/App.js
CHANGED
|
@@ -13,7 +13,7 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers
|
|
|
13
13
|
|
|
14
14
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _objectSpread4 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
17
17
|
|
|
18
18
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
19
19
|
|
|
@@ -47,12 +47,18 @@ exports.useApp = useApp;
|
|
|
47
47
|
var App = function App(_ref) {
|
|
48
48
|
var _ref$debounceRender = _ref.debounceRender,
|
|
49
49
|
debounceRender = _ref$debounceRender === void 0 ? 50 : _ref$debounceRender,
|
|
50
|
+
_ref$routes = _ref.routes,
|
|
51
|
+
routes = _ref$routes === void 0 ? [] : _ref$routes,
|
|
52
|
+
_ref$providers = _ref.providers,
|
|
53
|
+
providers = _ref$providers === void 0 ? [] : _ref$providers,
|
|
50
54
|
children = _ref.children;
|
|
51
55
|
|
|
52
56
|
var _useState = (0, _react.useState)({
|
|
53
|
-
routes: {
|
|
57
|
+
routes: routes.reduce(function (acc, item) {
|
|
58
|
+
return (0, _objectSpread4.default)((0, _objectSpread4.default)({}, acc), {}, (0, _defineProperty2.default)({}, item.path, /*#__PURE__*/_react.default.createElement(_reactRouter.Route, item)));
|
|
59
|
+
}, {}),
|
|
54
60
|
plugins: [],
|
|
55
|
-
providers:
|
|
61
|
+
providers: providers
|
|
56
62
|
}),
|
|
57
63
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
58
64
|
state = _useState2[0],
|
|
@@ -60,8 +66,8 @@ var App = function App(_ref) {
|
|
|
60
66
|
|
|
61
67
|
var addRoute = (0, _react.useCallback)(function (route) {
|
|
62
68
|
setState(function (state) {
|
|
63
|
-
return (0,
|
|
64
|
-
routes: (0,
|
|
69
|
+
return (0, _objectSpread4.default)((0, _objectSpread4.default)({}, state), {}, {
|
|
70
|
+
routes: (0, _objectSpread4.default)((0, _objectSpread4.default)({}, state.routes), {}, (0, _defineProperty2.default)({}, route.props.path, route))
|
|
65
71
|
});
|
|
66
72
|
});
|
|
67
73
|
}, []);
|
|
@@ -73,20 +79,20 @@ var App = function App(_ref) {
|
|
|
73
79
|
return state;
|
|
74
80
|
}
|
|
75
81
|
|
|
76
|
-
return (0,
|
|
82
|
+
return (0, _objectSpread4.default)((0, _objectSpread4.default)({}, state), {}, {
|
|
77
83
|
providers: [].concat((0, _toConsumableArray2.default)(state.providers), [component])
|
|
78
84
|
});
|
|
79
85
|
});
|
|
80
86
|
}, []);
|
|
81
87
|
var addPlugin = (0, _react.useCallback)(function (element) {
|
|
82
88
|
setState(function (state) {
|
|
83
|
-
return (0,
|
|
89
|
+
return (0, _objectSpread4.default)((0, _objectSpread4.default)({}, state), {}, {
|
|
84
90
|
plugins: [].concat((0, _toConsumableArray2.default)(state.plugins), [element])
|
|
85
91
|
});
|
|
86
92
|
});
|
|
87
93
|
}, []);
|
|
88
94
|
var appContext = (0, _react.useMemo)(function () {
|
|
89
|
-
return (0,
|
|
95
|
+
return (0, _objectSpread4.default)((0, _objectSpread4.default)({}, state), {}, {
|
|
90
96
|
addRoute: addRoute,
|
|
91
97
|
addProvider: addProvider,
|
|
92
98
|
addPlugin: addPlugin
|
|
@@ -102,8 +108,13 @@ var App = function App(_ref) {
|
|
|
102
108
|
};
|
|
103
109
|
}, [state.routes]);
|
|
104
110
|
var Providers = (0, _react.useMemo)(function () {
|
|
105
|
-
return _reactComposition.compose.apply(void 0, (0, _toConsumableArray2.default)(state.providers || []))(
|
|
106
|
-
|
|
111
|
+
return _reactComposition.compose.apply(void 0, (0, _toConsumableArray2.default)(state.providers || []))(function (_ref2) {
|
|
112
|
+
var children = _ref2.children;
|
|
113
|
+
return /*#__PURE__*/_react.default.createElement(_DebounceRender.DebounceRender, {
|
|
114
|
+
wait: debounceRender
|
|
115
|
+
}, children);
|
|
116
|
+
});
|
|
117
|
+
}, [state.providers.length]);
|
|
107
118
|
Providers.displayName = "Providers";
|
|
108
119
|
return /*#__PURE__*/_react.default.createElement(AppContext.Provider, {
|
|
109
120
|
value: appContext
|
package/App.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AppContext","createContext","undefined","displayName","useApp","appContext","useContext","Error","App","debounceRender","children","useState","
|
|
1
|
+
{"version":3,"names":["AppContext","createContext","undefined","displayName","useApp","appContext","useContext","Error","App","debounceRender","routes","providers","children","useState","reduce","acc","item","path","plugins","state","setState","addRoute","useCallback","route","props","addProvider","component","findIndex","m","addPlugin","element","useMemo","AppRouter","Object","values","length","Providers","compose"],"sources":["App.tsx"],"sourcesContent":["import React, {\n createContext,\n useContext,\n useMemo,\n useState,\n useCallback,\n FunctionComponentElement,\n ReactElement\n} from \"react\";\nimport { BrowserRouter, RouteProps, Route } from \"@webiny/react-router\";\nimport { compose, HigherOrderComponent, CompositionProvider } from \"@webiny/react-composition\";\nimport { Routes as SortRoutes } from \"./core/Routes\";\nimport { DebounceRender } from \"./core/DebounceRender\";\nimport { PluginsProvider } from \"./core/Plugins\";\n\ntype RoutesByPath = {\n [key: string]: ReactElement<RouteProps>;\n};\n\ninterface State {\n routes: RoutesByPath;\n plugins: JSX.Element[];\n providers: HigherOrderComponent[];\n}\n\ninterface AppContext extends State {\n addRoute(route: JSX.Element): void;\n addProvider(hoc: HigherOrderComponent): void;\n addPlugin(plugin: React.ReactNode): void;\n}\n\nconst AppContext = createContext<AppContext | undefined>(undefined);\n\nAppContext.displayName = \"AppContext\";\n\nexport const useApp = () => {\n const appContext = useContext(AppContext);\n if (!appContext) {\n throw Error(\n `AppContext provider was not found. Are you using the \"useApp()\" hook in the right place?`\n );\n }\n return appContext;\n};\n\nexport interface AppProps {\n debounceRender?: number;\n routes?: Array<RouteProps>;\n providers?: Array<HigherOrderComponent>;\n children?: React.ReactNode | React.ReactNode[];\n}\n\nexport const App = ({ debounceRender = 50, routes = [], providers = [], children }: AppProps) => {\n const [state, setState] = useState<State>({\n routes: routes.reduce<RoutesByPath>((acc, item) => {\n return { ...acc, [item.path as string]: <Route {...item} /> };\n }, {}),\n plugins: [],\n providers\n });\n\n const addRoute = useCallback((route: FunctionComponentElement<RouteProps>) => {\n setState(state => {\n return {\n ...state,\n routes: { ...state.routes, [route.props.path as string]: route }\n };\n });\n }, []);\n\n const addProvider = useCallback(component => {\n setState(state => {\n if (state.providers.findIndex(m => m === component) > -1) {\n return state;\n }\n\n return {\n ...state,\n providers: [...state.providers, component]\n };\n });\n }, []);\n\n const addPlugin = useCallback(element => {\n setState(state => {\n return {\n ...state,\n plugins: [...state.plugins, element]\n };\n });\n }, []);\n\n const appContext = useMemo(\n () => ({\n ...state,\n addRoute,\n addProvider,\n addPlugin\n }),\n [state]\n );\n\n const AppRouter = useMemo(() => {\n return function AppRouter() {\n const routes = Object.values(state.routes);\n return <SortRoutes key={routes.length} routes={routes} />;\n };\n }, [state.routes]);\n\n const Providers = useMemo(() => {\n return compose(...(state.providers || []))(({ children }: any) => (\n <DebounceRender wait={debounceRender}>{children}</DebounceRender>\n ));\n }, [state.providers.length]);\n\n Providers.displayName = \"Providers\";\n\n return (\n <AppContext.Provider value={appContext}>\n <CompositionProvider>\n {children}\n <BrowserRouter>\n <Providers>\n <PluginsProvider>{state.plugins}</PluginsProvider>\n <DebounceRender wait={debounceRender}>\n <AppRouter />\n </DebounceRender>\n </Providers>\n </BrowserRouter>\n </CompositionProvider>\n </AppContext.Provider>\n );\n};\n\nApp.displayName = \"App\";\n"],"mappings":"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"}
|
|
@@ -6,3 +6,4 @@ import { HigherOrderComponent } from "@webiny/react-composition";
|
|
|
6
6
|
* For more information, visit https://www.webiny.com/docs/admin-area/basics/framework.
|
|
7
7
|
*/
|
|
8
8
|
export declare function createProviderPlugin(hoc: HigherOrderComponent): React.FC;
|
|
9
|
+
export declare const createProvider: (hoc: HigherOrderComponent) => HigherOrderComponent;
|
|
@@ -5,6 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
+
exports.createProvider = void 0;
|
|
8
9
|
exports.createProviderPlugin = createProviderPlugin;
|
|
9
10
|
|
|
10
11
|
var _react = _interopRequireDefault(require("react"));
|
|
@@ -22,4 +23,10 @@ function createProviderPlugin(hoc) {
|
|
|
22
23
|
hoc: hoc
|
|
23
24
|
});
|
|
24
25
|
};
|
|
25
|
-
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
var createProvider = function createProvider(hoc) {
|
|
29
|
+
return hoc;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
exports.createProvider = createProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createProviderPlugin","hoc","ProviderPlugin"],"sources":["createProviderPlugin.tsx"],"sourcesContent":["import React from \"react\";\nimport { HigherOrderComponent } from \"@webiny/react-composition\";\nimport { Provider } from \"./Provider\";\n\n/**\n * Creates a component, which, when mounted, will register an app provider.\n * This is particularly useful for wrapping the entire app with custom React Context providers.\n * For more information, visit https://www.webiny.com/docs/admin-area/basics/framework.\n */\nexport function createProviderPlugin(hoc: HigherOrderComponent): React.FC {\n return function ProviderPlugin() {\n return <Provider hoc={hoc} />;\n };\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["createProviderPlugin","hoc","ProviderPlugin","createProvider"],"sources":["createProviderPlugin.tsx"],"sourcesContent":["import React from \"react\";\nimport { HigherOrderComponent } from \"@webiny/react-composition\";\nimport { Provider } from \"./Provider\";\n\n/**\n * Creates a component, which, when mounted, will register an app provider.\n * This is particularly useful for wrapping the entire app with custom React Context providers.\n * For more information, visit https://www.webiny.com/docs/admin-area/basics/framework.\n */\nexport function createProviderPlugin(hoc: HigherOrderComponent): React.FC {\n return function ProviderPlugin() {\n return <Provider hoc={hoc} />;\n };\n}\n\nexport const createProvider = (hoc: HigherOrderComponent): HigherOrderComponent => {\n return hoc;\n};\n"],"mappings":";;;;;;;;;;AAAA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASA,oBAAT,CAA8BC,GAA9B,EAAmE;EACtE,OAAO,SAASC,cAAT,GAA0B;IAC7B,oBAAO,6BAAC,kBAAD;MAAU,GAAG,EAAED;IAAf,EAAP;EACH,CAFD;AAGH;;AAEM,IAAME,cAAc,GAAG,SAAjBA,cAAiB,CAACF,GAAD,EAAqD;EAC/E,OAAOA,GAAP;AACH,CAFM"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/app",
|
|
3
|
-
"version": "5.34.1-beta.
|
|
3
|
+
"version": "5.34.1-beta.3",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -19,12 +19,12 @@
|
|
|
19
19
|
"@emotion/styled": "10.3.0",
|
|
20
20
|
"@types/react": "17.0.39",
|
|
21
21
|
"@types/web": "0.0.61",
|
|
22
|
-
"@webiny/i18n": "5.34.1-beta.
|
|
23
|
-
"@webiny/i18n-react": "5.34.1-beta.
|
|
24
|
-
"@webiny/plugins": "5.34.1-beta.
|
|
25
|
-
"@webiny/react-composition": "5.34.1-beta.
|
|
26
|
-
"@webiny/react-router": "5.34.1-beta.
|
|
27
|
-
"@webiny/ui": "5.34.1-beta.
|
|
22
|
+
"@webiny/i18n": "5.34.1-beta.3",
|
|
23
|
+
"@webiny/i18n-react": "5.34.1-beta.3",
|
|
24
|
+
"@webiny/plugins": "5.34.1-beta.3",
|
|
25
|
+
"@webiny/react-composition": "5.34.1-beta.3",
|
|
26
|
+
"@webiny/react-router": "5.34.1-beta.3",
|
|
27
|
+
"@webiny/ui": "5.34.1-beta.3",
|
|
28
28
|
"apollo-cache": "1.3.5",
|
|
29
29
|
"apollo-cache-inmemory": "1.6.6",
|
|
30
30
|
"apollo-client": "2.6.10",
|
|
@@ -52,8 +52,8 @@
|
|
|
52
52
|
"@babel/preset-typescript": "^7.18.6",
|
|
53
53
|
"@types/lodash.debounce": "^4.0.7",
|
|
54
54
|
"@types/warning": "^3.0.0",
|
|
55
|
-
"@webiny/cli": "^5.34.1-beta.
|
|
56
|
-
"@webiny/project-utils": "^5.34.1-beta.
|
|
55
|
+
"@webiny/cli": "^5.34.1-beta.3",
|
|
56
|
+
"@webiny/project-utils": "^5.34.1-beta.3",
|
|
57
57
|
"babel-plugin-lodash": "^3.3.4",
|
|
58
58
|
"rimraf": "^3.0.2",
|
|
59
59
|
"typescript": "4.7.4"
|
|
@@ -74,5 +74,5 @@
|
|
|
74
74
|
]
|
|
75
75
|
}
|
|
76
76
|
},
|
|
77
|
-
"gitHead": "
|
|
77
|
+
"gitHead": "844ed1cdc2ad4e87d0a8401d03f64d33c43145a8"
|
|
78
78
|
}
|