@webiny/app-tenancy 5.24.0 → 5.25.0-beta.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/Tenancy.js CHANGED
@@ -13,6 +13,12 @@ var TenancyProviderHOC = function TenancyProviderHOC(Component) {
13
13
 
14
14
  export var TenancyExtension = function TenancyExtension() {
15
15
  plugins.register(installation);
16
+ /**
17
+ * TODO @ts-refactor
18
+ * Expects ComponentType
19
+ */
20
+ // @ts-ignore
21
+
16
22
  return /*#__PURE__*/React.createElement(Provider, {
17
23
  hoc: TenancyProviderHOC
18
24
  });
package/Tenancy.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["Tenancy.tsx"],"names":["React","memo","plugins","Provider","installation","TenancyProvider","ContextProvider","TenancyProviderHOC","Component","children","TenancyExtension","register","Tenancy"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,IAAhB,QAA4B,OAA5B;AACA,SAASC,OAAT,QAAwB,iBAAxB;AACA,SAASC,QAAT,QAAyB,mBAAzB;AACA,OAAOC,YAAP;AACA,SAASC,eAAe,IAAIC,eAA5B;;AAEA,IAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,SAAD,EAAmC;AAC1D,SAAO,SAASH,eAAT,OAAuC;AAAA,QAAZI,QAAY,QAAZA,QAAY;AAC1C,wBACI,oBAAC,eAAD,qBACI,oBAAC,SAAD,QAAYA,QAAZ,CADJ,CADJ;AAKH,GAND;AAOH,CARD;;AAUA,OAAO,IAAMC,gBAA0B,GAAG,SAA7BA,gBAA6B,GAAM;AAC5CR,EAAAA,OAAO,CAACS,QAAR,CAAiBP,YAAjB;AAEA;AACJ;AACA;AACA;AACI;;AACA,sBAAO,oBAAC,QAAD;AAAU,IAAA,GAAG,EAAEG;AAAf,IAAP;AACH,CATM;AAWP,OAAO,IAAMK,OAAO,gBAAGX,IAAI,CAACS,gBAAD,CAApB","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.FC): React.FC => {\n return function TenancyProvider({ children }) {\n return (\n <ContextProvider>\n <Component>{children}</Component>\n </ContextProvider>\n );\n };\n};\n\nexport const TenancyExtension: React.FC = () => {\n plugins.register(installation);\n\n /**\n * TODO @ts-refactor\n * Expects ComponentType\n */\n // @ts-ignore\n return <Provider hoc={TenancyProviderHOC} />;\n};\n\nexport const Tenancy = memo(TenancyExtension);\n"]}
@@ -1,12 +1,12 @@
1
1
  import React from "react";
2
- export declare const TenancyContext: React.Context<any>;
3
2
  export interface Tenant {
4
3
  id: string;
5
4
  name: string;
6
5
  }
7
- export declare type TenancyContextValue = {
6
+ export interface TenancyContextValue {
8
7
  tenant: string | null;
9
- setTenant(tenant: string): void;
8
+ setTenant(tenant: string | null): void;
10
9
  isMultiTenant: boolean;
11
- };
10
+ }
11
+ export declare const TenancyContext: React.Context<TenancyContextValue>;
12
12
  export declare const TenancyProvider: React.FC;
@@ -3,8 +3,14 @@ import React, { useMemo, useCallback, Fragment, useState } from "react";
3
3
  import { default as localStorage } from "store";
4
4
  import { plugins } from "@webiny/plugins";
5
5
  import { TenantHeaderLinkPlugin } from "@webiny/app/plugins/TenantHeaderLinkPlugin";
6
- export var TenancyContext = /*#__PURE__*/React.createContext(null);
7
6
  import { config as appConfig } from "@webiny/app/config";
7
+ export var TenancyContext = /*#__PURE__*/React.createContext({
8
+ tenant: null,
9
+ setTenant: function setTenant() {
10
+ return void 0;
11
+ },
12
+ isMultiTenant: false
13
+ });
8
14
  var LOCAL_STORAGE_KEY = "webiny_tenant";
9
15
 
10
16
  function loadState() {
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["Tenancy.tsx"],"names":["React","useMemo","useCallback","Fragment","useState","default","localStorage","plugins","TenantHeaderLinkPlugin","config","appConfig","TenancyContext","createContext","tenant","setTenant","isMultiTenant","LOCAL_STORAGE_KEY","loadState","get","storeState","state","set","getInitialTenant","currentTenant","register","TenancyProvider","props","changeTenant","remove","window","location","pathname","value","getKey","process","env","REACT_APP_WEBINY_MULTI_TENANCY","children"],"mappings":";AAAA,OAAOA,KAAP,IAAgBC,OAAhB,EAAyBC,WAAzB,EAAsCC,QAAtC,EAAgDC,QAAhD,QAAgE,OAAhE;AACA,SAASC,OAAO,IAAIC,YAApB,QAAwC,OAAxC;AACA,SAASC,OAAT,QAAwB,iBAAxB;AACA,SAASC,sBAAT,QAAuC,4CAAvC;AACA,SAASC,MAAM,IAAIC,SAAnB,QAAoC,oBAApC;AAaA,OAAO,IAAMC,cAAc,gBAAGX,KAAK,CAACY,aAAN,CAAyC;AACnEC,EAAAA,MAAM,EAAE,IAD2D;AAEnEC,EAAAA,SAAS,EAAE,qBAAM;AACb,WAAO,KAAK,CAAZ;AACH,GAJkE;AAKnEC,EAAAA,aAAa,EAAE;AALoD,CAAzC,CAAvB;AAQP,IAAMC,iBAAiB,GAAG,eAA1B;;AAEA,SAASC,SAAT,GAAoC;AAChC,SAAOX,YAAY,CAACY,GAAb,CAAiBF,iBAAjB,KAAuC,IAA9C;AACH;;AAED,SAASG,UAAT,CAAoBC,KAApB,EAAmC;AAC/Bd,EAAAA,YAAY,CAACe,GAAb,CAAiBL,iBAAjB,EAAoCI,KAApC;AACH;;AAED,IAAME,gBAAgB,GAAG,SAAnBA,gBAAmB,GAAqB;AAC1C,MAAMC,aAAa,GAAGN,SAAS,EAA/B;AACAV,EAAAA,OAAO,CAACiB,QAAR,CAAiB,IAAIhB,sBAAJ,CAA2Be,aAAa,IAAI,MAA5C,CAAjB;AACA,SAAOA,aAAP;AACH,CAJD;;AAMA,OAAO,IAAME,eAAyB,GAAG,SAA5BA,eAA4B,CAAAC,KAAK,EAAI;AAC9C,kBAAmCtB,QAAQ,CAACkB,gBAAD,CAA3C;AAAA;AAAA,MAAOC,aAAP;AAAA,MAAsBT,SAAtB;;AAEA,MAAMa,YAAY,GAAGzB,WAAW,CAC5B,UAACW,MAAD,EAA0B;AACtB,QAAI,CAACA,MAAL,EAAa;AACTP,MAAAA,YAAY,CAACsB,MAAb,CAAoBZ,iBAApB;AAEAa,MAAAA,MAAM,CAACC,QAAP,CAAgBC,QAAhB,GAA2B,GAA3B;AACH;;AAED,QAAI,CAACR,aAAL,EAAoB;AAChBhB,MAAAA,OAAO,CAACiB,QAAR,CAAiB,IAAIhB,sBAAJ,CAA2BK,MAA3B,CAAjB;AACAC,MAAAA,SAAS,CAACD,MAAD,CAAT;AACAM,MAAAA,UAAU,CAACN,MAAD,CAAV;AACA;AACH;;AAEDM,IAAAA,UAAU,CAACN,MAAD,CAAV;AACAgB,IAAAA,MAAM,CAACC,QAAP,CAAgBC,QAAhB,GAA2B,GAA3B;AACH,GAjB2B,EAkB5B,CAACR,aAAD,CAlB4B,CAAhC;AAqBA,MAAMS,KAAK,GAAG/B,OAAO,CACjB;AAAA,WAAO;AACHY,MAAAA,MAAM,EAAEU,aADL;AAEHT,MAAAA,SAAS,EAAEa,YAFR;AAGHZ,MAAAA,aAAa,EAAEL,SAAS,CAACuB,MAAV,CACX,sBADW,EAEXC,OAAO,CAACC,GAAR,CAAYC,8BAAZ,KAA+C,MAFpC;AAHZ,KAAP;AAAA,GADiB,EASjB,CAACb,aAAD,CATiB,CAArB;AAYA,sBACI,oBAAC,cAAD,CAAgB,QAAhB;AAAyB,IAAA,KAAK,EAAES;AAAhC,kBACI,oBAAC,QAAD,QAAWN,KAAK,CAACW,QAAjB,CADJ,CADJ;AAKH,CAzCM","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 { config as appConfig } from \"@webiny/app/config\";\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\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 const currentTenant = loadState();\n plugins.register(new TenantHeaderLinkPlugin(currentTenant || \"root\"));\n return currentTenant;\n};\n\nexport const TenancyProvider: React.FC = props => {\n const [currentTenant, setTenant] = useState(getInitialTenant);\n\n const changeTenant = useCallback(\n (tenant: string): void => {\n if (!tenant) {\n localStorage.remove(LOCAL_STORAGE_KEY);\n\n window.location.pathname = \"/\";\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 window.location.pathname = \"/\";\n },\n [currentTenant]\n );\n\n const value = useMemo<TenancyContextValue>(\n () => ({\n tenant: currentTenant,\n setTenant: changeTenant,\n isMultiTenant: appConfig.getKey(\n \"WEBINY_MULTI_TENANCY\",\n process.env.REACT_APP_WEBINY_MULTI_TENANCY === \"true\"\n )\n }),\n [currentTenant]\n );\n\n return (\n <TenancyContext.Provider value={value}>\n <Fragment>{props.children}</Fragment>\n </TenancyContext.Provider>\n );\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["useTenancy.ts"],"names":["useContext","TenancyContext","useTenancy"],"mappings":"AAAA,SAASA,UAAT,QAA2B,OAA3B;AACA,SAASC,cAAT;AAEA,OAAO,SAASC,UAAT,GAAsB;AACzB,SAAOF,UAAU,CAAsBC,cAAtB,CAAjB;AACH","sourcesContent":["import { useContext } from \"react\";\nimport { TenancyContext, TenancyContextValue } from \"~/contexts/Tenancy\";\n\nexport function useTenancy() {\n return useContext<TenancyContextValue>(TenancyContext);\n}\n"]}
package/index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.ts"],"names":["installation","plugins"],"mappings":"AAAA,OAAOA,YAAP;AACA;AACA;AACA;AACA;AAEA,OAAO,IAAMC,OAAO,GAAG,SAAVA,OAAU;AAAA,SAAM,CAACD,YAAD,CAAN;AAAA,CAAhB","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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/app-tenancy",
3
- "version": "5.24.0",
3
+ "version": "5.25.0-beta.2",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -14,13 +14,13 @@
14
14
  "license": "MIT",
15
15
  "dependencies": {
16
16
  "@apollo/react-hooks": "3.1.5",
17
- "@babel/runtime": "7.16.7",
17
+ "@babel/runtime": "7.17.7",
18
18
  "@emotion/styled": "10.3.0",
19
19
  "@types/react": "16.14.2",
20
- "@webiny/app": "5.24.0",
21
- "@webiny/app-admin": "5.24.0",
22
- "@webiny/plugins": "5.24.0",
23
- "@webiny/ui": "5.24.0",
20
+ "@webiny/app": "5.25.0-beta.2",
21
+ "@webiny/app-admin": "5.25.0-beta.2",
22
+ "@webiny/plugins": "5.25.0-beta.2",
23
+ "@webiny/ui": "5.25.0-beta.2",
24
24
  "apollo-client": "2.6.10",
25
25
  "graphql-tag": "2.12.6",
26
26
  "react": "16.14.0",
@@ -34,13 +34,13 @@
34
34
  "@babel/preset-env": "^7.16.4",
35
35
  "@babel/preset-react": "^7.16.0",
36
36
  "@babel/preset-typescript": "^7.16.0",
37
- "@webiny/cli": "^5.24.0",
38
- "@webiny/project-utils": "^5.24.0",
37
+ "@webiny/cli": "^5.25.0-beta.2",
38
+ "@webiny/project-utils": "^5.25.0-beta.2",
39
39
  "babel-plugin-emotion": "^9.2.8",
40
40
  "babel-plugin-lodash": "^3.3.4",
41
41
  "rimraf": "^3.0.2",
42
42
  "ttypescript": "^1.3.2",
43
- "typescript": "^4.1.3"
43
+ "typescript": "4.5.5"
44
44
  },
45
45
  "publishConfig": {
46
46
  "access": "public",
@@ -50,5 +50,5 @@
50
50
  "build": "yarn webiny run build",
51
51
  "watch": "yarn webiny run watch"
52
52
  },
53
- "gitHead": "be0cbfcaa9247c658c44179af7943cc5d6d71bc7"
53
+ "gitHead": "ed2f22976af47aea0b6b5d638f8afdc39951b014"
54
54
  }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["installation.tsx"],"names":["React","useState","useEffect","gql","useApolloClient","Alert","CircularProgress","SimpleForm","SimpleFormContent","styled","SimpleFormPlaceholder","minHeight","minWidth","IS_INSTALLED","INSTALL","TenancyInstaller","onInstalled","client","error","setError","mutate","mutation","then","data","tenancy","install","message","setTimeout","label","plugin","name","type","title","dependencies","secure","getInstalledVersion","query","version","render"],"mappings":";;;;;;;AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,SAA1B,QAA2C,OAA3C;AACA,OAAOC,GAAP,MAAgB,aAAhB;AACA,SAASC,eAAT,QAAgC,qBAAhC;AACA,SAASC,KAAT,QAAsB,kBAAtB;AACA,SAASC,gBAAT,QAAiC,qBAAjC;AACA,SAASC,UAAT,EAAqBC,iBAArB,QAA8C,yCAA9C;AACA,OAAOC,MAAP,MAAmB,iBAAnB;AAGA,IAAMC,qBAAqB,gBAAGD,MAAH;AAAA;AAAA;AAAA,GAAc;AACrCE,EAAAA,SAAS,EAAE,GAD0B;AAErCC,EAAAA,QAAQ,EAAE;AAF2B,CAAd,CAA3B;AAKA,IAAMC,YAAY,GAAGV,GAAH,iKAAlB;AAQA,IAAMW,OAAO,GAAGX,GAAH,4SAAb;;AAiBA,IAAMY,gBAAiD,GAAG,SAApDA,gBAAoD,OAAqB;AAAA,MAAlBC,WAAkB,QAAlBA,WAAkB;AAC3E,MAAMC,MAAM,GAAGb,eAAe,EAA9B;;AACA,kBAA0BH,QAAQ,CAAC,IAAD,CAAlC;AAAA;AAAA,MAAOiB,KAAP;AAAA,MAAcC,QAAd;;AAEAjB,EAAAA,SAAS,CAAC,YAAM;AACZe,IAAAA,MAAM,CAACG,MAAP,CAAc;AAAEC,MAAAA,QAAQ,EAAEP;AAAZ,KAAd,EAAqCQ,IAArC,CAA0C,iBAAc;AAAA,UAAXC,IAAW,SAAXA,IAAW;AACpD,UAAQL,KAAR,GAAkBK,IAAI,CAACC,OAAL,CAAaC,OAA/B,CAAQP,KAAR;;AACA,UAAIA,KAAJ,EAAW;AACPC,QAAAA,QAAQ,CAACD,KAAK,CAACQ,OAAP,CAAR;AACA;AACH,OALmD,CAOpD;;;AACAC,MAAAA,UAAU,CAACX,WAAD,EAAc,IAAd,CAAV;AACH,KATD;AAUH,GAXQ,EAWN,EAXM,CAAT;AAaA,MAAMY,KAAK,GAAGV,KAAK,gBACf,oBAAC,KAAD;AAAO,IAAA,KAAK,wBAAZ;AAAsC,IAAA,IAAI,EAAE;AAA5C,KACKA,KADL,CADe,0BAAnB;AAQA,sBACI,oBAAC,UAAD,qBACI,oBAAC,gBAAD;AAAkB,IAAA,KAAK,EAAEU;AAAzB,IADJ,eAEI,oBAAC,iBAAD,qBACI,oBAAC,qBAAD,OADJ,CAFJ,CADJ;AAQH,CAjCD;;AAmCA,IAAMC,MAA+B,GAAG;AACpCC,EAAAA,IAAI,EAAE,4BAD8B;AAEpCC,EAAAA,IAAI,EAAE,oBAF8B;AAGpCC,EAAAA,KAAK,WAH+B;AAIpCC,EAAAA,YAAY,EAAE,EAJsB;AAKpCC,EAAAA,MAAM,EAAE,KAL4B;AAM9BC,EAAAA,mBAN8B,sCAME;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAVlB,cAAAA,MAAU,SAAVA,MAAU;AAAA;AAAA,qBACXA,MAAM,CAACmB,KAAP,CAAa;AAAEA,gBAAAA,KAAK,EAAEvB;AAAT,eAAb,CADW;;AAAA;AAAA;AAC1BU,cAAAA,IAD0B,uBAC1BA,IAD0B;AAAA,+CAE3BA,IAAI,CAACC,OAAL,CAAaa,OAFc;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGrC,GATmC;AAUpCC,EAAAA,MAVoC,yBAUZ;AAAA,QAAftB,WAAe,SAAfA,WAAe;AACpB,wBAAO,oBAAC,gBAAD;AAAkB,MAAA,WAAW,EAAEA;AAA/B,MAAP;AACH;AAZmC,CAAxC;AAeA,eAAea,MAAf","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: React.FC<TenancyInstallerProps> = ({ onInstalled }) => {\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"]}
