@contember/react-identity 1.3.0-alpha.15 → 1.3.0-alpha.16
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/HasRole.cjs +11 -3
- package/dist/development/components/HasRole.cjs.map +1 -1
- package/dist/development/components/HasRole.js +11 -3
- package/dist/development/components/HasRole.js.map +1 -1
- package/dist/development/components/IdentityProvider.cjs +18 -2
- package/dist/development/components/IdentityProvider.cjs.map +1 -1
- package/dist/development/components/IdentityProvider.js +18 -2
- package/dist/development/components/IdentityProvider.js.map +1 -1
- package/dist/development/components/IdentityState.cjs +6 -1
- package/dist/development/components/IdentityState.cjs.map +1 -1
- package/dist/development/components/IdentityState.js +6 -1
- package/dist/development/components/IdentityState.js.map +1 -1
- package/dist/development/components/LogoutTrigger.cjs +6 -2
- package/dist/development/components/LogoutTrigger.cjs.map +1 -1
- package/dist/development/components/LogoutTrigger.js +6 -2
- package/dist/development/components/LogoutTrigger.js.map +1 -1
- package/dist/development/hooks/useFetchIdentity.cjs +18 -17
- package/dist/development/hooks/useFetchIdentity.cjs.map +1 -1
- package/dist/development/hooks/useFetchIdentity.js +18 -17
- package/dist/development/hooks/useFetchIdentity.js.map +1 -1
- package/dist/production/components/IdentityState.cjs +2 -1
- package/dist/production/components/IdentityState.cjs.map +1 -1
- package/dist/production/components/IdentityState.js +2 -1
- package/dist/production/components/IdentityState.js.map +1 -1
- package/dist/production/hooks/useFetchIdentity.cjs +18 -17
- package/dist/production/hooks/useFetchIdentity.cjs.map +1 -1
- package/dist/production/hooks/useFetchIdentity.js +18 -17
- package/dist/production/hooks/useFetchIdentity.js.map +1 -1
- package/dist/types/components/IdentityState.d.ts +1 -1
- package/dist/types/components/IdentityState.d.ts.map +1 -1
- package/dist/types/hooks/useFetchIdentity.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
- package/src/components/IdentityState.tsx +2 -2
- package/src/hooks/useFetchIdentity.ts +18 -17
|
@@ -5,40 +5,41 @@ import { useLogoutInternal } from "../internal/hooks/useLogoutInternal.js";
|
|
|
5
5
|
const useFetchIdentity = () => {
|
|
6
6
|
const sessionToken = useSessionToken();
|
|
7
7
|
const fetchMe = useFetchMe();
|
|
8
|
-
const [identityState, setIdentityState] = useState(sessionToken ? "loading" : "none");
|
|
9
|
-
const
|
|
10
|
-
const clearIdentity = useCallback(() => setIdentityState("cleared"), []);
|
|
8
|
+
const [identityState, setIdentityState] = useState({ state: sessionToken ? "loading" : "none", identity: void 0 });
|
|
9
|
+
const clearIdentity = useCallback(() => setIdentityState({ state: "cleared", identity: void 0 }), []);
|
|
11
10
|
const logout = useLogoutInternal(clearIdentity);
|
|
12
11
|
const fetch = useCallback(async () => {
|
|
13
|
-
setIdentityState("loading");
|
|
12
|
+
setIdentityState({ state: "loading", identity: void 0 });
|
|
14
13
|
try {
|
|
15
14
|
const response = await fetchMe();
|
|
16
15
|
const person = response.person;
|
|
17
16
|
const projects = response.projects;
|
|
18
17
|
const permissions = response.permissions ?? { canCreateProject: false };
|
|
19
|
-
setIdentityState(
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
+
}
|
|
29
30
|
});
|
|
30
31
|
} catch (e) {
|
|
31
32
|
console.error(e);
|
|
32
33
|
if (typeof e === "object" && e !== null && "status" in e && e.status === 401) {
|
|
33
34
|
logout({ noRedirect: true });
|
|
34
|
-
setIdentityState("cleared");
|
|
35
|
+
setIdentityState({ state: "cleared", identity: void 0 });
|
|
35
36
|
} else {
|
|
36
|
-
setIdentityState("failed");
|
|
37
|
+
setIdentityState({ state: "failed", identity: void 0 });
|
|
37
38
|
}
|
|
38
39
|
}
|
|
39
40
|
}, [fetchMe, logout]);
|
|
40
41
|
return [
|
|
41
|
-
|
|
42
|
+
identityState,
|
|
42
43
|
useMemo(() => ({
|
|
43
44
|
clearIdentity,
|
|
44
45
|
refreshIdentity: fetch
|
|
@@ -1 +1 @@
|
|
|
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<
|
|
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;"}
|
|
@@ -4,5 +4,5 @@ export interface IdentityStateProps {
|
|
|
4
4
|
state: IdentityStateValue | IdentityStateValue[];
|
|
5
5
|
children: ReactNode;
|
|
6
6
|
}
|
|
7
|
-
export declare const IdentityState: ({ state, children }: IdentityStateProps) =>
|
|
7
|
+
export declare const IdentityState: ({ state, children }: IdentityStateProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
8
8
|
//# sourceMappingURL=IdentityState.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdentityState.d.ts","sourceRoot":"","sources":["../../../src/components/IdentityState.tsx"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"IdentityState.d.ts","sourceRoot":"","sources":["../../../src/components/IdentityState.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAG7C,MAAM,WAAW,kBAAkB;IAClC,KAAK,EAAE,kBAAkB,GAAG,kBAAkB,EAAE,CAAA;IAChD,QAAQ,EAAE,SAAS,CAAA;CACnB;AAED,eAAO,MAAM,aAAa,wBAAyB,kBAAkB,mDAIpE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFetchIdentity.d.ts","sourceRoot":"","sources":["../../../src/hooks/useFetchIdentity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAKxE,eAAO,MAAM,gBAAgB;
|
|
1
|
+
{"version":3,"file":"useFetchIdentity.d.ts","sourceRoot":"","sources":["../../../src/hooks/useFetchIdentity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAKxE,eAAO,MAAM,gBAAgB,QAAO,CAAC;IAAE,KAAK,EAAE,kBAAkB,CAAC;IAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAA;CAAE,EAAE,eAAe,CAgDlH,CAAA"}
|