@contember/react-identity 1.3.0-alpha.26 → 2.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/dist/development/components/IdentityEnvironmentProvider.cjs +16 -0
- package/dist/development/components/IdentityEnvironmentProvider.cjs.map +1 -0
- package/dist/development/components/IdentityEnvironmentProvider.js +16 -0
- package/dist/development/components/IdentityEnvironmentProvider.js.map +1 -0
- package/dist/development/environment/IdentityEnvironmentExtension.cjs.map +1 -1
- package/dist/development/environment/IdentityEnvironmentExtension.js.map +1 -1
- package/dist/development/hooks/useProjectUserRoles.cjs +2 -2
- package/dist/development/hooks/useProjectUserRoles.cjs.map +1 -1
- package/dist/development/hooks/useProjectUserRoles.js +1 -1
- package/dist/development/hooks/useProjectUserRoles.js.map +1 -1
- package/dist/development/index.cjs +10 -14
- package/dist/development/index.cjs.map +1 -1
- package/dist/development/index.js +3 -14
- package/dist/development/index.js.map +1 -1
- package/dist/production/components/IdentityEnvironmentProvider.cjs +12 -0
- package/dist/production/components/IdentityEnvironmentProvider.cjs.map +1 -0
- package/dist/production/components/IdentityEnvironmentProvider.js +12 -0
- package/dist/production/components/IdentityEnvironmentProvider.js.map +1 -0
- package/dist/production/environment/IdentityEnvironmentExtension.cjs.map +1 -1
- package/dist/production/environment/IdentityEnvironmentExtension.js.map +1 -1
- package/dist/production/hooks/useProjectUserRoles.cjs +2 -2
- package/dist/production/hooks/useProjectUserRoles.cjs.map +1 -1
- package/dist/production/hooks/useProjectUserRoles.js +1 -1
- package/dist/production/hooks/useProjectUserRoles.js.map +1 -1
- package/dist/production/index.cjs +10 -14
- package/dist/production/index.cjs.map +1 -1
- package/dist/production/index.js +3 -14
- package/dist/production/index.js.map +1 -1
- package/dist/types/components/IdentityEnvironmentProvider.d.ts +6 -0
- package/dist/types/components/IdentityEnvironmentProvider.d.ts.map +1 -0
- package/dist/types/components/index.d.ts +1 -3
- package/dist/types/components/index.d.ts.map +1 -1
- package/dist/types/environment/IdentityEnvironmentExtension.d.ts +1 -1
- package/dist/types/environment/IdentityEnvironmentExtension.d.ts.map +1 -1
- package/dist/types/hooks/index.d.ts +0 -3
- package/dist/types/hooks/index.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -7
- package/src/components/IdentityEnvironmentProvider.tsx +19 -0
- package/src/components/index.ts +1 -3
- package/src/environment/IdentityEnvironmentExtension.ts +1 -1
- package/src/hooks/index.ts +1 -7
- package/src/hooks/useProjectUserRoles.tsx +1 -1
- package/src/index.ts +1 -1
- package/src/tsconfig.json +0 -1
- package/dist/development/components/IdentityProvider.cjs +0 -44
- package/dist/development/components/IdentityProvider.cjs.map +0 -1
- package/dist/development/components/IdentityProvider.js +0 -44
- package/dist/development/components/IdentityProvider.js.map +0 -1
- package/dist/development/components/IdentityState.cjs +0 -14
- package/dist/development/components/IdentityState.cjs.map +0 -1
- package/dist/development/components/IdentityState.js +0 -14
- package/dist/development/components/IdentityState.js.map +0 -1
- package/dist/development/components/LogoutTrigger.cjs +0 -16
- package/dist/development/components/LogoutTrigger.cjs.map +0 -1
- package/dist/development/components/LogoutTrigger.js +0 -16
- package/dist/development/components/LogoutTrigger.js.map +0 -1
- package/dist/development/hooks/useFetchIdentity.cjs +0 -52
- package/dist/development/hooks/useFetchIdentity.cjs.map +0 -1
- package/dist/development/hooks/useFetchIdentity.js +0 -52
- package/dist/development/hooks/useFetchIdentity.js.map +0 -1
- package/dist/development/hooks/useLogout.cjs +0 -10
- package/dist/development/hooks/useLogout.cjs.map +0 -1
- package/dist/development/hooks/useLogout.js +0 -10
- package/dist/development/hooks/useLogout.js.map +0 -1
- package/dist/development/internal/contexts.cjs +0 -13
- package/dist/development/internal/contexts.cjs.map +0 -1
- package/dist/development/internal/contexts.js +0 -13
- package/dist/development/internal/contexts.js.map +0 -1
- package/dist/development/internal/hooks/useFetchMe.cjs +0 -33
- package/dist/development/internal/hooks/useFetchMe.cjs.map +0 -1
- package/dist/development/internal/hooks/useFetchMe.js +0 -16
- package/dist/development/internal/hooks/useFetchMe.js.map +0 -1
- package/dist/development/internal/hooks/useLogoutInternal.cjs +0 -35
- package/dist/development/internal/hooks/useLogoutInternal.cjs.map +0 -1
- package/dist/development/internal/hooks/useLogoutInternal.js +0 -35
- package/dist/development/internal/hooks/useLogoutInternal.js.map +0 -1
- package/dist/development/internal/hooks/useSignOut.cjs +0 -31
- package/dist/development/internal/hooks/useSignOut.cjs.map +0 -1
- package/dist/development/internal/hooks/useSignOut.js +0 -14
- package/dist/development/internal/hooks/useSignOut.js.map +0 -1
- package/dist/production/components/IdentityProvider.cjs +0 -28
- package/dist/production/components/IdentityProvider.cjs.map +0 -1
- package/dist/production/components/IdentityProvider.js +0 -28
- package/dist/production/components/IdentityProvider.js.map +0 -1
- package/dist/production/components/IdentityState.cjs +0 -10
- package/dist/production/components/IdentityState.cjs.map +0 -1
- package/dist/production/components/IdentityState.js +0 -10
- package/dist/production/components/IdentityState.js.map +0 -1
- package/dist/production/components/LogoutTrigger.cjs +0 -12
- package/dist/production/components/LogoutTrigger.cjs.map +0 -1
- package/dist/production/components/LogoutTrigger.js +0 -12
- package/dist/production/components/LogoutTrigger.js.map +0 -1
- package/dist/production/hooks/useFetchIdentity.cjs +0 -52
- package/dist/production/hooks/useFetchIdentity.cjs.map +0 -1
- package/dist/production/hooks/useFetchIdentity.js +0 -52
- package/dist/production/hooks/useFetchIdentity.js.map +0 -1
- package/dist/production/hooks/useLogout.cjs +0 -10
- package/dist/production/hooks/useLogout.cjs.map +0 -1
- package/dist/production/hooks/useLogout.js +0 -10
- package/dist/production/hooks/useLogout.js.map +0 -1
- package/dist/production/internal/contexts.cjs +0 -13
- package/dist/production/internal/contexts.cjs.map +0 -1
- package/dist/production/internal/contexts.js +0 -13
- package/dist/production/internal/contexts.js.map +0 -1
- package/dist/production/internal/hooks/useFetchMe.cjs +0 -33
- package/dist/production/internal/hooks/useFetchMe.cjs.map +0 -1
- package/dist/production/internal/hooks/useFetchMe.js +0 -16
- package/dist/production/internal/hooks/useFetchMe.js.map +0 -1
- package/dist/production/internal/hooks/useLogoutInternal.cjs +0 -35
- package/dist/production/internal/hooks/useLogoutInternal.cjs.map +0 -1
- package/dist/production/internal/hooks/useLogoutInternal.js +0 -35
- package/dist/production/internal/hooks/useLogoutInternal.js.map +0 -1
- package/dist/production/internal/hooks/useSignOut.cjs +0 -31
- package/dist/production/internal/hooks/useSignOut.cjs.map +0 -1
- package/dist/production/internal/hooks/useSignOut.js +0 -14
- package/dist/production/internal/hooks/useSignOut.js.map +0 -1
- package/dist/types/components/IdentityProvider.d.ts +0 -6
- package/dist/types/components/IdentityProvider.d.ts.map +0 -1
- package/dist/types/components/IdentityState.d.ts +0 -8
- package/dist/types/components/IdentityState.d.ts.map +0 -1
- package/dist/types/components/LogoutTrigger.d.ts +0 -5
- package/dist/types/components/LogoutTrigger.d.ts.map +0 -1
- package/dist/types/hooks/useFetchIdentity.d.ts +0 -6
- package/dist/types/hooks/useFetchIdentity.d.ts.map +0 -1
- package/dist/types/hooks/useLogout.d.ts +0 -4
- package/dist/types/hooks/useLogout.d.ts.map +0 -1
- package/dist/types/internal/contexts.d.ts +0 -7
- package/dist/types/internal/contexts.d.ts.map +0 -1
- package/dist/types/internal/hooks/useFetchMe.d.ts +0 -95
- package/dist/types/internal/hooks/useFetchMe.d.ts.map +0 -1
- package/dist/types/internal/hooks/useLogoutInternal.d.ts +0 -4
- package/dist/types/internal/hooks/useLogoutInternal.d.ts.map +0 -1
- package/dist/types/internal/hooks/useSignOut.d.ts +0 -27
- package/dist/types/internal/hooks/useSignOut.d.ts.map +0 -1
- package/dist/types/types/Identity.d.ts +0 -19
- package/dist/types/types/Identity.d.ts.map +0 -1
- package/dist/types/types/IdentityMethods.d.ts +0 -5
- package/dist/types/types/IdentityMethods.d.ts.map +0 -1
- package/dist/types/types/IdentityStateValue.d.ts +0 -2
- package/dist/types/types/IdentityStateValue.d.ts.map +0 -1
- package/dist/types/types/index.d.ts +0 -4
- package/dist/types/types/index.d.ts.map +0 -1
- package/src/components/IdentityProvider.tsx +0 -43
- package/src/components/IdentityState.tsx +0 -14
- package/src/components/LogoutTrigger.tsx +0 -10
- package/src/hooks/useFetchIdentity.ts +0 -55
- package/src/hooks/useLogout.ts +0 -7
- package/src/internal/contexts.ts +0 -8
- package/src/internal/hooks/useFetchMe.ts +0 -22
- package/src/internal/hooks/useLogoutInternal.ts +0 -35
- package/src/internal/hooks/useSignOut.ts +0 -14
- package/src/types/Identity.ts +0 -20
- package/src/types/IdentityMethods.ts +0 -4
- package/src/types/IdentityStateValue.ts +0 -6
- package/src/types/index.ts +0 -3
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contember/react-identity",
|
|
3
3
|
"license": "Apache-2.0",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "2.0.0-alpha.1",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
7
7
|
"main": "./dist/production/index.js",
|
|
@@ -40,12 +40,9 @@
|
|
|
40
40
|
"directory": "packages/react-identity"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@contember/
|
|
44
|
-
"@contember/react-
|
|
45
|
-
"@contember/react-client": "
|
|
46
|
-
"@contember/react-client-tenant": "1.3.0-alpha.26",
|
|
47
|
-
"@contember/react-utils": "1.3.0-alpha.26",
|
|
48
|
-
"@radix-ui/react-slot": "^1.0.2"
|
|
43
|
+
"@contember/react-binding": "2.0.0-alpha.1",
|
|
44
|
+
"@contember/react-client": "2.0.0-alpha.1",
|
|
45
|
+
"@contember/react-client-tenant": "2.0.0-alpha.1"
|
|
49
46
|
},
|
|
50
47
|
"peerDependencies": {
|
|
51
48
|
"react": "^18 || ^19",
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ReactNode } from 'react'
|
|
2
|
+
import { EnvironmentExtensionProvider } from '@contember/react-binding'
|
|
3
|
+
import { identityEnvironmentExtension } from '../environment'
|
|
4
|
+
import { useIdentity } from '@contember/react-client-tenant'
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
export interface IdentityEnvironmentProviderProps {
|
|
8
|
+
children: ReactNode
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export const IdentityEnvironmentProvider: React.FC<IdentityEnvironmentProviderProps> = ({ children }) => {
|
|
12
|
+
const identity = useIdentity()
|
|
13
|
+
return (
|
|
14
|
+
<EnvironmentExtensionProvider extension={identityEnvironmentExtension} state={identity ?? null}>
|
|
15
|
+
{children}
|
|
16
|
+
</EnvironmentExtensionProvider>
|
|
17
|
+
|
|
18
|
+
)
|
|
19
|
+
}
|
package/src/components/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BindingError, Environment } from '@contember/react-binding'
|
|
2
|
-
import { Identity } from '
|
|
2
|
+
import { Identity } from '@contember/react-client-tenant'
|
|
3
3
|
|
|
4
4
|
export const identityEnvironmentExtension = Environment.createExtension((state: Identity | null | undefined) => {
|
|
5
5
|
if (state === undefined) {
|
package/src/hooks/index.ts
CHANGED
package/src/index.ts
CHANGED
package/src/tsconfig.json
CHANGED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const jsxDevRuntime = require("react/jsx-dev-runtime");
|
|
4
|
-
const reactClient = require("@contember/react-client");
|
|
5
|
-
const react = require("react");
|
|
6
|
-
const reactBinding = require("@contember/react-binding");
|
|
7
|
-
const contexts = require("../internal/contexts.cjs");
|
|
8
|
-
const useFetchIdentity = require("../hooks/useFetchIdentity.cjs");
|
|
9
|
-
const IdentityEnvironmentExtension = require("../environment/IdentityEnvironmentExtension.cjs");
|
|
10
|
-
const IdentityProvider = ({ children }) => {
|
|
11
|
-
const sessionToken = reactClient.useSessionToken();
|
|
12
|
-
const [{ identity, state }, methods] = useFetchIdentity.useFetchIdentity();
|
|
13
|
-
const { refreshIdentity, clearIdentity } = methods;
|
|
14
|
-
react.useEffect(() => {
|
|
15
|
-
if (sessionToken !== void 0) {
|
|
16
|
-
refreshIdentity();
|
|
17
|
-
}
|
|
18
|
-
}, [sessionToken, refreshIdentity]);
|
|
19
|
-
const hasIdentity = identity !== void 0;
|
|
20
|
-
react.useEffect(() => {
|
|
21
|
-
if (sessionToken === void 0 && hasIdentity) {
|
|
22
|
-
clearIdentity();
|
|
23
|
-
}
|
|
24
|
-
}, [sessionToken, clearIdentity, hasIdentity]);
|
|
25
|
-
return /* @__PURE__ */ jsxDevRuntime.jsxDEV(contexts.IdentityStateContext.Provider, { value: state, children: /* @__PURE__ */ jsxDevRuntime.jsxDEV(contexts.IdentityContext.Provider, { value: identity, children: /* @__PURE__ */ jsxDevRuntime.jsxDEV(contexts.IdentityMethodsContext.Provider, { value: methods, children: /* @__PURE__ */ jsxDevRuntime.jsxDEV(reactBinding.EnvironmentExtensionProvider, { extension: IdentityEnvironmentExtension.identityEnvironmentExtension, state: identity ?? null, children }, void 0, false, {
|
|
26
|
-
fileName: "/__w/interface/interface/packages/react-identity/src/components/IdentityProvider.tsx",
|
|
27
|
-
lineNumber: 36,
|
|
28
|
-
columnNumber: 6
|
|
29
|
-
}, void 0) }, void 0, false, {
|
|
30
|
-
fileName: "/__w/interface/interface/packages/react-identity/src/components/IdentityProvider.tsx",
|
|
31
|
-
lineNumber: 35,
|
|
32
|
-
columnNumber: 5
|
|
33
|
-
}, void 0) }, void 0, false, {
|
|
34
|
-
fileName: "/__w/interface/interface/packages/react-identity/src/components/IdentityProvider.tsx",
|
|
35
|
-
lineNumber: 34,
|
|
36
|
-
columnNumber: 4
|
|
37
|
-
}, void 0) }, void 0, false, {
|
|
38
|
-
fileName: "/__w/interface/interface/packages/react-identity/src/components/IdentityProvider.tsx",
|
|
39
|
-
lineNumber: 33,
|
|
40
|
-
columnNumber: 3
|
|
41
|
-
}, void 0);
|
|
42
|
-
};
|
|
43
|
-
exports.IdentityProvider = IdentityProvider;
|
|
44
|
-
//# sourceMappingURL=IdentityProvider.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IdentityProvider.cjs","sources":["../../../src/components/IdentityProvider.tsx"],"sourcesContent":["import { useSessionToken } from '@contember/react-client'\nimport { ReactNode, useEffect } from 'react'\nimport { EnvironmentExtensionProvider } from '@contember/react-binding'\nimport { useFetchIdentity } from '../hooks'\nimport { IdentityContext, IdentityMethodsContext, IdentityStateContext } from '../internal/contexts'\nimport { identityEnvironmentExtension } from '../environment'\n\n\nexport interface IdentityProviderProps {\n\tchildren: ReactNode\n}\n\nexport const IdentityProvider: React.FC<IdentityProviderProps> = ({ children }) => {\n\tconst sessionToken = useSessionToken()\n\tconst [{ identity, state }, methods] = useFetchIdentity()\n\n\tconst { refreshIdentity, clearIdentity } = methods\n\tuseEffect(() => {\n\t\tif (sessionToken !== undefined) {\n\t\t\trefreshIdentity()\n\t\t}\n\t}, [sessionToken, refreshIdentity])\n\n\n\tconst hasIdentity = identity !== undefined\n\tuseEffect(() => {\n\t\tif (sessionToken === undefined && hasIdentity) {\n\t\t\tclearIdentity()\n\t\t}\n\t}, [sessionToken, clearIdentity, hasIdentity])\n\n\treturn (\n\t\t<IdentityStateContext.Provider value={state}>\n\t\t\t<IdentityContext.Provider value={identity}>\n\t\t\t\t<IdentityMethodsContext.Provider value={methods}>\n\t\t\t\t\t<EnvironmentExtensionProvider extension={identityEnvironmentExtension} state={identity ?? null}>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</EnvironmentExtensionProvider>\n\t\t\t\t</IdentityMethodsContext.Provider>\n\t\t\t</IdentityContext.Provider>\n\t\t</IdentityStateContext.Provider>\n\t)\n}\n"],"names":["useSessionToken","useFetchIdentity","useEffect","jsxDEV","IdentityStateContext","IdentityContext","IdentityMethodsContext","EnvironmentExtensionProvider","identityEnvironmentExtension","this"],"mappings":";;;;;;;;;AAYO,MAAM,mBAAoD,CAAC,EAAE,eAAe;AAClF,QAAM,eAAeA,YAAAA;AACrB,QAAM,CAAC,EAAE,UAAU,MAAS,GAAA,OAAO,IAAIC,iBAAAA;AAEjC,QAAA,EAAE,iBAAiB,cAAkB,IAAA;AAC3CC,QAAAA,UAAU,MAAM;AACf,QAAI,iBAAiB,QAAW;AACf;IACjB;AAAA,EAAA,GACE,CAAC,cAAc,eAAe,CAAC;AAGlC,QAAM,cAAc,aAAa;AACjCA,QAAAA,UAAU,MAAM;AACX,QAAA,iBAAiB,UAAa,aAAa;AAChC;IACf;AAAA,EACE,GAAA,CAAC,cAAc,eAAe,WAAW,CAAC;AAG5C,SAAAC,8BAAAA,OAACC,SAAAA,qBAAqB,UAArB,EAA8B,OAAO,OACrC,UAACD,8BAAA,OAAAE,SAAA,gBAAgB,UAAhB,EAAyB,OAAO,UAChC,+CAACC,SAAuB,uBAAA,UAAvB,EAAgC,OAAO,SACvC,UAAAH,8BAAAA,OAACI,aAAAA,8BAA6B,EAAA,WAAWC,6BAA8B,8BAAA,OAAO,YAAY,MACxF,SADF,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAC,MAEA,EAHD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAIA,EALD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAMA,EAPD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAQA,GAAAA,MAAA;AAEF;;"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
2
|
-
import { useSessionToken } from "@contember/react-client";
|
|
3
|
-
import { useEffect } from "react";
|
|
4
|
-
import { EnvironmentExtensionProvider } from "@contember/react-binding";
|
|
5
|
-
import { IdentityStateContext, IdentityContext, IdentityMethodsContext } from "../internal/contexts.js";
|
|
6
|
-
import { useFetchIdentity } from "../hooks/useFetchIdentity.js";
|
|
7
|
-
import { identityEnvironmentExtension } from "../environment/IdentityEnvironmentExtension.js";
|
|
8
|
-
const IdentityProvider = ({ children }) => {
|
|
9
|
-
const sessionToken = useSessionToken();
|
|
10
|
-
const [{ identity, state }, methods] = useFetchIdentity();
|
|
11
|
-
const { refreshIdentity, clearIdentity } = methods;
|
|
12
|
-
useEffect(() => {
|
|
13
|
-
if (sessionToken !== void 0) {
|
|
14
|
-
refreshIdentity();
|
|
15
|
-
}
|
|
16
|
-
}, [sessionToken, refreshIdentity]);
|
|
17
|
-
const hasIdentity = identity !== void 0;
|
|
18
|
-
useEffect(() => {
|
|
19
|
-
if (sessionToken === void 0 && hasIdentity) {
|
|
20
|
-
clearIdentity();
|
|
21
|
-
}
|
|
22
|
-
}, [sessionToken, clearIdentity, hasIdentity]);
|
|
23
|
-
return /* @__PURE__ */ jsxDEV(IdentityStateContext.Provider, { value: state, children: /* @__PURE__ */ jsxDEV(IdentityContext.Provider, { value: identity, children: /* @__PURE__ */ jsxDEV(IdentityMethodsContext.Provider, { value: methods, children: /* @__PURE__ */ jsxDEV(EnvironmentExtensionProvider, { extension: identityEnvironmentExtension, state: identity ?? null, children }, void 0, false, {
|
|
24
|
-
fileName: "/__w/interface/interface/packages/react-identity/src/components/IdentityProvider.tsx",
|
|
25
|
-
lineNumber: 36,
|
|
26
|
-
columnNumber: 6
|
|
27
|
-
}, void 0) }, void 0, false, {
|
|
28
|
-
fileName: "/__w/interface/interface/packages/react-identity/src/components/IdentityProvider.tsx",
|
|
29
|
-
lineNumber: 35,
|
|
30
|
-
columnNumber: 5
|
|
31
|
-
}, void 0) }, void 0, false, {
|
|
32
|
-
fileName: "/__w/interface/interface/packages/react-identity/src/components/IdentityProvider.tsx",
|
|
33
|
-
lineNumber: 34,
|
|
34
|
-
columnNumber: 4
|
|
35
|
-
}, void 0) }, void 0, false, {
|
|
36
|
-
fileName: "/__w/interface/interface/packages/react-identity/src/components/IdentityProvider.tsx",
|
|
37
|
-
lineNumber: 33,
|
|
38
|
-
columnNumber: 3
|
|
39
|
-
}, void 0);
|
|
40
|
-
};
|
|
41
|
-
export {
|
|
42
|
-
IdentityProvider
|
|
43
|
-
};
|
|
44
|
-
//# sourceMappingURL=IdentityProvider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IdentityProvider.js","sources":["../../../src/components/IdentityProvider.tsx"],"sourcesContent":["import { useSessionToken } from '@contember/react-client'\nimport { ReactNode, useEffect } from 'react'\nimport { EnvironmentExtensionProvider } from '@contember/react-binding'\nimport { useFetchIdentity } from '../hooks'\nimport { IdentityContext, IdentityMethodsContext, IdentityStateContext } from '../internal/contexts'\nimport { identityEnvironmentExtension } from '../environment'\n\n\nexport interface IdentityProviderProps {\n\tchildren: ReactNode\n}\n\nexport const IdentityProvider: React.FC<IdentityProviderProps> = ({ children }) => {\n\tconst sessionToken = useSessionToken()\n\tconst [{ identity, state }, methods] = useFetchIdentity()\n\n\tconst { refreshIdentity, clearIdentity } = methods\n\tuseEffect(() => {\n\t\tif (sessionToken !== undefined) {\n\t\t\trefreshIdentity()\n\t\t}\n\t}, [sessionToken, refreshIdentity])\n\n\n\tconst hasIdentity = identity !== undefined\n\tuseEffect(() => {\n\t\tif (sessionToken === undefined && hasIdentity) {\n\t\t\tclearIdentity()\n\t\t}\n\t}, [sessionToken, clearIdentity, hasIdentity])\n\n\treturn (\n\t\t<IdentityStateContext.Provider value={state}>\n\t\t\t<IdentityContext.Provider value={identity}>\n\t\t\t\t<IdentityMethodsContext.Provider value={methods}>\n\t\t\t\t\t<EnvironmentExtensionProvider extension={identityEnvironmentExtension} state={identity ?? null}>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</EnvironmentExtensionProvider>\n\t\t\t\t</IdentityMethodsContext.Provider>\n\t\t\t</IdentityContext.Provider>\n\t\t</IdentityStateContext.Provider>\n\t)\n}\n"],"names":["this"],"mappings":";;;;;;;AAYO,MAAM,mBAAoD,CAAC,EAAE,eAAe;AAClF,QAAM,eAAe;AACrB,QAAM,CAAC,EAAE,UAAU,MAAS,GAAA,OAAO,IAAI;AAEjC,QAAA,EAAE,iBAAiB,cAAkB,IAAA;AAC3C,YAAU,MAAM;AACf,QAAI,iBAAiB,QAAW;AACf;IACjB;AAAA,EAAA,GACE,CAAC,cAAc,eAAe,CAAC;AAGlC,QAAM,cAAc,aAAa;AACjC,YAAU,MAAM;AACX,QAAA,iBAAiB,UAAa,aAAa;AAChC;IACf;AAAA,EACE,GAAA,CAAC,cAAc,eAAe,WAAW,CAAC;AAG5C,SAAA,uBAAC,qBAAqB,UAArB,EAA8B,OAAO,OACrC,UAAC,uBAAA,gBAAgB,UAAhB,EAAyB,OAAO,UAChC,iCAAC,uBAAuB,UAAvB,EAAgC,OAAO,SACvC,UAAA,uBAAC,8BAA6B,EAAA,WAAW,8BAA8B,OAAO,YAAY,MACxF,SADF,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAEA,EAHD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAIA,EALD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAMA,EAPD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAQA,GAAAA,MAAA;AAEF;"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const jsxDevRuntime = require("react/jsx-dev-runtime");
|
|
4
|
-
const contexts = require("../internal/contexts.cjs");
|
|
5
|
-
const IdentityState = ({ state, children }) => {
|
|
6
|
-
const currentState = contexts.useIdentityState();
|
|
7
|
-
return state === currentState || Array.isArray(state) && state.includes(currentState) ? /* @__PURE__ */ jsxDevRuntime.jsxDEV(jsxDevRuntime.Fragment, { children }, void 0, false, {
|
|
8
|
-
fileName: "/__w/interface/interface/packages/react-identity/src/components/IdentityState.tsx",
|
|
9
|
-
lineNumber: 13,
|
|
10
|
-
columnNumber: 92
|
|
11
|
-
}, void 0) : null;
|
|
12
|
-
};
|
|
13
|
-
exports.IdentityState = IdentityState;
|
|
14
|
-
//# sourceMappingURL=IdentityState.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IdentityState.cjs","sources":["../../../src/components/IdentityState.tsx"],"sourcesContent":["import React, { ReactNode } from 'react'\nimport { IdentityStateValue } from '../types'\nimport { useIdentityState } from '../internal/contexts'\n\nexport interface IdentityStateProps {\n\tstate: IdentityStateValue | IdentityStateValue[]\n\tchildren: ReactNode\n}\n\nexport const IdentityState = ({ state, children }: IdentityStateProps) => {\n\tconst currentState = useIdentityState()\n\n\treturn state === currentState || (Array.isArray(state) && state.includes(currentState)) ? <>{children}</> : null\n}\n"],"names":["useIdentityState","jsxDEV","Fragment","this"],"mappings":";;;;AASO,MAAM,gBAAgB,CAAC,EAAE,OAAO,eAAmC;AACzE,QAAM,eAAeA,SAAAA;AAEd,SAAA,UAAU,gBAAiB,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,YAAY,IAAKC,8BAAA,OAAAC,wBAAA,EAAG,SAAH,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAC,MAAY,IAAM;AAC7G;;"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { jsxDEV, Fragment } from "react/jsx-dev-runtime";
|
|
2
|
-
import { useIdentityState } from "../internal/contexts.js";
|
|
3
|
-
const IdentityState = ({ state, children }) => {
|
|
4
|
-
const currentState = useIdentityState();
|
|
5
|
-
return state === currentState || Array.isArray(state) && state.includes(currentState) ? /* @__PURE__ */ jsxDEV(Fragment, { children }, void 0, false, {
|
|
6
|
-
fileName: "/__w/interface/interface/packages/react-identity/src/components/IdentityState.tsx",
|
|
7
|
-
lineNumber: 13,
|
|
8
|
-
columnNumber: 92
|
|
9
|
-
}, void 0) : null;
|
|
10
|
-
};
|
|
11
|
-
export {
|
|
12
|
-
IdentityState
|
|
13
|
-
};
|
|
14
|
-
//# sourceMappingURL=IdentityState.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IdentityState.js","sources":["../../../src/components/IdentityState.tsx"],"sourcesContent":["import React, { ReactNode } from 'react'\nimport { IdentityStateValue } from '../types'\nimport { useIdentityState } from '../internal/contexts'\n\nexport interface IdentityStateProps {\n\tstate: IdentityStateValue | IdentityStateValue[]\n\tchildren: ReactNode\n}\n\nexport const IdentityState = ({ state, children }: IdentityStateProps) => {\n\tconst currentState = useIdentityState()\n\n\treturn state === currentState || (Array.isArray(state) && state.includes(currentState)) ? <>{children}</> : null\n}\n"],"names":["this"],"mappings":";;AASO,MAAM,gBAAgB,CAAC,EAAE,OAAO,eAAmC;AACzE,QAAM,eAAe;AAEd,SAAA,UAAU,gBAAiB,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,YAAY,IAAK,uBAAA,UAAA,EAAG,SAAH,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAAY,IAAM;AAC7G;"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const jsxDevRuntime = require("react/jsx-dev-runtime");
|
|
4
|
-
const react = require("react");
|
|
5
|
-
const reactSlot = require("@radix-ui/react-slot");
|
|
6
|
-
const useLogout = require("../hooks/useLogout.cjs");
|
|
7
|
-
const LogoutTrigger = ({ children }) => {
|
|
8
|
-
const logout = useLogout.useLogout();
|
|
9
|
-
return /* @__PURE__ */ jsxDevRuntime.jsxDEV(reactSlot.Slot, { onClick: react.useCallback(() => logout(), [logout]), children }, void 0, false, {
|
|
10
|
-
fileName: "/__w/interface/interface/packages/react-identity/src/components/LogoutTrigger.tsx",
|
|
11
|
-
lineNumber: 9,
|
|
12
|
-
columnNumber: 9
|
|
13
|
-
}, void 0);
|
|
14
|
-
};
|
|
15
|
-
exports.LogoutTrigger = LogoutTrigger;
|
|
16
|
-
//# sourceMappingURL=LogoutTrigger.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LogoutTrigger.cjs","sources":["../../../src/components/LogoutTrigger.tsx"],"sourcesContent":["import { ReactNode, useCallback } from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { useLogout } from '../hooks'\n\nexport const LogoutTrigger = ({ children }: {\n\tchildren: ReactNode\n}) => {\n\tconst logout = useLogout()\n\treturn <Slot onClick={useCallback(() => logout(), [logout])}>{children}</Slot>\n}\n"],"names":["useLogout","jsxDEV","Slot","useCallback","this"],"mappings":";;;;;;AAIO,MAAM,gBAAgB,CAAC,EAAE,eAE1B;AACL,QAAM,SAASA,UAAAA;AACR,SAAAC,8BAAA,OAACC,UAAK,MAAA,EAAA,SAASC,MAAAA,YAAY,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,GAAI,SAAvD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAgE,GAAAC,MAAA;AACxE;;"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
2
|
-
import { useCallback } from "react";
|
|
3
|
-
import { Slot } from "@radix-ui/react-slot";
|
|
4
|
-
import { useLogout } from "../hooks/useLogout.js";
|
|
5
|
-
const LogoutTrigger = ({ children }) => {
|
|
6
|
-
const logout = useLogout();
|
|
7
|
-
return /* @__PURE__ */ jsxDEV(Slot, { onClick: useCallback(() => logout(), [logout]), children }, void 0, false, {
|
|
8
|
-
fileName: "/__w/interface/interface/packages/react-identity/src/components/LogoutTrigger.tsx",
|
|
9
|
-
lineNumber: 9,
|
|
10
|
-
columnNumber: 9
|
|
11
|
-
}, void 0);
|
|
12
|
-
};
|
|
13
|
-
export {
|
|
14
|
-
LogoutTrigger
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=LogoutTrigger.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LogoutTrigger.js","sources":["../../../src/components/LogoutTrigger.tsx"],"sourcesContent":["import { ReactNode, useCallback } from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { useLogout } from '../hooks'\n\nexport const LogoutTrigger = ({ children }: {\n\tchildren: ReactNode\n}) => {\n\tconst logout = useLogout()\n\treturn <Slot onClick={useCallback(() => logout(), [logout])}>{children}</Slot>\n}\n"],"names":["this"],"mappings":";;;;AAIO,MAAM,gBAAgB,CAAC,EAAE,eAE1B;AACL,QAAM,SAAS;AACR,SAAA,uBAAC,MAAK,EAAA,SAAS,YAAY,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,GAAI,SAAvD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAgE,GAAAA,MAAA;AACxE;"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const react = require("react");
|
|
4
|
-
const reactClient = require("@contember/react-client");
|
|
5
|
-
const useFetchMe = require("../internal/hooks/useFetchMe.cjs");
|
|
6
|
-
const useLogoutInternal = require("../internal/hooks/useLogoutInternal.cjs");
|
|
7
|
-
const useFetchIdentity = () => {
|
|
8
|
-
const sessionToken = reactClient.useSessionToken();
|
|
9
|
-
const fetchMe = useFetchMe.useFetchMe();
|
|
10
|
-
const [identityState, setIdentityState] = react.useState({ state: sessionToken ? "loading" : "none", identity: void 0 });
|
|
11
|
-
const clearIdentity = react.useCallback(() => setIdentityState({ state: "cleared", identity: void 0 }), []);
|
|
12
|
-
const logout = useLogoutInternal.useLogoutInternal(clearIdentity);
|
|
13
|
-
const fetch = react.useCallback(async () => {
|
|
14
|
-
setIdentityState({ state: "loading", identity: void 0 });
|
|
15
|
-
try {
|
|
16
|
-
const response = await fetchMe();
|
|
17
|
-
const person = response.person;
|
|
18
|
-
const projects = response.projects;
|
|
19
|
-
const permissions = response.permissions ?? { canCreateProject: false };
|
|
20
|
-
setIdentityState({
|
|
21
|
-
state: "success",
|
|
22
|
-
identity: {
|
|
23
|
-
id: response.id,
|
|
24
|
-
person: person ?? void 0,
|
|
25
|
-
projects: projects.map((it) => ({
|
|
26
|
-
name: it.project.name,
|
|
27
|
-
slug: it.project.slug,
|
|
28
|
-
roles: it.memberships.map((it2) => it2.role)
|
|
29
|
-
})),
|
|
30
|
-
permissions
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
} catch (e) {
|
|
34
|
-
console.error(e);
|
|
35
|
-
if (typeof e === "object" && e !== null && "status" in e && e.status === 401) {
|
|
36
|
-
logout({ noRedirect: true });
|
|
37
|
-
setIdentityState({ state: "cleared", identity: void 0 });
|
|
38
|
-
} else {
|
|
39
|
-
setIdentityState({ state: "failed", identity: void 0 });
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}, [fetchMe, logout]);
|
|
43
|
-
return [
|
|
44
|
-
identityState,
|
|
45
|
-
react.useMemo(() => ({
|
|
46
|
-
clearIdentity,
|
|
47
|
-
refreshIdentity: fetch
|
|
48
|
-
}), [clearIdentity, fetch])
|
|
49
|
-
];
|
|
50
|
-
};
|
|
51
|
-
exports.useFetchIdentity = useFetchIdentity;
|
|
52
|
-
//# sourceMappingURL=useFetchIdentity.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useFetchIdentity.cjs","sources":["../../../src/hooks/useFetchIdentity.ts"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react'\nimport { Identity, IdentityMethods, IdentityStateValue } from '../types'\nimport { useSessionToken } from '@contember/react-client'\nimport { useFetchMe } from '../internal/hooks/useFetchMe'\nimport { useLogoutInternal } from '../internal/hooks/useLogoutInternal'\n\nexport const useFetchIdentity = (): [{ state: IdentityStateValue, identity: Identity | undefined }, IdentityMethods] => {\n\tconst sessionToken = useSessionToken()\n\tconst fetchMe = useFetchMe()\n\n\tconst [identityState, setIdentityState] = useState<ReturnType<typeof useFetchIdentity>[0]>({ state: sessionToken ? 'loading' : 'none', identity: undefined })\n\n\tconst clearIdentity = useCallback(() => setIdentityState({ state: 'cleared', identity: undefined }), [])\n\tconst logout = useLogoutInternal(clearIdentity)\n\n\tconst fetch = useCallback(async () => {\n\t\tsetIdentityState({ state: 'loading', identity: undefined })\n\t\ttry {\n\t\t\tconst response = await fetchMe()\n\t\t\tconst person = response.person\n\t\t\tconst projects = response.projects\n\t\t\tconst permissions = response.permissions ?? { canCreateProject: false }\n\n\t\t\tsetIdentityState({\n\t\t\t\tstate: 'success',\n\t\t\t\tidentity: {\n\t\t\t\t\tid: response.id,\n\t\t\t\t\tperson: person ?? undefined,\n\t\t\t\t\tprojects: projects.map(it => ({\n\t\t\t\t\t\tname: it.project.name,\n\t\t\t\t\t\tslug: it.project.slug,\n\t\t\t\t\t\troles: it.memberships.map(it => it.role),\n\t\t\t\t\t})),\n\t\t\t\t\tpermissions,\n\t\t\t\t},\n\t\t\t})\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t\tif (typeof e === 'object' && e !== null && 'status' in e && (e as { status?: unknown }).status === 401) {\n\t\t\t\tlogout({ noRedirect: true })\n\t\t\t\tsetIdentityState({ state: 'cleared', identity: undefined })\n\t\t\t} else {\n\t\t\t\tsetIdentityState({ state: 'failed', identity: undefined })\n\t\t\t}\n\t\t}\n\t}, [fetchMe, logout])\n\n\treturn [\n\t\tidentityState,\n\t\tuseMemo((): IdentityMethods => ({\n\t\t\tclearIdentity,\n\t\t\trefreshIdentity: fetch,\n\t\t}), [clearIdentity, fetch]),\n\t]\n}\n"],"names":["useSessionToken","useFetchMe","useState","useCallback","useLogoutInternal","it","useMemo"],"mappings":";;;;;;AAMO,MAAM,mBAAmB,MAAwF;AACvH,QAAM,eAAeA,YAAAA;AACrB,QAAM,UAAUC,WAAAA;AAEhB,QAAM,CAAC,eAAe,gBAAgB,IAAIC,MAAAA,SAAiD,EAAE,OAAO,eAAe,YAAY,QAAQ,UAAU,OAAW,CAAA;AAE5J,QAAM,gBAAgBC,MAAAA,YAAY,MAAM,iBAAiB,EAAE,OAAO,WAAW,UAAU,QAAW,GAAG,CAAE,CAAA;AACjG,QAAA,SAASC,oCAAkB,aAAa;AAExC,QAAA,QAAQD,MAAAA,YAAY,YAAY;AACrC,qBAAiB,EAAE,OAAO,WAAW,UAAU,QAAW;AACtD,QAAA;AACG,YAAA,WAAW,MAAM;AACvB,YAAM,SAAS,SAAS;AACxB,YAAM,WAAW,SAAS;AAC1B,YAAM,cAAc,SAAS,eAAe,EAAE,kBAAkB,MAAM;AAErD,uBAAA;AAAA,QAChB,OAAO;AAAA,QACP,UAAU;AAAA,UACT,IAAI,SAAS;AAAA,UACb,QAAQ,UAAU;AAAA,UAClB,UAAU,SAAS,IAAI,CAAO,QAAA;AAAA,YAC7B,MAAM,GAAG,QAAQ;AAAA,YACjB,MAAM,GAAG,QAAQ;AAAA,YACjB,OAAO,GAAG,YAAY,IAAI,CAAAE,QAAMA,IAAG,IAAI;AAAA,UAAA,EACtC;AAAA,UACF;AAAA,QACD;AAAA,MAAA,CACA;AAAA,aACO,GAAG;AACX,cAAQ,MAAM,CAAC;AACX,UAAA,OAAO,MAAM,YAAY,MAAM,QAAQ,YAAY,KAAM,EAA2B,WAAW,KAAK;AAChG,eAAA,EAAE,YAAY,KAAA,CAAM;AAC3B,yBAAiB,EAAE,OAAO,WAAW,UAAU,QAAW;AAAA,MAAA,OACpD;AACN,yBAAiB,EAAE,OAAO,UAAU,UAAU,QAAW;AAAA,MAC1D;AAAA,IACD;AAAA,EAAA,GACE,CAAC,SAAS,MAAM,CAAC;AAEb,SAAA;AAAA,IACN;AAAA,IACAC,MAAAA,QAAQ,OAAwB;AAAA,MAC/B;AAAA,MACA,iBAAiB;AAAA,IAAA,IACd,CAAC,eAAe,KAAK,CAAC;AAAA,EAAA;AAE5B;;"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { useState, useCallback, useMemo } from "react";
|
|
2
|
-
import { useSessionToken } from "@contember/react-client";
|
|
3
|
-
import { useFetchMe } from "../internal/hooks/useFetchMe.js";
|
|
4
|
-
import { useLogoutInternal } from "../internal/hooks/useLogoutInternal.js";
|
|
5
|
-
const useFetchIdentity = () => {
|
|
6
|
-
const sessionToken = useSessionToken();
|
|
7
|
-
const fetchMe = useFetchMe();
|
|
8
|
-
const [identityState, setIdentityState] = useState({ state: sessionToken ? "loading" : "none", identity: void 0 });
|
|
9
|
-
const clearIdentity = useCallback(() => setIdentityState({ state: "cleared", identity: void 0 }), []);
|
|
10
|
-
const logout = useLogoutInternal(clearIdentity);
|
|
11
|
-
const fetch = useCallback(async () => {
|
|
12
|
-
setIdentityState({ state: "loading", identity: void 0 });
|
|
13
|
-
try {
|
|
14
|
-
const response = await fetchMe();
|
|
15
|
-
const person = response.person;
|
|
16
|
-
const projects = response.projects;
|
|
17
|
-
const permissions = response.permissions ?? { canCreateProject: false };
|
|
18
|
-
setIdentityState({
|
|
19
|
-
state: "success",
|
|
20
|
-
identity: {
|
|
21
|
-
id: response.id,
|
|
22
|
-
person: person ?? void 0,
|
|
23
|
-
projects: projects.map((it) => ({
|
|
24
|
-
name: it.project.name,
|
|
25
|
-
slug: it.project.slug,
|
|
26
|
-
roles: it.memberships.map((it2) => it2.role)
|
|
27
|
-
})),
|
|
28
|
-
permissions
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
} catch (e) {
|
|
32
|
-
console.error(e);
|
|
33
|
-
if (typeof e === "object" && e !== null && "status" in e && e.status === 401) {
|
|
34
|
-
logout({ noRedirect: true });
|
|
35
|
-
setIdentityState({ state: "cleared", identity: void 0 });
|
|
36
|
-
} else {
|
|
37
|
-
setIdentityState({ state: "failed", identity: void 0 });
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}, [fetchMe, logout]);
|
|
41
|
-
return [
|
|
42
|
-
identityState,
|
|
43
|
-
useMemo(() => ({
|
|
44
|
-
clearIdentity,
|
|
45
|
-
refreshIdentity: fetch
|
|
46
|
-
}), [clearIdentity, fetch])
|
|
47
|
-
];
|
|
48
|
-
};
|
|
49
|
-
export {
|
|
50
|
-
useFetchIdentity
|
|
51
|
-
};
|
|
52
|
-
//# sourceMappingURL=useFetchIdentity.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useFetchIdentity.js","sources":["../../../src/hooks/useFetchIdentity.ts"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react'\nimport { Identity, IdentityMethods, IdentityStateValue } from '../types'\nimport { useSessionToken } from '@contember/react-client'\nimport { useFetchMe } from '../internal/hooks/useFetchMe'\nimport { useLogoutInternal } from '../internal/hooks/useLogoutInternal'\n\nexport const useFetchIdentity = (): [{ state: IdentityStateValue, identity: Identity | undefined }, IdentityMethods] => {\n\tconst sessionToken = useSessionToken()\n\tconst fetchMe = useFetchMe()\n\n\tconst [identityState, setIdentityState] = useState<ReturnType<typeof useFetchIdentity>[0]>({ state: sessionToken ? 'loading' : 'none', identity: undefined })\n\n\tconst clearIdentity = useCallback(() => setIdentityState({ state: 'cleared', identity: undefined }), [])\n\tconst logout = useLogoutInternal(clearIdentity)\n\n\tconst fetch = useCallback(async () => {\n\t\tsetIdentityState({ state: 'loading', identity: undefined })\n\t\ttry {\n\t\t\tconst response = await fetchMe()\n\t\t\tconst person = response.person\n\t\t\tconst projects = response.projects\n\t\t\tconst permissions = response.permissions ?? { canCreateProject: false }\n\n\t\t\tsetIdentityState({\n\t\t\t\tstate: 'success',\n\t\t\t\tidentity: {\n\t\t\t\t\tid: response.id,\n\t\t\t\t\tperson: person ?? undefined,\n\t\t\t\t\tprojects: projects.map(it => ({\n\t\t\t\t\t\tname: it.project.name,\n\t\t\t\t\t\tslug: it.project.slug,\n\t\t\t\t\t\troles: it.memberships.map(it => it.role),\n\t\t\t\t\t})),\n\t\t\t\t\tpermissions,\n\t\t\t\t},\n\t\t\t})\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t\tif (typeof e === 'object' && e !== null && 'status' in e && (e as { status?: unknown }).status === 401) {\n\t\t\t\tlogout({ noRedirect: true })\n\t\t\t\tsetIdentityState({ state: 'cleared', identity: undefined })\n\t\t\t} else {\n\t\t\t\tsetIdentityState({ state: 'failed', identity: undefined })\n\t\t\t}\n\t\t}\n\t}, [fetchMe, logout])\n\n\treturn [\n\t\tidentityState,\n\t\tuseMemo((): IdentityMethods => ({\n\t\t\tclearIdentity,\n\t\t\trefreshIdentity: fetch,\n\t\t}), [clearIdentity, fetch]),\n\t]\n}\n"],"names":["it"],"mappings":";;;;AAMO,MAAM,mBAAmB,MAAwF;AACvH,QAAM,eAAe;AACrB,QAAM,UAAU;AAEhB,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAiD,EAAE,OAAO,eAAe,YAAY,QAAQ,UAAU,OAAW,CAAA;AAE5J,QAAM,gBAAgB,YAAY,MAAM,iBAAiB,EAAE,OAAO,WAAW,UAAU,QAAW,GAAG,CAAE,CAAA;AACjG,QAAA,SAAS,kBAAkB,aAAa;AAExC,QAAA,QAAQ,YAAY,YAAY;AACrC,qBAAiB,EAAE,OAAO,WAAW,UAAU,QAAW;AACtD,QAAA;AACG,YAAA,WAAW,MAAM;AACvB,YAAM,SAAS,SAAS;AACxB,YAAM,WAAW,SAAS;AAC1B,YAAM,cAAc,SAAS,eAAe,EAAE,kBAAkB,MAAM;AAErD,uBAAA;AAAA,QAChB,OAAO;AAAA,QACP,UAAU;AAAA,UACT,IAAI,SAAS;AAAA,UACb,QAAQ,UAAU;AAAA,UAClB,UAAU,SAAS,IAAI,CAAO,QAAA;AAAA,YAC7B,MAAM,GAAG,QAAQ;AAAA,YACjB,MAAM,GAAG,QAAQ;AAAA,YACjB,OAAO,GAAG,YAAY,IAAI,CAAAA,QAAMA,IAAG,IAAI;AAAA,UAAA,EACtC;AAAA,UACF;AAAA,QACD;AAAA,MAAA,CACA;AAAA,aACO,GAAG;AACX,cAAQ,MAAM,CAAC;AACX,UAAA,OAAO,MAAM,YAAY,MAAM,QAAQ,YAAY,KAAM,EAA2B,WAAW,KAAK;AAChG,eAAA,EAAE,YAAY,KAAA,CAAM;AAC3B,yBAAiB,EAAE,OAAO,WAAW,UAAU,QAAW;AAAA,MAAA,OACpD;AACN,yBAAiB,EAAE,OAAO,UAAU,UAAU,QAAW;AAAA,MAC1D;AAAA,IACD;AAAA,EAAA,GACE,CAAC,SAAS,MAAM,CAAC;AAEb,SAAA;AAAA,IACN;AAAA,IACA,QAAQ,OAAwB;AAAA,MAC/B;AAAA,MACA,iBAAiB;AAAA,IAAA,IACd,CAAC,eAAe,KAAK,CAAC;AAAA,EAAA;AAE5B;"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const contexts = require("../internal/contexts.cjs");
|
|
4
|
-
const useLogoutInternal = require("../internal/hooks/useLogoutInternal.cjs");
|
|
5
|
-
const useLogout = () => {
|
|
6
|
-
const { clearIdentity } = contexts.useIdentityMethods();
|
|
7
|
-
return useLogoutInternal.useLogoutInternal(clearIdentity);
|
|
8
|
-
};
|
|
9
|
-
exports.useLogout = useLogout;
|
|
10
|
-
//# sourceMappingURL=useLogout.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useLogout.cjs","sources":["../../../src/hooks/useLogout.ts"],"sourcesContent":["import { useIdentityMethods } from '../internal/contexts'\nimport { useLogoutInternal } from '../internal/hooks/useLogoutInternal'\n\nexport const useLogout = () => {\n\tconst { clearIdentity } = useIdentityMethods()\n\treturn useLogoutInternal(clearIdentity)\n}\n"],"names":["useIdentityMethods","useLogoutInternal"],"mappings":";;;;AAGO,MAAM,YAAY,MAAM;AACxB,QAAA,EAAE,kBAAkBA,SAAAA;AAC1B,SAAOC,kBAAAA,kBAAkB,aAAa;AACvC;;"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { useIdentityMethods } from "../internal/contexts.js";
|
|
2
|
-
import { useLogoutInternal } from "../internal/hooks/useLogoutInternal.js";
|
|
3
|
-
const useLogout = () => {
|
|
4
|
-
const { clearIdentity } = useIdentityMethods();
|
|
5
|
-
return useLogoutInternal(clearIdentity);
|
|
6
|
-
};
|
|
7
|
-
export {
|
|
8
|
-
useLogout
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=useLogout.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useLogout.js","sources":["../../../src/hooks/useLogout.ts"],"sourcesContent":["import { useIdentityMethods } from '../internal/contexts'\nimport { useLogoutInternal } from '../internal/hooks/useLogoutInternal'\n\nexport const useLogout = () => {\n\tconst { clearIdentity } = useIdentityMethods()\n\treturn useLogoutInternal(clearIdentity)\n}\n"],"names":[],"mappings":";;AAGO,MAAM,YAAY,MAAM;AACxB,QAAA,EAAE,kBAAkB;AAC1B,SAAO,kBAAkB,aAAa;AACvC;"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const reactUtils = require("@contember/react-utils");
|
|
4
|
-
const [IdentityContext, useIdentity] = reactUtils.createContext("IdentityContext", void 0);
|
|
5
|
-
const [IdentityMethodsContext, useIdentityMethods] = reactUtils.createRequiredContext("IdentityMethodsContext");
|
|
6
|
-
const [IdentityStateContext, useIdentityState] = reactUtils.createRequiredContext("IdentityStateContext");
|
|
7
|
-
exports.IdentityContext = IdentityContext;
|
|
8
|
-
exports.IdentityMethodsContext = IdentityMethodsContext;
|
|
9
|
-
exports.IdentityStateContext = IdentityStateContext;
|
|
10
|
-
exports.useIdentity = useIdentity;
|
|
11
|
-
exports.useIdentityMethods = useIdentityMethods;
|
|
12
|
-
exports.useIdentityState = useIdentityState;
|
|
13
|
-
//# sourceMappingURL=contexts.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"contexts.cjs","sources":["../../../src/internal/contexts.ts"],"sourcesContent":["import { createContext, createRequiredContext } from '@contember/react-utils'\nimport { IdentityMethods } from '../types/IdentityMethods'\nimport { Identity } from '../types/Identity'\nimport { IdentityStateValue } from '../types/IdentityStateValue'\n\nexport const [IdentityContext, useIdentity] = createContext<Identity | undefined>('IdentityContext', undefined)\nexport const [IdentityMethodsContext, useIdentityMethods] = createRequiredContext<IdentityMethods>('IdentityMethodsContext')\nexport const [IdentityStateContext, useIdentityState] = createRequiredContext<IdentityStateValue>('IdentityStateContext')\n"],"names":["createContext","createRequiredContext"],"mappings":";;;AAKO,MAAM,CAAC,iBAAiB,WAAW,IAAIA,WAAA,cAAoC,mBAAmB,MAAS;AACvG,MAAM,CAAC,wBAAwB,kBAAkB,IAAIC,WAAAA,sBAAuC,wBAAwB;AACpH,MAAM,CAAC,sBAAsB,gBAAgB,IAAIA,WAAAA,sBAA0C,sBAAsB;;;;;;;"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { createContext, createRequiredContext } from "@contember/react-utils";
|
|
2
|
-
const [IdentityContext, useIdentity] = createContext("IdentityContext", void 0);
|
|
3
|
-
const [IdentityMethodsContext, useIdentityMethods] = createRequiredContext("IdentityMethodsContext");
|
|
4
|
-
const [IdentityStateContext, useIdentityState] = createRequiredContext("IdentityStateContext");
|
|
5
|
-
export {
|
|
6
|
-
IdentityContext,
|
|
7
|
-
IdentityMethodsContext,
|
|
8
|
-
IdentityStateContext,
|
|
9
|
-
useIdentity,
|
|
10
|
-
useIdentityMethods,
|
|
11
|
-
useIdentityState
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=contexts.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"contexts.js","sources":["../../../src/internal/contexts.ts"],"sourcesContent":["import { createContext, createRequiredContext } from '@contember/react-utils'\nimport { IdentityMethods } from '../types/IdentityMethods'\nimport { Identity } from '../types/Identity'\nimport { IdentityStateValue } from '../types/IdentityStateValue'\n\nexport const [IdentityContext, useIdentity] = createContext<Identity | undefined>('IdentityContext', undefined)\nexport const [IdentityMethodsContext, useIdentityMethods] = createRequiredContext<IdentityMethods>('IdentityMethodsContext')\nexport const [IdentityStateContext, useIdentityState] = createRequiredContext<IdentityStateValue>('IdentityStateContext')\n"],"names":[],"mappings":";AAKO,MAAM,CAAC,iBAAiB,WAAW,IAAI,cAAoC,mBAAmB,MAAS;AACvG,MAAM,CAAC,wBAAwB,kBAAkB,IAAI,sBAAuC,wBAAwB;AACpH,MAAM,CAAC,sBAAsB,gBAAgB,IAAI,sBAA0C,sBAAsB;"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const TenantApi = require("@contember/graphql-client-tenant");
|
|
4
|
-
const reactClientTenant = require("@contember/react-client-tenant");
|
|
5
|
-
const react = require("react");
|
|
6
|
-
function _interopNamespaceDefault(e) {
|
|
7
|
-
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
|
8
|
-
if (e) {
|
|
9
|
-
for (const k in e) {
|
|
10
|
-
if (k !== "default") {
|
|
11
|
-
const d = Object.getOwnPropertyDescriptor(e, k);
|
|
12
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
13
|
-
enumerable: true,
|
|
14
|
-
get: () => e[k]
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
n.default = e;
|
|
20
|
-
return Object.freeze(n);
|
|
21
|
-
}
|
|
22
|
-
const TenantApi__namespace = /* @__PURE__ */ _interopNamespaceDefault(TenantApi);
|
|
23
|
-
const identityFragment = TenantApi__namespace.identity$$.person(TenantApi__namespace.person$$).projects(
|
|
24
|
-
TenantApi__namespace.identityProjectRelation$.project(TenantApi__namespace.project$$).memberships(TenantApi__namespace.membership$$.variables(TenantApi__namespace.variableEntry$$))
|
|
25
|
-
).permissions(TenantApi__namespace.identityGlobalPermissions$$);
|
|
26
|
-
const useFetchMe = () => {
|
|
27
|
-
const executor = reactClientTenant.useTenantApi();
|
|
28
|
-
return react.useCallback(async () => {
|
|
29
|
-
return (await executor(TenantApi__namespace.query$.me(identityFragment))).me;
|
|
30
|
-
}, [executor]);
|
|
31
|
-
};
|
|
32
|
-
exports.useFetchMe = useFetchMe;
|
|
33
|
-
//# sourceMappingURL=useFetchMe.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useFetchMe.cjs","sources":["../../../../src/internal/hooks/useFetchMe.ts"],"sourcesContent":["import * as TenantApi from '@contember/graphql-client-tenant'\nimport { ModelType, useTenantApi } from '@contember/react-client-tenant'\nimport { useCallback } from 'react'\n\nconst identityFragment = TenantApi\n\t.identity$$\n\t.person(TenantApi.person$$)\n\t.projects(TenantApi\n\t\t.identityProjectRelation$\n\t\t.project(TenantApi.project$$)\n\t\t.memberships(TenantApi.membership$$.variables(TenantApi.variableEntry$$)),\n\t)\n\t.permissions(TenantApi.identityGlobalPermissions$$)\n\nexport type FetchedIdentity = ModelType<typeof identityFragment>\n\nexport const useFetchMe = () => {\n\tconst executor = useTenantApi()\n\treturn useCallback(async () => {\n\t\treturn (await executor(TenantApi.query$.me(identityFragment))).me\n\t}, [executor])\n}\n"],"names":["TenantApi","useTenantApi","useCallback"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAIA,MAAM,mBAAmBA,qBACvB,WACA,OAAOA,qBAAU,QAAQ,EACzB;AAAA,EAASA,qBACR,yBACA,QAAQA,qBAAU,SAAS,EAC3B,YAAYA,qBAAU,aAAa,UAAUA,qBAAU,eAAe,CAAC;AACzE,EACC,YAAYA,qBAAU,2BAA2B;AAI5C,MAAM,aAAa,MAAM;AAC/B,QAAM,WAAWC,kBAAAA;AACjB,SAAOC,kBAAY,YAAY;AAC9B,YAAQ,MAAM,SAASF,qBAAU,OAAO,GAAG,gBAAgB,CAAC,GAAG;AAAA,EAAA,GAC7D,CAAC,QAAQ,CAAC;AACd;;"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import * as TenantApi from "@contember/graphql-client-tenant";
|
|
2
|
-
import { useTenantApi } from "@contember/react-client-tenant";
|
|
3
|
-
import { useCallback } from "react";
|
|
4
|
-
const identityFragment = TenantApi.identity$$.person(TenantApi.person$$).projects(
|
|
5
|
-
TenantApi.identityProjectRelation$.project(TenantApi.project$$).memberships(TenantApi.membership$$.variables(TenantApi.variableEntry$$))
|
|
6
|
-
).permissions(TenantApi.identityGlobalPermissions$$);
|
|
7
|
-
const useFetchMe = () => {
|
|
8
|
-
const executor = useTenantApi();
|
|
9
|
-
return useCallback(async () => {
|
|
10
|
-
return (await executor(TenantApi.query$.me(identityFragment))).me;
|
|
11
|
-
}, [executor]);
|
|
12
|
-
};
|
|
13
|
-
export {
|
|
14
|
-
useFetchMe
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=useFetchMe.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useFetchMe.js","sources":["../../../../src/internal/hooks/useFetchMe.ts"],"sourcesContent":["import * as TenantApi from '@contember/graphql-client-tenant'\nimport { ModelType, useTenantApi } from '@contember/react-client-tenant'\nimport { useCallback } from 'react'\n\nconst identityFragment = TenantApi\n\t.identity$$\n\t.person(TenantApi.person$$)\n\t.projects(TenantApi\n\t\t.identityProjectRelation$\n\t\t.project(TenantApi.project$$)\n\t\t.memberships(TenantApi.membership$$.variables(TenantApi.variableEntry$$)),\n\t)\n\t.permissions(TenantApi.identityGlobalPermissions$$)\n\nexport type FetchedIdentity = ModelType<typeof identityFragment>\n\nexport const useFetchMe = () => {\n\tconst executor = useTenantApi()\n\treturn useCallback(async () => {\n\t\treturn (await executor(TenantApi.query$.me(identityFragment))).me\n\t}, [executor])\n}\n"],"names":[],"mappings":";;;AAIA,MAAM,mBAAmB,UACvB,WACA,OAAO,UAAU,QAAQ,EACzB;AAAA,EAAS,UACR,yBACA,QAAQ,UAAU,SAAS,EAC3B,YAAY,UAAU,aAAa,UAAU,UAAU,eAAe,CAAC;AACzE,EACC,YAAY,UAAU,2BAA2B;AAI5C,MAAM,aAAa,MAAM;AAC/B,QAAM,WAAW;AACjB,SAAO,YAAY,YAAY;AAC9B,YAAQ,MAAM,SAAS,UAAU,OAAO,GAAG,gBAAgB,CAAC,GAAG;AAAA,EAAA,GAC7D,CAAC,QAAQ,CAAC;AACd;"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const reactClient = require("@contember/react-client");
|
|
4
|
-
const react = require("react");
|
|
5
|
-
const useSignOut = require("./useSignOut.cjs");
|
|
6
|
-
const useLogoutInternal = (clearIdentity) => {
|
|
7
|
-
const tenantLogout = useSignOut.useSignOut();
|
|
8
|
-
const setSessionToken = reactClient.useSetSessionToken();
|
|
9
|
-
return react.useCallback(
|
|
10
|
-
async ({ noRedirect = false } = {}) => {
|
|
11
|
-
if (navigator.credentials && navigator.credentials.preventSilentAccess) {
|
|
12
|
-
try {
|
|
13
|
-
await navigator.credentials.preventSilentAccess();
|
|
14
|
-
} catch {
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
clearIdentity?.();
|
|
18
|
-
setSessionToken(void 0);
|
|
19
|
-
try {
|
|
20
|
-
const response = await tenantLogout();
|
|
21
|
-
if (!response?.ok) {
|
|
22
|
-
console.warn(response?.error);
|
|
23
|
-
}
|
|
24
|
-
} catch (e) {
|
|
25
|
-
console.warn(e);
|
|
26
|
-
}
|
|
27
|
-
if (!noRedirect) {
|
|
28
|
-
window.location.href = "/";
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
[clearIdentity, setSessionToken, tenantLogout]
|
|
32
|
-
);
|
|
33
|
-
};
|
|
34
|
-
exports.useLogoutInternal = useLogoutInternal;
|
|
35
|
-
//# sourceMappingURL=useLogoutInternal.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useLogoutInternal.cjs","sources":["../../../../src/internal/hooks/useLogoutInternal.ts"],"sourcesContent":["import { useSetSessionToken } from '@contember/react-client'\nimport { useCallback } from 'react'\nimport { useSignOut } from './useSignOut'\n\nexport const useLogoutInternal = (clearIdentity?: () => void) => {\n\tconst tenantLogout = useSignOut()\n\tconst setSessionToken = useSetSessionToken()\n\n\treturn useCallback(\n\t\tasync ({ noRedirect = false }: { noRedirect?: boolean } = {}) => {\n\t\t\tif (navigator.credentials && navigator.credentials.preventSilentAccess) {\n\t\t\t\ttry {\n\t\t\t\t\tawait navigator.credentials.preventSilentAccess()\n\t\t\t\t} catch {\n\t\t\t\t\t// actually, not implemented in safari:\n\t\t\t\t\t// https://github.com/WebKit/WebKit/blob/414f4e45b0e82bbfcee783d08a9642be1afa8f72/Source/WebCore/Modules/credentialmanagement/CredentialsContainer.cpp#L132\n\t\t\t\t}\n\t\t\t}\n\t\t\tclearIdentity?.()\n\t\t\tsetSessionToken(undefined)\n\t\t\ttry {\n\t\t\t\tconst response = await tenantLogout()\n\t\t\t\tif (!response?.ok) {\n\t\t\t\t\tconsole.warn(response?.error)\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tconsole.warn(e)\n\t\t\t}\n\t\t\tif (!noRedirect) {\n\t\t\t\twindow.location.href = '/' // todo better redirect?\n\t\t\t}\n\t\t},\n\t\t[clearIdentity, setSessionToken, tenantLogout],\n\t)\n}\n"],"names":["useSignOut","useSetSessionToken","useCallback"],"mappings":";;;;;AAIa,MAAA,oBAAoB,CAAC,kBAA+B;AAChE,QAAM,eAAeA,WAAAA;AACrB,QAAM,kBAAkBC,YAAAA;AAEjB,SAAAC,MAAA;AAAA,IACN,OAAO,EAAE,aAAa,MAAM,IAA8B,OAAO;AAChE,UAAI,UAAU,eAAe,UAAU,YAAY,qBAAqB;AACnE,YAAA;AACG,gBAAA,UAAU,YAAY;QAAoB,QACzC;AAAA,QAGR;AAAA,MACD;AACgB;AAChB,sBAAgB,MAAS;AACrB,UAAA;AACG,cAAA,WAAW,MAAM;AACnB,YAAA,CAAC,UAAU,IAAI;AACV,kBAAA,KAAK,UAAU,KAAK;AAAA,QAC7B;AAAA,eACQ,GAAG;AACX,gBAAQ,KAAK,CAAC;AAAA,MACf;AACA,UAAI,CAAC,YAAY;AAChB,eAAO,SAAS,OAAO;AAAA,MACxB;AAAA,IACD;AAAA,IACA,CAAC,eAAe,iBAAiB,YAAY;AAAA,EAAA;AAE/C;;"}
|