package/withTenant.d.ts CHANGED
@@ -6,6 +6,7 @@ interface GetIdentityWithTenantParams {
6
6
  }
7
7
  interface WithTenantProps {
8
8
  getIdentityData: (params: GetIdentityWithTenantParams) => Promise<Record<string, string>>;
9
+ children: React.ReactNode;
9
10
  }
10
11
  export declare const withTenant: (Component: React.FC<WithTenantProps>) => React.FC<WithTenantProps>;
11
12
  export {};
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["withTenant.tsx"],"names":["React","gql","useTenancy","GET_DEFAULT_TENANT","withTenant","Component","WithTenant","getIdentityData","children","tenant","setTenant","isMultiTenant","getIdentityWithTenant","params","client","query","context","headers","response","defaultTenantId","data","tenancy","getDefaultTenant","id"],"mappings":";;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,GAAT,QAAoB,aAApB;AACA,SAASC,UAAT;AAGA,OAAO,IAAMC,kBAAkB,GAAGF,GAAH,0ZAAxB;AAyBP,OAAO,IAAMG,UAAU,GAAG,SAAbA,UAAa,CAACC,SAAD,EAAqE;AAC3F,SAAO,SAASC,UAAT,OAAmD;AAAA,QAA7BC,eAA6B,QAA7BA,eAA6B;AAAA,QAAZC,QAAY,QAAZA,QAAY;;AACtD,sBAA6CN,UAAU,EAAvD;AAAA,QAAQO,MAAR,eAAQA,MAAR;AAAA,QAAgBC,SAAhB,eAAgBA,SAAhB;AAAA,QAA2BC,aAA3B,eAA2BA,aAA3B;;AAEA,QAAMC,qBAAqB;AAAA,2EAAG,iBAAOC,MAAP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBACtBJ,MAAM,IAAI,CAACE,aADW;AAAA;AAAA;AAAA;;AAAA,iDAEfJ,eAAe,CAACM,MAAD,CAFA;;AAAA;AAAA;AAAA,uBAMHA,MAAM,CAACC,MAAP,CAAcC,KAAd,CAAoB;AACvCA,kBAAAA,KAAK,EAAEZ,kBADgC;AAEvCa,kBAAAA,OAAO,EAAE;AAAEC,oBAAAA,OAAO,EAAE;AAAE,kCAAYR,MAAM,IAAI;AAAxB;AAAX;AAF8B,iBAApB,CANG;;AAAA;AAMpBS,gBAAAA,QANoB;AAWpBC,gBAAAA,eAXoB,GAWFD,QAAQ,CAACE,IAAT,CAAcC,OAAd,CAAsBC,gBAAtB,CAAuCF,IAAvC,CAA4CG,EAX1C;AAa1Bb,gBAAAA,SAAS,CAACS,eAAD,CAAT;AAb0B,iDAenBZ,eAAe,CAACM,MAAD,CAfI;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAH;;AAAA,sBAArBD,qBAAqB;AAAA;AAAA;AAAA,OAA3B;;AAkBA,wBAAO,oBAAC,SAAD;AAAW,MAAA,eAAe,EAAEA;AAA5B,OAAoDJ,QAApD,CAAP;AACH,GAtBD;AAuBH,CAxBM","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.FC<WithTenantProps>): React.FC<WithTenantProps> => {\n return function WithTenant({ getIdentityData, children }) {\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"]}