@webiny/app-tenancy 5.43.3 → 6.0.0-alpha.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.
- package/Tenancy.js +14 -21
- package/Tenancy.js.map +1 -1
- package/contexts/Tenancy.js +30 -44
- package/contexts/Tenancy.js.map +1 -1
- package/hooks/useTenancy.d.ts +1 -1
- package/hooks/useTenancy.js +4 -10
- package/hooks/useTenancy.js.map +1 -1
- package/index.js +6 -62
- package/index.js.map +1 -1
- package/package.json +7 -7
- package/plugins/installation.d.ts +1 -1
- package/plugins/installation.js +61 -50
- package/plugins/installation.js.map +1 -1
- package/withTenant.d.ts +1 -1
- package/withTenant.js +34 -25
- package/withTenant.js.map +1 -1
package/Tenancy.js
CHANGED
|
@@ -1,28 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
var _appAdmin = require("@webiny/app-admin");
|
|
12
|
-
var _installation = _interopRequireDefault(require("./plugins/installation"));
|
|
13
|
-
var _Tenancy = require("./contexts/Tenancy");
|
|
14
|
-
var TenancyProviderHOC = function TenancyProviderHOC(Component) {
|
|
15
|
-
return function TenancyProvider(_ref) {
|
|
16
|
-
var children = _ref.children;
|
|
17
|
-
return /*#__PURE__*/_react.default.createElement(_Tenancy.TenancyProvider, null, /*#__PURE__*/_react.default.createElement(Component, null, children));
|
|
1
|
+
import React, { memo } from "react";
|
|
2
|
+
import { plugins } from "@webiny/plugins";
|
|
3
|
+
import { Provider } from "@webiny/app-admin";
|
|
4
|
+
import installation from "./plugins/installation";
|
|
5
|
+
import { TenancyProvider as ContextProvider } from "./contexts/Tenancy";
|
|
6
|
+
const TenancyProviderHOC = Component => {
|
|
7
|
+
return function TenancyProvider({
|
|
8
|
+
children
|
|
9
|
+
}) {
|
|
10
|
+
return /*#__PURE__*/React.createElement(ContextProvider, null, /*#__PURE__*/React.createElement(Component, null, children));
|
|
18
11
|
};
|
|
19
12
|
};
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
return /*#__PURE__*/
|
|
13
|
+
export const TenancyExtension = () => {
|
|
14
|
+
plugins.register(installation);
|
|
15
|
+
return /*#__PURE__*/React.createElement(Provider, {
|
|
23
16
|
hoc: TenancyProviderHOC
|
|
24
17
|
});
|
|
25
18
|
};
|
|
26
|
-
|
|
19
|
+
export const Tenancy = /*#__PURE__*/memo(TenancyExtension);
|
|
27
20
|
|
|
28
21
|
//# sourceMappingURL=Tenancy.js.map
|
package/Tenancy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["React","memo","plugins","Provider","installation","TenancyProvider","ContextProvider","TenancyProviderHOC","Component","children","createElement","TenancyExtension","register","hoc","Tenancy"],"sources":["Tenancy.tsx"],"sourcesContent":["import React, { memo } from \"react\";\nimport { plugins } from \"@webiny/plugins\";\nimport { Provider } from \"@webiny/app-admin\";\nimport installation from \"./plugins/installation\";\nimport { TenancyProvider as ContextProvider } from \"./contexts/Tenancy\";\n\ninterface TenancyProviderHOCProps {\n children: React.ReactNode;\n}\n\nconst TenancyProviderHOC = (Component: React.ComponentType<TenancyProviderHOCProps>) => {\n return function TenancyProvider({ children }: TenancyProviderHOCProps) {\n return (\n <ContextProvider>\n <Component>{children}</Component>\n </ContextProvider>\n );\n };\n};\n\nexport const TenancyExtension = () => {\n plugins.register(installation);\n\n return <Provider hoc={TenancyProviderHOC} />;\n};\n\nexport const Tenancy = memo(TenancyExtension);\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,OAAO,QAAQ,iBAAiB;AACzC,SAASC,QAAQ,QAAQ,mBAAmB;AAC5C,OAAOC,YAAY;AACnB,SAASC,eAAe,IAAIC,eAAe;AAM3C,MAAMC,kBAAkB,GAAIC,SAAuD,IAAK;EACpF,OAAO,SAASH,eAAeA,CAAC;IAAEI;EAAkC,CAAC,EAAE;IACnE,oBACIT,KAAA,CAAAU,aAAA,CAACJ,eAAe,qBACZN,KAAA,CAAAU,aAAA,CAACF,SAAS,QAAEC,QAAoB,CACnB,CAAC;EAE1B,CAAC;AACL,CAAC;AAED,OAAO,MAAME,gBAAgB,GAAGA,CAAA,KAAM;EAClCT,OAAO,CAACU,QAAQ,CAACR,YAAY,CAAC;EAE9B,oBAAOJ,KAAA,CAAAU,aAAA,CAACP,QAAQ;IAACU,GAAG,EAAEN;EAAmB,CAAE,CAAC;AAChD,CAAC;AAED,OAAO,MAAMO,OAAO,gBAAGb,IAAI,CAACU,gBAAgB,CAAC","ignoreList":[]}
|
package/contexts/Tenancy.js
CHANGED
|
@@ -1,61 +1,49 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
});
|
|
8
|
-
exports.TenancyProvider = exports.TenancyContext = void 0;
|
|
9
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
-
var _store = _interopRequireDefault(require("store"));
|
|
12
|
-
var _plugins = require("@webiny/plugins");
|
|
13
|
-
var _TenantHeaderLinkPlugin = require("@webiny/app/plugins/TenantHeaderLinkPlugin");
|
|
14
|
-
var _appAdmin = require("@webiny/app-admin");
|
|
15
|
-
var TenancyContext = exports.TenancyContext = /*#__PURE__*/_react.default.createContext({
|
|
1
|
+
import React, { useMemo, useCallback, Fragment, useState } from "react";
|
|
2
|
+
import { default as localStorage } from "store";
|
|
3
|
+
import { plugins } from "@webiny/plugins";
|
|
4
|
+
import { TenantHeaderLinkPlugin } from "@webiny/app/plugins/TenantHeaderLinkPlugin";
|
|
5
|
+
import { useWcp } from "@webiny/app-admin";
|
|
6
|
+
export const TenancyContext = /*#__PURE__*/React.createContext({
|
|
16
7
|
tenant: null,
|
|
17
|
-
setTenant:
|
|
8
|
+
setTenant: () => {
|
|
18
9
|
return void 0;
|
|
19
10
|
},
|
|
20
11
|
isMultiTenant: false
|
|
21
12
|
});
|
|
22
|
-
|
|
13
|
+
const LOCAL_STORAGE_KEY = "webiny_tenant";
|
|
23
14
|
function loadState() {
|
|
24
|
-
return
|
|
15
|
+
return localStorage.get(LOCAL_STORAGE_KEY) || null;
|
|
25
16
|
}
|
|
26
17
|
function storeState(state) {
|
|
27
|
-
|
|
18
|
+
localStorage.set(LOCAL_STORAGE_KEY, state);
|
|
28
19
|
}
|
|
29
|
-
|
|
20
|
+
const getInitialTenant = () => {
|
|
30
21
|
// Check if `tenantId` query parameter is set. If it is, it takes precedence over any other source.
|
|
31
|
-
|
|
32
|
-
|
|
22
|
+
const searchParams = new URLSearchParams(location.search);
|
|
23
|
+
const tenantId = searchParams.get("tenantId");
|
|
33
24
|
if (tenantId) {
|
|
34
25
|
storeState(tenantId);
|
|
35
26
|
}
|
|
36
|
-
|
|
37
|
-
|
|
27
|
+
const currentTenant = loadState() || "root";
|
|
28
|
+
plugins.register(new TenantHeaderLinkPlugin(currentTenant));
|
|
38
29
|
return currentTenant;
|
|
39
30
|
};
|
|
40
|
-
|
|
41
|
-
|
|
31
|
+
const goToDashboard = () => {
|
|
32
|
+
const url = new URL(window.location.toString());
|
|
42
33
|
url.search = "";
|
|
43
34
|
url.pathname = "/";
|
|
44
35
|
window.location.href = url.toString();
|
|
45
36
|
};
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
setTenant = _useState2[1];
|
|
51
|
-
var wcp = (0, _appAdmin.useWcp)();
|
|
52
|
-
var changeTenant = (0, _react.useCallback)(function (tenant) {
|
|
37
|
+
export const TenancyProvider = props => {
|
|
38
|
+
const [currentTenant, setTenant] = useState(getInitialTenant);
|
|
39
|
+
const wcp = useWcp();
|
|
40
|
+
const changeTenant = useCallback(tenant => {
|
|
53
41
|
if (!tenant) {
|
|
54
|
-
|
|
42
|
+
localStorage.remove(LOCAL_STORAGE_KEY);
|
|
55
43
|
goToDashboard();
|
|
56
44
|
}
|
|
57
45
|
if (!currentTenant) {
|
|
58
|
-
|
|
46
|
+
plugins.register(new TenantHeaderLinkPlugin(tenant));
|
|
59
47
|
setTenant(tenant);
|
|
60
48
|
storeState(tenant);
|
|
61
49
|
return;
|
|
@@ -63,16 +51,14 @@ var TenancyProvider = exports.TenancyProvider = function TenancyProvider(props)
|
|
|
63
51
|
storeState(tenant);
|
|
64
52
|
goToDashboard();
|
|
65
53
|
}, [currentTenant]);
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}, [currentTenant]);
|
|
73
|
-
return /*#__PURE__*/_react.default.createElement(TenancyContext.Provider, {
|
|
54
|
+
const value = useMemo(() => ({
|
|
55
|
+
tenant: currentTenant,
|
|
56
|
+
setTenant: changeTenant,
|
|
57
|
+
isMultiTenant: wcp.canUseFeature("multiTenancy")
|
|
58
|
+
}), [currentTenant]);
|
|
59
|
+
return /*#__PURE__*/React.createElement(TenancyContext.Provider, {
|
|
74
60
|
value: value
|
|
75
|
-
}, /*#__PURE__*/
|
|
61
|
+
}, /*#__PURE__*/React.createElement(Fragment, null, props.children));
|
|
76
62
|
};
|
|
77
63
|
|
|
78
64
|
//# sourceMappingURL=Tenancy.js.map
|
package/contexts/Tenancy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["React","useMemo","useCallback","Fragment","useState","default","localStorage","plugins","TenantHeaderLinkPlugin","useWcp","TenancyContext","createContext","tenant","setTenant","isMultiTenant","LOCAL_STORAGE_KEY","loadState","get","storeState","state","set","getInitialTenant","searchParams","URLSearchParams","location","search","tenantId","currentTenant","register","goToDashboard","url","URL","window","toString","pathname","href","TenancyProvider","props","wcp","changeTenant","remove","value","canUseFeature","createElement","Provider","children"],"sources":["Tenancy.tsx"],"sourcesContent":["import React, { useMemo, useCallback, Fragment, useState } from \"react\";\nimport { default as localStorage } from \"store\";\nimport { plugins } from \"@webiny/plugins\";\nimport { TenantHeaderLinkPlugin } from \"@webiny/app/plugins/TenantHeaderLinkPlugin\";\nimport { useWcp } from \"@webiny/app-admin\";\n\nexport interface Tenant {\n id: string;\n name: string;\n}\n\nexport interface TenancyContextValue {\n tenant: string | null;\n setTenant(tenant: string | null): void;\n isMultiTenant: boolean;\n}\n\ninterface TenancyProviderProps {\n children: React.ReactNode;\n}\n\nexport const TenancyContext = React.createContext<TenancyContextValue>({\n tenant: null,\n setTenant: () => {\n return void 0;\n },\n isMultiTenant: false\n});\n\nconst LOCAL_STORAGE_KEY = \"webiny_tenant\";\n\nfunction loadState(): string | null {\n return localStorage.get(LOCAL_STORAGE_KEY) || null;\n}\n\nfunction storeState(state: string) {\n localStorage.set(LOCAL_STORAGE_KEY, state);\n}\n\nconst getInitialTenant = (): string | null => {\n // Check if `tenantId` query parameter is set. If it is, it takes precedence over any other source.\n const searchParams = new URLSearchParams(location.search);\n const tenantId = searchParams.get(\"tenantId\");\n if (tenantId) {\n storeState(tenantId);\n }\n\n const currentTenant = loadState() || \"root\";\n plugins.register(new TenantHeaderLinkPlugin(currentTenant));\n return currentTenant;\n};\n\nconst goToDashboard = () => {\n const url = new URL(window.location.toString());\n url.search = \"\";\n url.pathname = \"/\";\n window.location.href = url.toString();\n};\n\nexport const TenancyProvider = (props: TenancyProviderProps) => {\n const [currentTenant, setTenant] = useState(getInitialTenant);\n const wcp = useWcp();\n\n const changeTenant = useCallback(\n (tenant: string): void => {\n if (!tenant) {\n localStorage.remove(LOCAL_STORAGE_KEY);\n\n goToDashboard();\n }\n\n if (!currentTenant) {\n plugins.register(new TenantHeaderLinkPlugin(tenant));\n setTenant(tenant);\n storeState(tenant);\n return;\n }\n\n storeState(tenant);\n goToDashboard();\n },\n [currentTenant]\n );\n\n const value = useMemo<TenancyContextValue>(\n () => ({\n tenant: currentTenant,\n setTenant: changeTenant,\n isMultiTenant: wcp.canUseFeature(\"multiTenancy\")\n }),\n [currentTenant]\n );\n\n return (\n <TenancyContext.Provider value={value}>\n <Fragment>{props.children}</Fragment>\n </TenancyContext.Provider>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
package/hooks/useTenancy.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { TenancyContextValue } from "../contexts/Tenancy";
|
|
1
|
+
import type { TenancyContextValue } from "../contexts/Tenancy";
|
|
2
2
|
export declare function useTenancy(): TenancyContextValue;
|
package/hooks/useTenancy.js
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
});
|
|
6
|
-
exports.useTenancy = useTenancy;
|
|
7
|
-
var _react = require("react");
|
|
8
|
-
var _Tenancy = require("../contexts/Tenancy");
|
|
9
|
-
function useTenancy() {
|
|
10
|
-
return (0, _react.useContext)(_Tenancy.TenancyContext);
|
|
1
|
+
import { useContext } from "react";
|
|
2
|
+
import { TenancyContext } from "../contexts/Tenancy";
|
|
3
|
+
export function useTenancy() {
|
|
4
|
+
return useContext(TenancyContext);
|
|
11
5
|
}
|
|
12
6
|
|
|
13
7
|
//# sourceMappingURL=useTenancy.js.map
|
package/hooks/useTenancy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["useContext","TenancyContext","useTenancy"],"sources":["useTenancy.ts"],"sourcesContent":["import { useContext } from \"react\";\nimport type { TenancyContextValue } from \"~/contexts/Tenancy\";\nimport { TenancyContext } from \"~/contexts/Tenancy\";\n\nexport function useTenancy() {\n return useContext<TenancyContextValue>(TenancyContext);\n}\n"],"mappings":"AAAA,SAASA,UAAU,QAAQ,OAAO;AAElC,SAASC,cAAc;AAEvB,OAAO,SAASC,UAAUA,CAAA,EAAG;EACzB,OAAOF,UAAU,CAAsBC,cAAc,CAAC;AAC1D","ignoreList":[]}
|
package/index.js
CHANGED
|
@@ -1,64 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var _exportNames = {
|
|
8
|
-
plugins: true
|
|
9
|
-
};
|
|
10
|
-
exports.plugins = void 0;
|
|
11
|
-
var _installation = _interopRequireDefault(require("./plugins/installation"));
|
|
12
|
-
var _Tenancy = require("./contexts/Tenancy");
|
|
13
|
-
Object.keys(_Tenancy).forEach(function (key) {
|
|
14
|
-
if (key === "default" || key === "__esModule") return;
|
|
15
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
16
|
-
if (key in exports && exports[key] === _Tenancy[key]) return;
|
|
17
|
-
Object.defineProperty(exports, key, {
|
|
18
|
-
enumerable: true,
|
|
19
|
-
get: function get() {
|
|
20
|
-
return _Tenancy[key];
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
});
|
|
24
|
-
var _useTenancy = require("./hooks/useTenancy");
|
|
25
|
-
Object.keys(_useTenancy).forEach(function (key) {
|
|
26
|
-
if (key === "default" || key === "__esModule") return;
|
|
27
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
28
|
-
if (key in exports && exports[key] === _useTenancy[key]) return;
|
|
29
|
-
Object.defineProperty(exports, key, {
|
|
30
|
-
enumerable: true,
|
|
31
|
-
get: function get() {
|
|
32
|
-
return _useTenancy[key];
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
var _withTenant = require("./withTenant");
|
|
37
|
-
Object.keys(_withTenant).forEach(function (key) {
|
|
38
|
-
if (key === "default" || key === "__esModule") return;
|
|
39
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
40
|
-
if (key in exports && exports[key] === _withTenant[key]) return;
|
|
41
|
-
Object.defineProperty(exports, key, {
|
|
42
|
-
enumerable: true,
|
|
43
|
-
get: function get() {
|
|
44
|
-
return _withTenant[key];
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
});
|
|
48
|
-
var _Tenancy2 = require("./Tenancy");
|
|
49
|
-
Object.keys(_Tenancy2).forEach(function (key) {
|
|
50
|
-
if (key === "default" || key === "__esModule") return;
|
|
51
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
52
|
-
if (key in exports && exports[key] === _Tenancy2[key]) return;
|
|
53
|
-
Object.defineProperty(exports, key, {
|
|
54
|
-
enumerable: true,
|
|
55
|
-
get: function get() {
|
|
56
|
-
return _Tenancy2[key];
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
var plugins = exports.plugins = function plugins() {
|
|
61
|
-
return [_installation.default];
|
|
62
|
-
};
|
|
1
|
+
import installation from "./plugins/installation";
|
|
2
|
+
export * from "./contexts/Tenancy";
|
|
3
|
+
export * from "./hooks/useTenancy";
|
|
4
|
+
export * from "./withTenant";
|
|
5
|
+
export * from "./Tenancy";
|
|
6
|
+
export const plugins = () => [installation];
|
|
63
7
|
|
|
64
8
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["installation","plugins"],"sources":["index.ts"],"sourcesContent":["import installation from \"~/plugins/installation\";\nexport * from \"./contexts/Tenancy\";\nexport * from \"./hooks/useTenancy\";\nexport * from \"./withTenant\";\nexport * from \"./Tenancy\";\n\nexport const plugins = () => [installation];\n"],"mappings":"AAAA,OAAOA,YAAY;AACnB;AACA;AACA;AACA;AAEA,OAAO,MAAMC,OAAO,GAAGA,CAAA,KAAM,CAACD,YAAY,CAAC","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/app-tenancy",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0-alpha.1",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
"@apollo/react-hooks": "3.1.5",
|
|
17
17
|
"@emotion/styled": "11.10.6",
|
|
18
18
|
"@types/react": "18.2.79",
|
|
19
|
-
"@webiny/app": "
|
|
20
|
-
"@webiny/app-admin": "
|
|
21
|
-
"@webiny/plugins": "
|
|
22
|
-
"@webiny/ui": "
|
|
19
|
+
"@webiny/app": "6.0.0-alpha.1",
|
|
20
|
+
"@webiny/app-admin": "6.0.0-alpha.1",
|
|
21
|
+
"@webiny/plugins": "6.0.0-alpha.1",
|
|
22
|
+
"@webiny/ui": "6.0.0-alpha.1",
|
|
23
23
|
"apollo-client": "2.6.10",
|
|
24
24
|
"graphql-tag": "2.12.6",
|
|
25
25
|
"react": "18.2.0",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@emotion/babel-plugin": "11.11.0",
|
|
31
|
-
"@webiny/project-utils": "
|
|
31
|
+
"@webiny/project-utils": "6.0.0-alpha.1",
|
|
32
32
|
"rimraf": "6.0.1",
|
|
33
33
|
"typescript": "5.3.3"
|
|
34
34
|
},
|
|
@@ -40,5 +40,5 @@
|
|
|
40
40
|
"build": "node ../cli/bin.js run build",
|
|
41
41
|
"watch": "node ../cli/bin.js run watch"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "9bd236cf5e689f209a11bec089207dcc2d41a53c"
|
|
44
44
|
}
|
package/plugins/installation.js
CHANGED
|
@@ -1,23 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
-
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
|
-
var _base = _interopRequireDefault(require("@emotion/styled/base"));
|
|
12
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
-
var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
|
|
14
|
-
var _reactHooks = require("@apollo/react-hooks");
|
|
15
|
-
var _Alert = require("@webiny/ui/Alert");
|
|
16
|
-
var _Progress = require("@webiny/ui/Progress");
|
|
17
|
-
var _SimpleForm = require("@webiny/app-admin/components/SimpleForm");
|
|
18
|
-
var _templateObject, _templateObject2;
|
|
1
|
+
import _styled from "@emotion/styled/base";
|
|
19
2
|
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
20
|
-
|
|
3
|
+
import React, { useState, useEffect } from "react";
|
|
4
|
+
import gql from "graphql-tag";
|
|
5
|
+
import { useApolloClient } from "@apollo/react-hooks";
|
|
6
|
+
import { Alert } from "@webiny/ui/Alert";
|
|
7
|
+
import { CircularProgress } from "@webiny/ui/Progress";
|
|
8
|
+
import { SimpleForm, SimpleFormContent } from "@webiny/app-admin/components/SimpleForm";
|
|
9
|
+
const SimpleFormPlaceholder = /*#__PURE__*/_styled("div", process.env.NODE_ENV === "production" ? {
|
|
21
10
|
target: "ewob5260"
|
|
22
11
|
} : {
|
|
23
12
|
target: "ewob5260",
|
|
@@ -28,24 +17,43 @@ var SimpleFormPlaceholder = /*#__PURE__*/(0, _base.default)("div", process.env.N
|
|
|
28
17
|
} : {
|
|
29
18
|
name: "u16u3o",
|
|
30
19
|
styles: "min-height:300px;min-width:400px",
|
|
31
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
20
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluc3RhbGxhdGlvbi50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUzhCIiwiZmlsZSI6Imluc3RhbGxhdGlvbi50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGdxbCBmcm9tIFwiZ3JhcGhxbC10YWdcIjtcbmltcG9ydCB7IHVzZUFwb2xsb0NsaWVudCB9IGZyb20gXCJAYXBvbGxvL3JlYWN0LWhvb2tzXCI7XG5pbXBvcnQgeyBBbGVydCB9IGZyb20gXCJAd2ViaW55L3VpL0FsZXJ0XCI7XG5pbXBvcnQgeyBDaXJjdWxhclByb2dyZXNzIH0gZnJvbSBcIkB3ZWJpbnkvdWkvUHJvZ3Jlc3NcIjtcbmltcG9ydCB7IFNpbXBsZUZvcm0sIFNpbXBsZUZvcm1Db250ZW50IH0gZnJvbSBcIkB3ZWJpbnkvYXBwLWFkbWluL2NvbXBvbmVudHMvU2ltcGxlRm9ybVwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IEFkbWluSW5zdGFsbGF0aW9uUGx1Z2luIH0gZnJvbSBcIkB3ZWJpbnkvYXBwLWFkbWluL3R5cGVzXCI7XG5cbmNvbnN0IFNpbXBsZUZvcm1QbGFjZWhvbGRlciA9IHN0eWxlZC5kaXYoe1xuICAgIG1pbkhlaWdodDogMzAwLFxuICAgIG1pbldpZHRoOiA0MDBcbn0pO1xuXG5jb25zdCBJU19JTlNUQUxMRUQgPSBncWxgXG4gICAgcXVlcnkgSXNUZW5hbmN5SW5zdGFsbGVkIHtcbiAgICAgICAgdGVuYW5jeSB7XG4gICAgICAgICAgICB2ZXJzaW9uXG4gICAgICAgIH1cbiAgICB9XG5gO1xuXG5jb25zdCBJTlNUQUxMID0gZ3FsYFxuICAgIG11dGF0aW9uIEluc3RhbGxUZW5hbmN5IHtcbiAgICAgICAgdGVuYW5jeSB7XG4gICAgICAgICAgICBpbnN0YWxsIHtcbiAgICAgICAgICAgICAgICBkYXRhXG4gICAgICAgICAgICAgICAgZXJyb3Ige1xuICAgICAgICAgICAgICAgICAgICBjb2RlXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5gO1xuXG5pbnRlcmZhY2UgVGVuYW5jeUluc3RhbGxlclByb3BzIHtcbiAgICBvbkluc3RhbGxlZDogKCkgPT4gUHJvbWlzZTx2b2lkPjtcbn1cbmNvbnN0IFRlbmFuY3lJbnN0YWxsZXIgPSAoeyBvbkluc3RhbGxlZCB9OiBUZW5hbmN5SW5zdGFsbGVyUHJvcHMpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSB1c2VBcG9sbG9DbGllbnQoKTtcbiAgICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlKG51bGwpO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgY2xpZW50Lm11dGF0ZSh7IG11dGF0aW9uOiBJTlNUQUxMIH0pLnRoZW4oKHsgZGF0YSB9KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGVycm9yIH0gPSBkYXRhLnRlbmFuY3kuaW5zdGFsbDtcbiAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHNldEVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gSnVzdCBzbyB0aGUgdXNlciBzZWVzIHRoZSBhY3R1YWwgbWVzc2FnZS5cbiAgICAgICAgICAgIHNldFRpbWVvdXQob25JbnN0YWxsZWQsIDMwMDApO1xuICAgICAgICB9KTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBsYWJlbCA9IGVycm9yID8gKFxuICAgICAgICA8QWxlcnQgdGl0bGU9e2BTb21ldGhpbmcgd2VudCB3cm9uZ2B9IHR5cGU9e1wiZGFuZ2VyXCJ9PlxuICAgICAgICAgICAge2Vycm9yfVxuICAgICAgICA8L0FsZXJ0PlxuICAgICkgOiAoXG4gICAgICAgIGBJbnN0YWxsaW5nIFRlbmFuY3kuLi5gXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxTaW1wbGVGb3JtPlxuICAgICAgICAgICAgPENpcmN1bGFyUHJvZ3Jlc3MgbGFiZWw9e2xhYmVsfSAvPlxuICAgICAgICAgICAgPFNpbXBsZUZvcm1Db250ZW50PlxuICAgICAgICAgICAgICAgIDxTaW1wbGVGb3JtUGxhY2Vob2xkZXIgLz5cbiAgICAgICAgICAgIDwvU2ltcGxlRm9ybUNvbnRlbnQ+XG4gICAgICAgIDwvU2ltcGxlRm9ybT5cbiAgICApO1xufTtcblxuY29uc3QgcGx1Z2luOiBBZG1pbkluc3RhbGxhdGlvblBsdWdpbiA9IHtcbiAgICBuYW1lOiBcImFkbWluLWluc3RhbGxhdGlvbi10ZW5hbmN5XCIsXG4gICAgdHlwZTogXCJhZG1pbi1pbnN0YWxsYXRpb25cIixcbiAgICB0aXRsZTogYFRlbmFuY3lgLFxuICAgIGRlcGVuZGVuY2llczogW10sXG4gICAgc2VjdXJlOiBmYWxzZSxcbiAgICBhc3luYyBnZXRJbnN0YWxsZWRWZXJzaW9uKHsgY2xpZW50IH0pIHtcbiAgICAgICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCBjbGllbnQucXVlcnkoeyBxdWVyeTogSVNfSU5TVEFMTEVEIH0pO1xuICAgICAgICByZXR1cm4gZGF0YS50ZW5hbmN5LnZlcnNpb247XG4gICAgfSxcbiAgICByZW5kZXIoeyBvbkluc3RhbGxlZCB9KSB7XG4gICAgICAgIHJldHVybiA8VGVuYW5jeUluc3RhbGxlciBvbkluc3RhbGxlZD17b25JbnN0YWxsZWR9IC8+O1xuICAgIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IHBsdWdpbjtcbiJdfQ== */",
|
|
32
21
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
33
22
|
});
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
23
|
+
const IS_INSTALLED = gql`
|
|
24
|
+
query IsTenancyInstalled {
|
|
25
|
+
tenancy {
|
|
26
|
+
version
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
`;
|
|
30
|
+
const INSTALL = gql`
|
|
31
|
+
mutation InstallTenancy {
|
|
32
|
+
tenancy {
|
|
33
|
+
install {
|
|
34
|
+
data
|
|
35
|
+
error {
|
|
36
|
+
code
|
|
37
|
+
message
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
`;
|
|
43
|
+
const TenancyInstaller = ({
|
|
44
|
+
onInstalled
|
|
45
|
+
}) => {
|
|
46
|
+
const client = useApolloClient();
|
|
47
|
+
const [error, setError] = useState(null);
|
|
48
|
+
useEffect(() => {
|
|
44
49
|
client.mutate({
|
|
45
50
|
mutation: INSTALL
|
|
46
|
-
}).then(
|
|
47
|
-
|
|
48
|
-
|
|
51
|
+
}).then(({
|
|
52
|
+
data
|
|
53
|
+
}) => {
|
|
54
|
+
const {
|
|
55
|
+
error
|
|
56
|
+
} = data.tenancy.install;
|
|
49
57
|
if (error) {
|
|
50
58
|
setError(error.message);
|
|
51
59
|
return;
|
|
@@ -55,35 +63,38 @@ var TenancyInstaller = function TenancyInstaller(_ref) {
|
|
|
55
63
|
setTimeout(onInstalled, 3000);
|
|
56
64
|
});
|
|
57
65
|
}, []);
|
|
58
|
-
|
|
59
|
-
title:
|
|
66
|
+
const label = error ? /*#__PURE__*/React.createElement(Alert, {
|
|
67
|
+
title: `Something went wrong`,
|
|
60
68
|
type: "danger"
|
|
61
|
-
}, error) :
|
|
62
|
-
return /*#__PURE__*/
|
|
69
|
+
}, error) : `Installing Tenancy...`;
|
|
70
|
+
return /*#__PURE__*/React.createElement(SimpleForm, null, /*#__PURE__*/React.createElement(CircularProgress, {
|
|
63
71
|
label: label
|
|
64
|
-
}), /*#__PURE__*/
|
|
72
|
+
}), /*#__PURE__*/React.createElement(SimpleFormContent, null, /*#__PURE__*/React.createElement(SimpleFormPlaceholder, null)));
|
|
65
73
|
};
|
|
66
|
-
|
|
74
|
+
const plugin = {
|
|
67
75
|
name: "admin-installation-tenancy",
|
|
68
76
|
type: "admin-installation",
|
|
69
|
-
title:
|
|
77
|
+
title: `Tenancy`,
|
|
70
78
|
dependencies: [],
|
|
71
79
|
secure: false,
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
80
|
+
async getInstalledVersion({
|
|
81
|
+
client
|
|
82
|
+
}) {
|
|
83
|
+
const {
|
|
84
|
+
data
|
|
85
|
+
} = await client.query({
|
|
86
|
+
query: IS_INSTALLED
|
|
87
|
+
});
|
|
78
88
|
return data.tenancy.version;
|
|
79
89
|
},
|
|
80
|
-
render
|
|
81
|
-
|
|
82
|
-
|
|
90
|
+
render({
|
|
91
|
+
onInstalled
|
|
92
|
+
}) {
|
|
93
|
+
return /*#__PURE__*/React.createElement(TenancyInstaller, {
|
|
83
94
|
onInstalled: onInstalled
|
|
84
95
|
});
|
|
85
96
|
}
|
|
86
97
|
};
|
|
87
|
-
|
|
98
|
+
export default plugin;
|
|
88
99
|
|
|
89
100
|
//# sourceMappingURL=installation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["React","useState","useEffect","gql","useApolloClient","Alert","CircularProgress","SimpleForm","SimpleFormContent","SimpleFormPlaceholder","_styled","process","env","NODE_ENV","target","label","name","styles","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","IS_INSTALLED","INSTALL","TenancyInstaller","onInstalled","client","error","setError","mutate","mutation","then","data","tenancy","install","message","setTimeout","createElement","title","type","plugin","dependencies","secure","getInstalledVersion","query","version","render"],"sources":["installation.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport gql from \"graphql-tag\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { Alert } from \"@webiny/ui/Alert\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { SimpleForm, SimpleFormContent } from \"@webiny/app-admin/components/SimpleForm\";\nimport styled from \"@emotion/styled\";\nimport type { AdminInstallationPlugin } from \"@webiny/app-admin/types\";\n\nconst SimpleFormPlaceholder = styled.div({\n minHeight: 300,\n minWidth: 400\n});\n\nconst IS_INSTALLED = gql`\n query IsTenancyInstalled {\n tenancy {\n version\n }\n }\n`;\n\nconst INSTALL = gql`\n mutation InstallTenancy {\n tenancy {\n install {\n data\n error {\n code\n message\n }\n }\n }\n }\n`;\n\ninterface TenancyInstallerProps {\n onInstalled: () => Promise<void>;\n}\nconst TenancyInstaller = ({ onInstalled }: TenancyInstallerProps) => {\n const client = useApolloClient();\n const [error, setError] = useState(null);\n\n useEffect(() => {\n client.mutate({ mutation: INSTALL }).then(({ data }) => {\n const { error } = data.tenancy.install;\n if (error) {\n setError(error.message);\n return;\n }\n\n // Just so the user sees the actual message.\n setTimeout(onInstalled, 3000);\n });\n }, []);\n\n const label = error ? (\n <Alert title={`Something went wrong`} type={\"danger\"}>\n {error}\n </Alert>\n ) : (\n `Installing Tenancy...`\n );\n\n return (\n <SimpleForm>\n <CircularProgress label={label} />\n <SimpleFormContent>\n <SimpleFormPlaceholder />\n </SimpleFormContent>\n </SimpleForm>\n );\n};\n\nconst plugin: AdminInstallationPlugin = {\n name: \"admin-installation-tenancy\",\n type: \"admin-installation\",\n title: `Tenancy`,\n dependencies: [],\n secure: false,\n async getInstalledVersion({ client }) {\n const { data } = await client.query({ query: IS_INSTALLED });\n return data.tenancy.version;\n },\n render({ onInstalled }) {\n return <TenancyInstaller onInstalled={onInstalled} />;\n }\n};\n\nexport default plugin;\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,QAAQ,OAAO;AAClD,OAAOC,GAAG,MAAM,aAAa;AAC7B,SAASC,eAAe,QAAQ,qBAAqB;AACrD,SAASC,KAAK,QAAQ,kBAAkB;AACxC,SAASC,gBAAgB,QAAQ,qBAAqB;AACtD,SAASC,UAAU,EAAEC,iBAAiB,QAAQ,yCAAyC;AAIvF,MAAMC,qBAAqB,gBAAGC,OAAA,QAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,GAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAC;AAAA,CAG7B,CAAC;AAEF,MAAMC,YAAY,GAAGlB,GAAG;AACxB;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,MAAMmB,OAAO,GAAGnB,GAAG;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAKD,MAAMoB,gBAAgB,GAAGA,CAAC;EAAEC;AAAmC,CAAC,KAAK;EACjE,MAAMC,MAAM,GAAGrB,eAAe,CAAC,CAAC;EAChC,MAAM,CAACsB,KAAK,EAAEC,QAAQ,CAAC,GAAG1B,QAAQ,CAAC,IAAI,CAAC;EAExCC,SAAS,CAAC,MAAM;IACZuB,MAAM,CAACG,MAAM,CAAC;MAAEC,QAAQ,EAAEP;IAAQ,CAAC,CAAC,CAACQ,IAAI,CAAC,CAAC;MAAEC;IAAK,CAAC,KAAK;MACpD,MAAM;QAAEL;MAAM,CAAC,GAAGK,IAAI,CAACC,OAAO,CAACC,OAAO;MACtC,IAAIP,KAAK,EAAE;QACPC,QAAQ,CAACD,KAAK,CAACQ,OAAO,CAAC;QACvB;MACJ;;MAEA;MACAC,UAAU,CAACX,WAAW,EAAE,IAAI,CAAC;IACjC,CAAC,CAAC;EACN,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMT,KAAK,GAAGW,KAAK,gBACf1B,KAAA,CAAAoC,aAAA,CAAC/B,KAAK;IAACgC,KAAK,EAAE,sBAAuB;IAACC,IAAI,EAAE;EAAS,GAChDZ,KACE,CAAC,GAER,uBACH;EAED,oBACI1B,KAAA,CAAAoC,aAAA,CAAC7B,UAAU,qBACPP,KAAA,CAAAoC,aAAA,CAAC9B,gBAAgB;IAACS,KAAK,EAAEA;EAAM,CAAE,CAAC,eAClCf,KAAA,CAAAoC,aAAA,CAAC5B,iBAAiB,qBACdR,KAAA,CAAAoC,aAAA,CAAC3B,qBAAqB,MAAE,CACT,CACX,CAAC;AAErB,CAAC;AAED,MAAM8B,MAA+B,GAAG;EACpCvB,IAAI,EAAE,4BAA4B;EAClCsB,IAAI,EAAE,oBAAoB;EAC1BD,KAAK,EAAE,SAAS;EAChBG,YAAY,EAAE,EAAE;EAChBC,MAAM,EAAE,KAAK;EACb,MAAMC,mBAAmBA,CAAC;IAAEjB;EAAO,CAAC,EAAE;IAClC,MAAM;MAAEM;IAAK,CAAC,GAAG,MAAMN,MAAM,CAACkB,KAAK,CAAC;MAAEA,KAAK,EAAEtB;IAAa,CAAC,CAAC;IAC5D,OAAOU,IAAI,CAACC,OAAO,CAACY,OAAO;EAC/B,CAAC;EACDC,MAAMA,CAAC;IAAErB;EAAY,CAAC,EAAE;IACpB,oBAAOxB,KAAA,CAAAoC,aAAA,CAACb,gBAAgB;MAACC,WAAW,EAAEA;IAAY,CAAE,CAAC;EACzD;AACJ,CAAC;AAED,eAAee,MAAM","ignoreList":[]}
|
package/withTenant.d.ts
CHANGED
package/withTenant.js
CHANGED
|
@@ -1,31 +1,40 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { gql } from "graphql-tag";
|
|
3
|
+
import { useTenancy } from "./hooks/useTenancy";
|
|
4
|
+
export const GET_DEFAULT_TENANT = gql`
|
|
5
|
+
query GetDefaultTenant {
|
|
6
|
+
tenancy {
|
|
7
|
+
getDefaultTenant {
|
|
8
|
+
data {
|
|
9
|
+
id
|
|
10
|
+
name
|
|
11
|
+
description
|
|
12
|
+
}
|
|
13
|
+
error {
|
|
14
|
+
code
|
|
15
|
+
message
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
`;
|
|
21
|
+
export const withTenant = Component => {
|
|
22
|
+
return function WithTenant({
|
|
23
|
+
getIdentityData,
|
|
24
|
+
children
|
|
25
|
+
}) {
|
|
26
|
+
const {
|
|
27
|
+
tenant,
|
|
28
|
+
setTenant,
|
|
29
|
+
isMultiTenant
|
|
30
|
+
} = useTenancy();
|
|
31
|
+
const getIdentityWithTenant = async params => {
|
|
23
32
|
if (tenant || !isMultiTenant) {
|
|
24
33
|
return getIdentityData(params);
|
|
25
34
|
}
|
|
26
35
|
|
|
27
36
|
// Get default tenant
|
|
28
|
-
|
|
37
|
+
const response = await params.client.query({
|
|
29
38
|
query: GET_DEFAULT_TENANT,
|
|
30
39
|
context: {
|
|
31
40
|
headers: {
|
|
@@ -33,11 +42,11 @@ var withTenant = exports.withTenant = function withTenant(Component) {
|
|
|
33
42
|
}
|
|
34
43
|
}
|
|
35
44
|
});
|
|
36
|
-
|
|
45
|
+
const defaultTenantId = response.data.tenancy.getDefaultTenant.data.id;
|
|
37
46
|
setTenant(defaultTenantId);
|
|
38
47
|
return getIdentityData(params);
|
|
39
48
|
};
|
|
40
|
-
return /*#__PURE__*/
|
|
49
|
+
return /*#__PURE__*/React.createElement(Component, {
|
|
41
50
|
getIdentityData: getIdentityWithTenant
|
|
42
51
|
}, children);
|
|
43
52
|
};
|
package/withTenant.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["React","gql","useTenancy","GET_DEFAULT_TENANT","withTenant","Component","WithTenant","getIdentityData","children","tenant","setTenant","isMultiTenant","getIdentityWithTenant","params","response","client","query","context","headers","defaultTenantId","data","tenancy","getDefaultTenant","id","createElement"],"sources":["withTenant.tsx"],"sourcesContent":["import React from \"react\";\nimport { gql } from \"graphql-tag\";\nimport { useTenancy } from \"~/hooks/useTenancy\";\nimport type ApolloClient from \"apollo-client\";\n\nexport const GET_DEFAULT_TENANT = gql`\n query GetDefaultTenant {\n tenancy {\n getDefaultTenant {\n data {\n id\n name\n description\n }\n error {\n code\n message\n }\n }\n }\n }\n`;\n\ninterface GetIdentityWithTenantParams {\n client: ApolloClient<any>;\n}\ninterface WithTenantProps {\n getIdentityData: (params: GetIdentityWithTenantParams) => Promise<Record<string, string>>;\n children: React.ReactNode;\n}\nexport const withTenant = (Component: React.ComponentType<WithTenantProps>) => {\n return function WithTenant({ getIdentityData, children }: WithTenantProps) {\n const { tenant, setTenant, isMultiTenant } = useTenancy();\n\n const getIdentityWithTenant = async (params: GetIdentityWithTenantParams) => {\n if (tenant || !isMultiTenant) {\n return getIdentityData(params);\n }\n\n // Get default tenant\n const response = await params.client.query({\n query: GET_DEFAULT_TENANT,\n context: { headers: { \"x-tenant\": tenant || \"root\" } }\n });\n\n const defaultTenantId = response.data.tenancy.getDefaultTenant.data.id;\n\n setTenant(defaultTenantId);\n\n return getIdentityData(params);\n };\n\n return <Component getIdentityData={getIdentityWithTenant}>{children}</Component>;\n };\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,GAAG,QAAQ,aAAa;AACjC,SAASC,UAAU;AAGnB,OAAO,MAAMC,kBAAkB,GAAGF,GAAG;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AASD,OAAO,MAAMG,UAAU,GAAIC,SAA+C,IAAK;EAC3E,OAAO,SAASC,UAAUA,CAAC;IAAEC,eAAe;IAAEC;EAA0B,CAAC,EAAE;IACvE,MAAM;MAAEC,MAAM;MAAEC,SAAS;MAAEC;IAAc,CAAC,GAAGT,UAAU,CAAC,CAAC;IAEzD,MAAMU,qBAAqB,GAAG,MAAOC,MAAmC,IAAK;MACzE,IAAIJ,MAAM,IAAI,CAACE,aAAa,EAAE;QAC1B,OAAOJ,eAAe,CAACM,MAAM,CAAC;MAClC;;MAEA;MACA,MAAMC,QAAQ,GAAG,MAAMD,MAAM,CAACE,MAAM,CAACC,KAAK,CAAC;QACvCA,KAAK,EAAEb,kBAAkB;QACzBc,OAAO,EAAE;UAAEC,OAAO,EAAE;YAAE,UAAU,EAAET,MAAM,IAAI;UAAO;QAAE;MACzD,CAAC,CAAC;MAEF,MAAMU,eAAe,GAAGL,QAAQ,CAACM,IAAI,CAACC,OAAO,CAACC,gBAAgB,CAACF,IAAI,CAACG,EAAE;MAEtEb,SAAS,CAACS,eAAe,CAAC;MAE1B,OAAOZ,eAAe,CAACM,MAAM,CAAC;IAClC,CAAC;IAED,oBAAOb,KAAA,CAAAwB,aAAA,CAACnB,SAAS;MAACE,eAAe,EAAEK;IAAsB,GAAEJ,QAAoB,CAAC;EACpF,CAAC;AACL,CAAC","ignoreList":[]}
|