@webiny/app-tenancy 5.39.0-beta.1 → 5.39.0-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/Tenancy.d.ts +2 -2
- package/Tenancy.js.map +1 -1
- package/contexts/Tenancy.d.ts +5 -1
- package/contexts/Tenancy.js +8 -2
- package/contexts/Tenancy.js.map +1 -1
- package/package.json +8 -8
- package/plugins/installation.js +7 -23
- package/plugins/installation.js.map +1 -1
- package/withTenant.d.ts +1 -1
- package/withTenant.js +17 -37
- package/withTenant.js.map +1 -1
package/Tenancy.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
export declare const TenancyExtension:
|
|
3
|
-
export declare const Tenancy: React.
|
|
2
|
+
export declare const TenancyExtension: () => JSX.Element;
|
|
3
|
+
export declare const Tenancy: React.MemoExoticComponent<() => JSX.Element>;
|
package/Tenancy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_plugins","_appAdmin","_installation","_interopRequireDefault","_Tenancy","TenancyProviderHOC","Component","TenancyProvider","_ref","children","default","createElement","TenancyExtension","plugins","register","installation","Provider","hoc","exports","Tenancy","memo"],"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\nconst TenancyProviderHOC = (Component: React.
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_plugins","_appAdmin","_installation","_interopRequireDefault","_Tenancy","TenancyProviderHOC","Component","TenancyProvider","_ref","children","default","createElement","TenancyExtension","plugins","register","installation","Provider","hoc","exports","Tenancy","memo"],"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) => {\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,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AAMA,IAAMM,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,SAA8B,EAAK;EAC3D,OAAO,SAASC,eAAeA,CAAAC,IAAA,EAAwC;IAAA,IAArCC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IACtC,oBACIZ,MAAA,CAAAa,OAAA,CAAAC,aAAA,CAACP,QAAA,CAAAG,eAAe,qBACZV,MAAA,CAAAa,OAAA,CAAAC,aAAA,CAACL,SAAS,QAAEG,QAAoB,CACnB,CAAC;EAE1B,CAAC;AACL,CAAC;AAEM,IAAMG,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAA,EAAS;EAClCC,gBAAO,CAACC,QAAQ,CAACC,qBAAY,CAAC;EAE9B,oBAAOlB,MAAA,CAAAa,OAAA,CAAAC,aAAA,CAACV,SAAA,CAAAe,QAAQ;IAACC,GAAG,EAAEZ;EAAmB,CAAE,CAAC;AAChD,CAAC;AAACa,OAAA,CAAAN,gBAAA,GAAAA,gBAAA;AAEK,IAAMO,OAAO,gBAAG,IAAAC,WAAI,EAACR,gBAAgB,CAAC;AAACM,OAAA,CAAAC,OAAA,GAAAA,OAAA"}
|
package/contexts/Tenancy.d.ts
CHANGED
|
@@ -8,5 +8,9 @@ export interface TenancyContextValue {
|
|
|
8
8
|
setTenant(tenant: string | null): void;
|
|
9
9
|
isMultiTenant: boolean;
|
|
10
10
|
}
|
|
11
|
+
interface TenancyProviderProps {
|
|
12
|
+
children: React.ReactNode;
|
|
13
|
+
}
|
|
11
14
|
export declare const TenancyContext: React.Context<TenancyContextValue>;
|
|
12
|
-
export declare const TenancyProvider:
|
|
15
|
+
export declare const TenancyProvider: (props: TenancyProviderProps) => JSX.Element;
|
|
16
|
+
export {};
|
package/contexts/Tenancy.js
CHANGED
|
@@ -38,6 +38,12 @@ var getInitialTenant = function getInitialTenant() {
|
|
|
38
38
|
_plugins.plugins.register(new _TenantHeaderLinkPlugin.TenantHeaderLinkPlugin(currentTenant));
|
|
39
39
|
return currentTenant;
|
|
40
40
|
};
|
|
41
|
+
var goToDashboard = function goToDashboard() {
|
|
42
|
+
var url = new URL(window.location.toString());
|
|
43
|
+
url.search = "";
|
|
44
|
+
url.pathname = "/";
|
|
45
|
+
window.location.href = url.toString();
|
|
46
|
+
};
|
|
41
47
|
var TenancyProvider = function TenancyProvider(props) {
|
|
42
48
|
var _useState = (0, _react.useState)(getInitialTenant),
|
|
43
49
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
@@ -48,7 +54,7 @@ var TenancyProvider = function TenancyProvider(props) {
|
|
|
48
54
|
var changeTenant = (0, _react.useCallback)(function (tenant) {
|
|
49
55
|
if (!tenant) {
|
|
50
56
|
_store.default.remove(LOCAL_STORAGE_KEY);
|
|
51
|
-
|
|
57
|
+
goToDashboard();
|
|
52
58
|
}
|
|
53
59
|
if (!currentTenant) {
|
|
54
60
|
_plugins.plugins.register(new _TenantHeaderLinkPlugin.TenantHeaderLinkPlugin(tenant));
|
|
@@ -57,7 +63,7 @@ var TenancyProvider = function TenancyProvider(props) {
|
|
|
57
63
|
return;
|
|
58
64
|
}
|
|
59
65
|
storeState(tenant);
|
|
60
|
-
|
|
66
|
+
goToDashboard();
|
|
61
67
|
}, [currentTenant]);
|
|
62
68
|
var value = (0, _react.useMemo)(function () {
|
|
63
69
|
return {
|
package/contexts/Tenancy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_store","_interopRequireDefault","_plugins","_TenantHeaderLinkPlugin","_appAdmin","TenancyContext","React","createContext","tenant","setTenant","isMultiTenant","exports","LOCAL_STORAGE_KEY","loadState","localStorage","get","storeState","state","set","getInitialTenant","searchParams","URLSearchParams","location","search","tenantId","currentTenant","plugins","register","TenantHeaderLinkPlugin","TenancyProvider","props","_useState","useState","_useState2","_slicedToArray2","default","_useWcp","useWcp","canUseFeature","changeTenant","useCallback","remove","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_store","_interopRequireDefault","_plugins","_TenantHeaderLinkPlugin","_appAdmin","TenancyContext","React","createContext","tenant","setTenant","isMultiTenant","exports","LOCAL_STORAGE_KEY","loadState","localStorage","get","storeState","state","set","getInitialTenant","searchParams","URLSearchParams","location","search","tenantId","currentTenant","plugins","register","TenantHeaderLinkPlugin","goToDashboard","url","URL","window","toString","pathname","href","TenancyProvider","props","_useState","useState","_useState2","_slicedToArray2","default","_useWcp","useWcp","canUseFeature","changeTenant","useCallback","remove","value","useMemo","createElement","Provider","Fragment","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 { canUseFeature } = 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: 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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/app-tenancy",
|
|
3
|
-
"version": "5.39.0-beta.
|
|
3
|
+
"version": "5.39.0-beta.3",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
"@babel/runtime": "7.22.6",
|
|
18
18
|
"@emotion/styled": "11.10.6",
|
|
19
19
|
"@types/react": "17.0.39",
|
|
20
|
-
"@webiny/app": "5.39.0-beta.
|
|
21
|
-
"@webiny/app-admin": "5.39.0-beta.
|
|
22
|
-
"@webiny/plugins": "5.39.0-beta.
|
|
23
|
-
"@webiny/ui": "5.39.0-beta.
|
|
20
|
+
"@webiny/app": "5.39.0-beta.3",
|
|
21
|
+
"@webiny/app-admin": "5.39.0-beta.3",
|
|
22
|
+
"@webiny/plugins": "5.39.0-beta.3",
|
|
23
|
+
"@webiny/ui": "5.39.0-beta.3",
|
|
24
24
|
"apollo-client": "2.6.10",
|
|
25
25
|
"graphql-tag": "2.12.6",
|
|
26
26
|
"react": "17.0.2",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"@babel/preset-env": "7.22.7",
|
|
35
35
|
"@babel/preset-react": "7.22.5",
|
|
36
36
|
"@babel/preset-typescript": "7.22.5",
|
|
37
|
-
"@webiny/cli": "5.39.0-beta.
|
|
38
|
-
"@webiny/project-utils": "5.39.0-beta.
|
|
37
|
+
"@webiny/cli": "5.39.0-beta.3",
|
|
38
|
+
"@webiny/project-utils": "5.39.0-beta.3",
|
|
39
39
|
"babel-plugin-emotion": "9.2.11",
|
|
40
40
|
"rimraf": "3.0.2",
|
|
41
41
|
"ttypescript": "1.5.15",
|
|
@@ -49,5 +49,5 @@
|
|
|
49
49
|
"build": "yarn webiny run build",
|
|
50
50
|
"watch": "yarn webiny run watch"
|
|
51
51
|
},
|
|
52
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "3846541fd9c1764e6a8041f0b4208d720eb9c314"
|
|
53
53
|
}
|
package/plugins/installation.js
CHANGED
|
@@ -6,8 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
|
-
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
10
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
12
10
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
13
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
@@ -63,27 +61,13 @@ var plugin = {
|
|
|
63
61
|
title: "Tenancy",
|
|
64
62
|
dependencies: [],
|
|
65
63
|
secure: false,
|
|
66
|
-
getInstalledVersion: function getInstalledVersion(_ref3) {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
_context.next = 3;
|
|
74
|
-
return client.query({
|
|
75
|
-
query: IS_INSTALLED
|
|
76
|
-
});
|
|
77
|
-
case 3:
|
|
78
|
-
_yield$client$query = _context.sent;
|
|
79
|
-
data = _yield$client$query.data;
|
|
80
|
-
return _context.abrupt("return", data.tenancy.version);
|
|
81
|
-
case 6:
|
|
82
|
-
case "end":
|
|
83
|
-
return _context.stop();
|
|
84
|
-
}
|
|
85
|
-
}, _callee);
|
|
86
|
-
}))();
|
|
64
|
+
getInstalledVersion: async function getInstalledVersion(_ref3) {
|
|
65
|
+
var client = _ref3.client;
|
|
66
|
+
var _await$client$query = await client.query({
|
|
67
|
+
query: IS_INSTALLED
|
|
68
|
+
}),
|
|
69
|
+
data = _await$client$query.data;
|
|
70
|
+
return data.tenancy.version;
|
|
87
71
|
},
|
|
88
72
|
render: function render(_ref4) {
|
|
89
73
|
var onInstalled = _ref4.onInstalled;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_graphqlTag","_interopRequireDefault","_reactHooks","_Alert","_Progress","_SimpleForm","_styled","_templateObject","_templateObject2","SimpleFormPlaceholder","styled","target","label","minHeight","minWidth","IS_INSTALLED","gql","_taggedTemplateLiteral2","default","INSTALL","TenancyInstaller","_ref","onInstalled","client","useApolloClient","_useState","useState","_useState2","_slicedToArray2","error","setError","useEffect","mutate","mutation","then","_ref2","data","tenancy","install","message","setTimeout","createElement","Alert","title","type","SimpleForm","CircularProgress","SimpleFormContent","plugin","name","dependencies","secure","getInstalledVersion","_ref3","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_graphqlTag","_interopRequireDefault","_reactHooks","_Alert","_Progress","_SimpleForm","_styled","_templateObject","_templateObject2","SimpleFormPlaceholder","styled","target","label","minHeight","minWidth","IS_INSTALLED","gql","_taggedTemplateLiteral2","default","INSTALL","TenancyInstaller","_ref","onInstalled","client","useApolloClient","_useState","useState","_useState2","_slicedToArray2","error","setError","useEffect","mutate","mutation","then","_ref2","data","tenancy","install","message","setTimeout","createElement","Alert","title","type","SimpleForm","CircularProgress","SimpleFormContent","plugin","name","dependencies","secure","getInstalledVersion","_ref3","_await$client$query","query","version","render","_ref4","_default","exports"],"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 { 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":"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"}
|
package/withTenant.d.ts
CHANGED
|
@@ -8,5 +8,5 @@ interface WithTenantProps {
|
|
|
8
8
|
getIdentityData: (params: GetIdentityWithTenantParams) => Promise<Record<string, string>>;
|
|
9
9
|
children: React.ReactNode;
|
|
10
10
|
}
|
|
11
|
-
export declare const withTenant: (Component: React.
|
|
11
|
+
export declare const withTenant: (Component: React.ComponentType<WithTenantProps>) => ({ getIdentityData, children }: WithTenantProps) => JSX.Element;
|
|
12
12
|
export {};
|
package/withTenant.js
CHANGED
|
@@ -5,8 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.withTenant = exports.GET_DEFAULT_TENANT = void 0;
|
|
8
|
-
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
9
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
8
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
9
|
var _react = _interopRequireDefault(require("react"));
|
|
12
10
|
var _graphqlTag = require("graphql-tag");
|
|
@@ -22,42 +20,24 @@ var withTenant = function withTenant(Component) {
|
|
|
22
20
|
tenant = _useTenancy.tenant,
|
|
23
21
|
setTenant = _useTenancy.setTenant,
|
|
24
22
|
isMultiTenant = _useTenancy.isMultiTenant;
|
|
25
|
-
var getIdentityWithTenant =
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
case 2:
|
|
37
|
-
_context.next = 4;
|
|
38
|
-
return params.client.query({
|
|
39
|
-
query: GET_DEFAULT_TENANT,
|
|
40
|
-
context: {
|
|
41
|
-
headers: {
|
|
42
|
-
"x-tenant": tenant || "root"
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
case 4:
|
|
47
|
-
response = _context.sent;
|
|
48
|
-
defaultTenantId = response.data.tenancy.getDefaultTenant.data.id;
|
|
49
|
-
setTenant(defaultTenantId);
|
|
50
|
-
return _context.abrupt("return", getIdentityData(params));
|
|
51
|
-
case 8:
|
|
52
|
-
case "end":
|
|
53
|
-
return _context.stop();
|
|
23
|
+
var getIdentityWithTenant = async function getIdentityWithTenant(params) {
|
|
24
|
+
if (tenant || !isMultiTenant) {
|
|
25
|
+
return getIdentityData(params);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// Get default tenant
|
|
29
|
+
var response = await params.client.query({
|
|
30
|
+
query: GET_DEFAULT_TENANT,
|
|
31
|
+
context: {
|
|
32
|
+
headers: {
|
|
33
|
+
"x-tenant": tenant || "root"
|
|
54
34
|
}
|
|
55
|
-
}
|
|
56
|
-
})
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
var defaultTenantId = response.data.tenancy.getDefaultTenant.data.id;
|
|
38
|
+
setTenant(defaultTenantId);
|
|
39
|
+
return getIdentityData(params);
|
|
40
|
+
};
|
|
61
41
|
return /*#__PURE__*/_react.default.createElement(Component, {
|
|
62
42
|
getIdentityData: getIdentityWithTenant
|
|
63
43
|
}, children);
|
package/withTenant.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_graphqlTag","_useTenancy2","_templateObject","GET_DEFAULT_TENANT","gql","_taggedTemplateLiteral2","default","exports","withTenant","Component","WithTenant","_ref","getIdentityData","children","_useTenancy","useTenancy","tenant","setTenant","isMultiTenant","getIdentityWithTenant","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_graphqlTag","_useTenancy2","_templateObject","GET_DEFAULT_TENANT","gql","_taggedTemplateLiteral2","default","exports","withTenant","Component","WithTenant","_ref","getIdentityData","children","_useTenancy","useTenancy","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 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,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AAAgD,IAAAG,eAAA;AAGzC,IAAMC,kBAAkB,OAAGC,eAAG,EAAAF,eAAA,KAAAA,eAAA,OAAAG,uBAAA,CAAAC,OAAA,8VAgBpC;AAACC,OAAA,CAAAJ,kBAAA,GAAAA,kBAAA;AASK,IAAMK,UAAU,GAAG,SAAbA,UAAUA,CAAIC,SAA+C,EAAK;EAC3E,OAAO,SAASC,UAAUA,CAAAC,IAAA,EAAiD;IAAA,IAA9CC,eAAe,GAAAD,IAAA,CAAfC,eAAe;MAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAClD,IAAAC,WAAA,GAA6C,IAAAC,uBAAU,EAAC,CAAC;MAAjDC,MAAM,GAAAF,WAAA,CAANE,MAAM;MAAEC,SAAS,GAAAH,WAAA,CAATG,SAAS;MAAEC,aAAa,GAAAJ,WAAA,CAAbI,aAAa;IAExC,IAAMC,qBAAqB,GAAG,eAAxBA,qBAAqBA,CAAUC,MAAmC,EAAK;MACzE,IAAIJ,MAAM,IAAI,CAACE,aAAa,EAAE;QAC1B,OAAON,eAAe,CAACQ,MAAM,CAAC;MAClC;;MAEA;MACA,IAAMC,QAAQ,GAAG,MAAMD,MAAM,CAACE,MAAM,CAACC,KAAK,CAAC;QACvCA,KAAK,EAAEpB,kBAAkB;QACzBqB,OAAO,EAAE;UAAEC,OAAO,EAAE;YAAE,UAAU,EAAET,MAAM,IAAI;UAAO;QAAE;MACzD,CAAC,CAAC;MAEF,IAAMU,eAAe,GAAGL,QAAQ,CAACM,IAAI,CAACC,OAAO,CAACC,gBAAgB,CAACF,IAAI,CAACG,EAAE;MAEtEb,SAAS,CAACS,eAAe,CAAC;MAE1B,OAAOd,eAAe,CAACQ,MAAM,CAAC;IAClC,CAAC;IAED,oBAAOvB,MAAA,CAAAS,OAAA,CAAAyB,aAAA,CAACtB,SAAS;MAACG,eAAe,EAAEO;IAAsB,GAAEN,QAAoB,CAAC;EACpF,CAAC;AACL,CAAC;AAACN,OAAA,CAAAC,UAAA,GAAAA,UAAA"}
|