@contember/react-client-tenant 2.1.0-alpha.22 → 2.1.0-alpha.24
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/src/components/idp/IDP.cjs +5 -5
- package/dist/development/src/components/idp/IDP.cjs.map +1 -1
- package/dist/development/src/components/idp/IDP.js +5 -5
- package/dist/development/src/components/idp/IDP.js.map +1 -1
- package/dist/development/src/internal/hooks/useHandleIDPResponse.cjs +2 -2
- package/dist/development/src/internal/hooks/useHandleIDPResponse.cjs.map +1 -1
- package/dist/development/src/internal/hooks/useHandleIDPResponse.js +2 -2
- package/dist/development/src/internal/hooks/useHandleIDPResponse.js.map +1 -1
- package/dist/development/src/internal/hooks/useInitIDPRedirect.cjs +3 -3
- package/dist/development/src/internal/hooks/useInitIDPRedirect.cjs.map +1 -1
- package/dist/development/src/internal/hooks/useInitIDPRedirect.js +3 -3
- package/dist/development/src/internal/hooks/useInitIDPRedirect.js.map +1 -1
- package/dist/production/src/components/idp/IDP.cjs +3 -3
- package/dist/production/src/components/idp/IDP.cjs.map +1 -1
- package/dist/production/src/components/idp/IDP.js +3 -3
- package/dist/production/src/components/idp/IDP.js.map +1 -1
- package/dist/production/src/internal/hooks/useHandleIDPResponse.cjs +2 -2
- package/dist/production/src/internal/hooks/useHandleIDPResponse.cjs.map +1 -1
- package/dist/production/src/internal/hooks/useHandleIDPResponse.js +2 -2
- package/dist/production/src/internal/hooks/useHandleIDPResponse.js.map +1 -1
- package/dist/production/src/internal/hooks/useInitIDPRedirect.cjs +3 -3
- package/dist/production/src/internal/hooks/useInitIDPRedirect.cjs.map +1 -1
- package/dist/production/src/internal/hooks/useInitIDPRedirect.js +3 -3
- package/dist/production/src/internal/hooks/useInitIDPRedirect.js.map +1 -1
- package/dist/types/components/idp/IDP.d.ts +2 -1
- package/dist/types/components/idp/IDP.d.ts.map +1 -1
- package/dist/types/internal/hooks/useHandleIDPResponse.d.ts +2 -1
- package/dist/types/internal/hooks/useHandleIDPResponse.d.ts.map +1 -1
- package/dist/types/internal/hooks/useInitIDPRedirect.d.ts +2 -1
- package/dist/types/internal/hooks/useInitIDPRedirect.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/src/components/idp/IDP.tsx +4 -3
- package/src/internal/hooks/useHandleIDPResponse.ts +3 -2
- package/src/internal/hooks/useInitIDPRedirect.ts +4 -3
|
@@ -6,7 +6,7 @@ const contexts = require("../../contexts.cjs");
|
|
|
6
6
|
const useHandleIDPResponse = require("../../internal/hooks/useHandleIDPResponse.cjs");
|
|
7
7
|
const useIDPAutoInit = require("../../internal/hooks/useIDPAutoInit.cjs");
|
|
8
8
|
const useInitIDPRedirect = require("../../internal/hooks/useInitIDPRedirect.cjs");
|
|
9
|
-
const IDP = ({ children, onResponseError, onInitError, onLogin, expiration }) => {
|
|
9
|
+
const IDP = ({ children, onResponseError, onInitError, onLogin, expiration, redirectUrl }) => {
|
|
10
10
|
const hasOauthResponse = React.useMemo(() => {
|
|
11
11
|
const params = new URLSearchParams(window.location.search);
|
|
12
12
|
return params.has("state") && (params.has("code") || params.has("id_token"));
|
|
@@ -21,8 +21,8 @@ const IDP = ({ children, onResponseError, onInitError, onLogin, expiration }) =>
|
|
|
21
21
|
}
|
|
22
22
|
return { type: "nothing" };
|
|
23
23
|
});
|
|
24
|
-
useHandleIDPResponse.useHandleIDPResponse({ hasOauthResponse, setState, onLogin, expiration });
|
|
25
|
-
const initRedirect = useInitIDPRedirect.useInitIDPRedirect({ setState });
|
|
24
|
+
useHandleIDPResponse.useHandleIDPResponse({ hasOauthResponse, setState, onLogin, expiration, redirectUrl });
|
|
25
|
+
const initRedirect = useInitIDPRedirect.useInitIDPRedirect({ setState, redirectUrl });
|
|
26
26
|
const isFirstRender = React.useRef(true);
|
|
27
27
|
React.useEffect(() => {
|
|
28
28
|
if (!autoInit) {
|
|
@@ -44,11 +44,11 @@ const IDP = ({ children, onResponseError, onInitError, onLogin, expiration }) =>
|
|
|
44
44
|
}, [onInitError, onResponseError, state]);
|
|
45
45
|
return /* @__PURE__ */ jsxDevRuntime.jsxDEV(contexts.IDPStateContextProvider.Provider, { value: state, children: /* @__PURE__ */ jsxDevRuntime.jsxDEV(contexts.IDPMethodsContextProvider.Provider, { value: { initRedirect }, children }, void 0, false, {
|
|
46
46
|
fileName: "/home/runner/work/contember/contember/packages/react-client-tenant/src/components/idp/IDP.tsx",
|
|
47
|
-
lineNumber:
|
|
47
|
+
lineNumber: 61,
|
|
48
48
|
columnNumber: 4
|
|
49
49
|
}, void 0) }, void 0, false, {
|
|
50
50
|
fileName: "/home/runner/work/contember/contember/packages/react-client-tenant/src/components/idp/IDP.tsx",
|
|
51
|
-
lineNumber:
|
|
51
|
+
lineNumber: 60,
|
|
52
52
|
columnNumber: 3
|
|
53
53
|
}, void 0);
|
|
54
54
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IDP.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/idp/IDP.tsx"],"sourcesContent":["import { ReactNode, useEffect, useMemo, useRef, useState } from 'react'\nimport { IDPMethodsContextProvider, IDPStateContextProvider } from '../../contexts'\nimport { IDPInitError, IDPResponseError, IDPStateValue } from '../../types/idp'\nimport { useHandleIDPResponse } from '../../internal/hooks/useHandleIDPResponse'\nimport { useIDPAutoInitProvider } from '../../internal/hooks/useIDPAutoInit'\nimport { useInitIDPRedirect } from '../../internal/hooks/useInitIDPRedirect'\n\nexport interface IDPProps {\n\tchildren: ReactNode\n\tonLogin?: () => void\n\tonInitError?: (error: IDPInitError) => void\n\tonResponseError?: (error: IDPResponseError) => void\n\texpiration?: number\n}\n\nexport const IDP = ({ children, onResponseError, onInitError, onLogin, expiration }: IDPProps) => {\n\tconst hasOauthResponse = useMemo(() => {\n\t\tconst params = new URLSearchParams(window.location.search)\n\t\treturn params.has('state') && (params.has('code') || params.has('id_token'))\n\t}, [])\n\n\tconst autoInit = useIDPAutoInitProvider()\n\tconst [state, setState] = useState<IDPStateValue>(() => {\n\t\tif (hasOauthResponse) {\n\t\t\treturn { type: 'processing_response' }\n\t\t}\n\t\tif (autoInit) {\n\t\t\treturn { type: 'processing_init' }\n\t\t}\n\t\treturn { type: 'nothing' }\n\t})\n\tuseHandleIDPResponse({ hasOauthResponse, setState, onLogin, expiration: expiration })\n\n\tconst initRedirect = useInitIDPRedirect({ setState })\n\n\tconst isFirstRender = useRef(true)\n\tuseEffect(() => {\n\t\tif (!autoInit) {\n\t\t\treturn\n\t\t}\n\t\tif (!isFirstRender.current) {\n\t\t\treturn\n\t\t}\n\t\tisFirstRender.current = false\n\t\tinitRedirect({ provider: autoInit })\n\t}, [autoInit, initRedirect])\n\n\tuseEffect(() => {\n\t\tif (state.type === 'init_failed' && onInitError) {\n\t\t\tonInitError(state.error)\n\t\t}\n\t\tif (state.type === 'response_failed' && onResponseError) {\n\t\t\tonResponseError(state.error)\n\t\t}\n\t}, [onInitError, onResponseError, state])\n\n\n\treturn (\n\t\t<IDPStateContextProvider.Provider value={state}>\n\t\t\t<IDPMethodsContextProvider.Provider value={{ initRedirect }}>\n\t\t\t\t{children}\n\t\t\t</IDPMethodsContextProvider.Provider>\n\t\t</IDPStateContextProvider.Provider>\n\t)\n\n}\n"],"names":["useMemo","useIDPAutoInitProvider","useState","useHandleIDPResponse","useInitIDPRedirect","useRef","useEffect","jsxDEV","IDPStateContextProvider","IDPMethodsContextProvider","this"],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"IDP.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/idp/IDP.tsx"],"sourcesContent":["import { ReactNode, useEffect, useMemo, useRef, useState } from 'react'\nimport { IDPMethodsContextProvider, IDPStateContextProvider } from '../../contexts'\nimport { IDPInitError, IDPResponseError, IDPStateValue } from '../../types/idp'\nimport { useHandleIDPResponse } from '../../internal/hooks/useHandleIDPResponse'\nimport { useIDPAutoInitProvider } from '../../internal/hooks/useIDPAutoInit'\nimport { useInitIDPRedirect } from '../../internal/hooks/useInitIDPRedirect'\n\nexport interface IDPProps {\n\tchildren: ReactNode\n\tonLogin?: () => void\n\tonInitError?: (error: IDPInitError) => void\n\tonResponseError?: (error: IDPResponseError) => void\n\texpiration?: number\n\tredirectUrl?: string\n}\n\nexport const IDP = ({ children, onResponseError, onInitError, onLogin, expiration, redirectUrl }: IDPProps) => {\n\tconst hasOauthResponse = useMemo(() => {\n\t\tconst params = new URLSearchParams(window.location.search)\n\t\treturn params.has('state') && (params.has('code') || params.has('id_token'))\n\t}, [])\n\n\tconst autoInit = useIDPAutoInitProvider()\n\tconst [state, setState] = useState<IDPStateValue>(() => {\n\t\tif (hasOauthResponse) {\n\t\t\treturn { type: 'processing_response' }\n\t\t}\n\t\tif (autoInit) {\n\t\t\treturn { type: 'processing_init' }\n\t\t}\n\t\treturn { type: 'nothing' }\n\t})\n\tuseHandleIDPResponse({ hasOauthResponse, setState, onLogin, expiration: expiration, redirectUrl })\n\n\tconst initRedirect = useInitIDPRedirect({ setState, redirectUrl })\n\n\tconst isFirstRender = useRef(true)\n\tuseEffect(() => {\n\t\tif (!autoInit) {\n\t\t\treturn\n\t\t}\n\t\tif (!isFirstRender.current) {\n\t\t\treturn\n\t\t}\n\t\tisFirstRender.current = false\n\t\tinitRedirect({ provider: autoInit })\n\t}, [autoInit, initRedirect])\n\n\tuseEffect(() => {\n\t\tif (state.type === 'init_failed' && onInitError) {\n\t\t\tonInitError(state.error)\n\t\t}\n\t\tif (state.type === 'response_failed' && onResponseError) {\n\t\t\tonResponseError(state.error)\n\t\t}\n\t}, [onInitError, onResponseError, state])\n\n\n\treturn (\n\t\t<IDPStateContextProvider.Provider value={state}>\n\t\t\t<IDPMethodsContextProvider.Provider value={{ initRedirect }}>\n\t\t\t\t{children}\n\t\t\t</IDPMethodsContextProvider.Provider>\n\t\t</IDPStateContextProvider.Provider>\n\t)\n\n}\n"],"names":["useMemo","useIDPAutoInitProvider","useState","useHandleIDPResponse","useInitIDPRedirect","useRef","useEffect","jsxDEV","IDPStateContextProvider","IDPMethodsContextProvider","this"],"mappings":";;;;;;;;AAgBa,MAAA,MAAM,CAAC,EAAE,UAAU,iBAAiB,aAAa,SAAS,YAAY,kBAA4B;AACxG,QAAA,mBAAmBA,MAAAA,QAAQ,MAAM;AACtC,UAAM,SAAS,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAClD,WAAA,OAAO,IAAI,OAAO,MAAM,OAAO,IAAI,MAAM,KAAK,OAAO,IAAI,UAAU;AAAA,EAC3E,GAAG,EAAE;AAEL,QAAM,WAAWC,eAAAA,uBAAuB;AACxC,QAAM,CAAC,OAAO,QAAQ,IAAIC,eAAwB,MAAM;AACvD,QAAI,kBAAkB;AACd,aAAA,EAAE,MAAM,sBAAsB;AAAA,IAAA;AAEtC,QAAI,UAAU;AACN,aAAA,EAAE,MAAM,kBAAkB;AAAA,IAAA;AAE3B,WAAA,EAAE,MAAM,UAAU;AAAA,EAAA,CACzB;AACDC,uBAAA,qBAAqB,EAAE,kBAAkB,UAAU,SAAS,YAAwB,aAAa;AAEjG,QAAM,eAAeC,mBAAA,mBAAmB,EAAE,UAAU,aAAa;AAE3D,QAAA,gBAAgBC,aAAO,IAAI;AACjCC,QAAAA,UAAU,MAAM;AACf,QAAI,CAAC,UAAU;AACd;AAAA,IAAA;AAEG,QAAA,CAAC,cAAc,SAAS;AAC3B;AAAA,IAAA;AAED,kBAAc,UAAU;AACX,iBAAA,EAAE,UAAU,UAAU;AAAA,EAAA,GACjC,CAAC,UAAU,YAAY,CAAC;AAE3BA,QAAAA,UAAU,MAAM;AACX,QAAA,MAAM,SAAS,iBAAiB,aAAa;AAChD,kBAAY,MAAM,KAAK;AAAA,IAAA;AAEpB,QAAA,MAAM,SAAS,qBAAqB,iBAAiB;AACxD,sBAAgB,MAAM,KAAK;AAAA,IAAA;AAAA,EAE1B,GAAA,CAAC,aAAa,iBAAiB,KAAK,CAAC;AAGxC,SACEC,8BAAAA,OAAAC,SAAAA,wBAAwB,UAAxB,EAAiC,OAAO,OACxC,UAAAD,qCAACE,SAAAA,0BAA0B,UAA1B,EAAmC,OAAO,EAAE,aAAA,GAC3C,YADF,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,EAIA,GAAAA,MAAA;AAGF;;"}
|
|
@@ -4,7 +4,7 @@ import { IDPStateContextProvider, IDPMethodsContextProvider } from "../../contex
|
|
|
4
4
|
import { useHandleIDPResponse } from "../../internal/hooks/useHandleIDPResponse.js";
|
|
5
5
|
import { useIDPAutoInitProvider } from "../../internal/hooks/useIDPAutoInit.js";
|
|
6
6
|
import { useInitIDPRedirect } from "../../internal/hooks/useInitIDPRedirect.js";
|
|
7
|
-
const IDP = ({ children, onResponseError, onInitError, onLogin, expiration }) => {
|
|
7
|
+
const IDP = ({ children, onResponseError, onInitError, onLogin, expiration, redirectUrl }) => {
|
|
8
8
|
const hasOauthResponse = useMemo(() => {
|
|
9
9
|
const params = new URLSearchParams(window.location.search);
|
|
10
10
|
return params.has("state") && (params.has("code") || params.has("id_token"));
|
|
@@ -19,8 +19,8 @@ const IDP = ({ children, onResponseError, onInitError, onLogin, expiration }) =>
|
|
|
19
19
|
}
|
|
20
20
|
return { type: "nothing" };
|
|
21
21
|
});
|
|
22
|
-
useHandleIDPResponse({ hasOauthResponse, setState, onLogin, expiration });
|
|
23
|
-
const initRedirect = useInitIDPRedirect({ setState });
|
|
22
|
+
useHandleIDPResponse({ hasOauthResponse, setState, onLogin, expiration, redirectUrl });
|
|
23
|
+
const initRedirect = useInitIDPRedirect({ setState, redirectUrl });
|
|
24
24
|
const isFirstRender = useRef(true);
|
|
25
25
|
useEffect(() => {
|
|
26
26
|
if (!autoInit) {
|
|
@@ -42,11 +42,11 @@ const IDP = ({ children, onResponseError, onInitError, onLogin, expiration }) =>
|
|
|
42
42
|
}, [onInitError, onResponseError, state]);
|
|
43
43
|
return /* @__PURE__ */ jsxDEV(IDPStateContextProvider.Provider, { value: state, children: /* @__PURE__ */ jsxDEV(IDPMethodsContextProvider.Provider, { value: { initRedirect }, children }, void 0, false, {
|
|
44
44
|
fileName: "/home/runner/work/contember/contember/packages/react-client-tenant/src/components/idp/IDP.tsx",
|
|
45
|
-
lineNumber:
|
|
45
|
+
lineNumber: 61,
|
|
46
46
|
columnNumber: 4
|
|
47
47
|
}, void 0) }, void 0, false, {
|
|
48
48
|
fileName: "/home/runner/work/contember/contember/packages/react-client-tenant/src/components/idp/IDP.tsx",
|
|
49
|
-
lineNumber:
|
|
49
|
+
lineNumber: 60,
|
|
50
50
|
columnNumber: 3
|
|
51
51
|
}, void 0);
|
|
52
52
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IDP.js","sources":["../../../../../../packages/react-client-tenant/src/components/idp/IDP.tsx"],"sourcesContent":["import { ReactNode, useEffect, useMemo, useRef, useState } from 'react'\nimport { IDPMethodsContextProvider, IDPStateContextProvider } from '../../contexts'\nimport { IDPInitError, IDPResponseError, IDPStateValue } from '../../types/idp'\nimport { useHandleIDPResponse } from '../../internal/hooks/useHandleIDPResponse'\nimport { useIDPAutoInitProvider } from '../../internal/hooks/useIDPAutoInit'\nimport { useInitIDPRedirect } from '../../internal/hooks/useInitIDPRedirect'\n\nexport interface IDPProps {\n\tchildren: ReactNode\n\tonLogin?: () => void\n\tonInitError?: (error: IDPInitError) => void\n\tonResponseError?: (error: IDPResponseError) => void\n\texpiration?: number\n}\n\nexport const IDP = ({ children, onResponseError, onInitError, onLogin, expiration }: IDPProps) => {\n\tconst hasOauthResponse = useMemo(() => {\n\t\tconst params = new URLSearchParams(window.location.search)\n\t\treturn params.has('state') && (params.has('code') || params.has('id_token'))\n\t}, [])\n\n\tconst autoInit = useIDPAutoInitProvider()\n\tconst [state, setState] = useState<IDPStateValue>(() => {\n\t\tif (hasOauthResponse) {\n\t\t\treturn { type: 'processing_response' }\n\t\t}\n\t\tif (autoInit) {\n\t\t\treturn { type: 'processing_init' }\n\t\t}\n\t\treturn { type: 'nothing' }\n\t})\n\tuseHandleIDPResponse({ hasOauthResponse, setState, onLogin, expiration: expiration })\n\n\tconst initRedirect = useInitIDPRedirect({ setState })\n\n\tconst isFirstRender = useRef(true)\n\tuseEffect(() => {\n\t\tif (!autoInit) {\n\t\t\treturn\n\t\t}\n\t\tif (!isFirstRender.current) {\n\t\t\treturn\n\t\t}\n\t\tisFirstRender.current = false\n\t\tinitRedirect({ provider: autoInit })\n\t}, [autoInit, initRedirect])\n\n\tuseEffect(() => {\n\t\tif (state.type === 'init_failed' && onInitError) {\n\t\t\tonInitError(state.error)\n\t\t}\n\t\tif (state.type === 'response_failed' && onResponseError) {\n\t\t\tonResponseError(state.error)\n\t\t}\n\t}, [onInitError, onResponseError, state])\n\n\n\treturn (\n\t\t<IDPStateContextProvider.Provider value={state}>\n\t\t\t<IDPMethodsContextProvider.Provider value={{ initRedirect }}>\n\t\t\t\t{children}\n\t\t\t</IDPMethodsContextProvider.Provider>\n\t\t</IDPStateContextProvider.Provider>\n\t)\n\n}\n"],"names":["this"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"IDP.js","sources":["../../../../../../packages/react-client-tenant/src/components/idp/IDP.tsx"],"sourcesContent":["import { ReactNode, useEffect, useMemo, useRef, useState } from 'react'\nimport { IDPMethodsContextProvider, IDPStateContextProvider } from '../../contexts'\nimport { IDPInitError, IDPResponseError, IDPStateValue } from '../../types/idp'\nimport { useHandleIDPResponse } from '../../internal/hooks/useHandleIDPResponse'\nimport { useIDPAutoInitProvider } from '../../internal/hooks/useIDPAutoInit'\nimport { useInitIDPRedirect } from '../../internal/hooks/useInitIDPRedirect'\n\nexport interface IDPProps {\n\tchildren: ReactNode\n\tonLogin?: () => void\n\tonInitError?: (error: IDPInitError) => void\n\tonResponseError?: (error: IDPResponseError) => void\n\texpiration?: number\n\tredirectUrl?: string\n}\n\nexport const IDP = ({ children, onResponseError, onInitError, onLogin, expiration, redirectUrl }: IDPProps) => {\n\tconst hasOauthResponse = useMemo(() => {\n\t\tconst params = new URLSearchParams(window.location.search)\n\t\treturn params.has('state') && (params.has('code') || params.has('id_token'))\n\t}, [])\n\n\tconst autoInit = useIDPAutoInitProvider()\n\tconst [state, setState] = useState<IDPStateValue>(() => {\n\t\tif (hasOauthResponse) {\n\t\t\treturn { type: 'processing_response' }\n\t\t}\n\t\tif (autoInit) {\n\t\t\treturn { type: 'processing_init' }\n\t\t}\n\t\treturn { type: 'nothing' }\n\t})\n\tuseHandleIDPResponse({ hasOauthResponse, setState, onLogin, expiration: expiration, redirectUrl })\n\n\tconst initRedirect = useInitIDPRedirect({ setState, redirectUrl })\n\n\tconst isFirstRender = useRef(true)\n\tuseEffect(() => {\n\t\tif (!autoInit) {\n\t\t\treturn\n\t\t}\n\t\tif (!isFirstRender.current) {\n\t\t\treturn\n\t\t}\n\t\tisFirstRender.current = false\n\t\tinitRedirect({ provider: autoInit })\n\t}, [autoInit, initRedirect])\n\n\tuseEffect(() => {\n\t\tif (state.type === 'init_failed' && onInitError) {\n\t\t\tonInitError(state.error)\n\t\t}\n\t\tif (state.type === 'response_failed' && onResponseError) {\n\t\t\tonResponseError(state.error)\n\t\t}\n\t}, [onInitError, onResponseError, state])\n\n\n\treturn (\n\t\t<IDPStateContextProvider.Provider value={state}>\n\t\t\t<IDPMethodsContextProvider.Provider value={{ initRedirect }}>\n\t\t\t\t{children}\n\t\t\t</IDPMethodsContextProvider.Provider>\n\t\t</IDPStateContextProvider.Provider>\n\t)\n\n}\n"],"names":["this"],"mappings":";;;;;;AAgBa,MAAA,MAAM,CAAC,EAAE,UAAU,iBAAiB,aAAa,SAAS,YAAY,kBAA4B;AACxG,QAAA,mBAAmB,QAAQ,MAAM;AACtC,UAAM,SAAS,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAClD,WAAA,OAAO,IAAI,OAAO,MAAM,OAAO,IAAI,MAAM,KAAK,OAAO,IAAI,UAAU;AAAA,EAC3E,GAAG,EAAE;AAEL,QAAM,WAAW,uBAAuB;AACxC,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAwB,MAAM;AACvD,QAAI,kBAAkB;AACd,aAAA,EAAE,MAAM,sBAAsB;AAAA,IAAA;AAEtC,QAAI,UAAU;AACN,aAAA,EAAE,MAAM,kBAAkB;AAAA,IAAA;AAE3B,WAAA,EAAE,MAAM,UAAU;AAAA,EAAA,CACzB;AACD,uBAAqB,EAAE,kBAAkB,UAAU,SAAS,YAAwB,aAAa;AAEjG,QAAM,eAAe,mBAAmB,EAAE,UAAU,aAAa;AAE3D,QAAA,gBAAgB,OAAO,IAAI;AACjC,YAAU,MAAM;AACf,QAAI,CAAC,UAAU;AACd;AAAA,IAAA;AAEG,QAAA,CAAC,cAAc,SAAS;AAC3B;AAAA,IAAA;AAED,kBAAc,UAAU;AACX,iBAAA,EAAE,UAAU,UAAU;AAAA,EAAA,GACjC,CAAC,UAAU,YAAY,CAAC;AAE3B,YAAU,MAAM;AACX,QAAA,MAAM,SAAS,iBAAiB,aAAa;AAChD,kBAAY,MAAM,KAAK;AAAA,IAAA;AAEpB,QAAA,MAAM,SAAS,qBAAqB,iBAAiB;AACxD,sBAAgB,MAAM,KAAK;AAAA,IAAA;AAAA,EAE1B,GAAA,CAAC,aAAa,iBAAiB,KAAK,CAAC;AAGxC,SACE,uBAAA,wBAAwB,UAAxB,EAAiC,OAAO,OACxC,UAAA,uBAAC,0BAA0B,UAA1B,EAAmC,OAAO,EAAE,aAAA,GAC3C,YADF,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,EAIA,GAAAA,MAAA;AAGF;"}
|
|
@@ -10,7 +10,7 @@ const headers = {
|
|
|
10
10
|
"X-Contember-Token-Path": "data.mutation.result.token"
|
|
11
11
|
};
|
|
12
12
|
const DEFAULT_LOGIN_EXPIRATION = 14 * 24 * 60;
|
|
13
|
-
const useHandleIDPResponse = ({ onLogin, expiration = DEFAULT_LOGIN_EXPIRATION, setState, hasOauthResponse }) => {
|
|
13
|
+
const useHandleIDPResponse = ({ onLogin, expiration = DEFAULT_LOGIN_EXPIRATION, setState, hasOauthResponse, redirectUrl }) => {
|
|
14
14
|
const idpSignIn = useSignInIdpMutation.useSignInIDPMutation({ headers });
|
|
15
15
|
const setSessionToken = reactClient.useSetSessionToken();
|
|
16
16
|
const firstRenderRef = React.useRef(true);
|
|
@@ -30,7 +30,7 @@ const useHandleIDPResponse = ({ onLogin, expiration = DEFAULT_LOGIN_EXPIRATION,
|
|
|
30
30
|
const response = await idpSignIn({
|
|
31
31
|
data: {
|
|
32
32
|
url: window.location.href,
|
|
33
|
-
redirectUrl: getBaseHref.getBaseHref(),
|
|
33
|
+
redirectUrl: redirectUrl || getBaseHref.getBaseHref(),
|
|
34
34
|
sessionData: idpState.sessionData
|
|
35
35
|
},
|
|
36
36
|
identityProvider: idpState.provider,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useHandleIDPResponse.cjs","sources":["../../../../../../packages/react-client-tenant/src/internal/hooks/useHandleIDPResponse.ts"],"sourcesContent":["import { SetStateAction, useEffect, useRef } from 'react'\nimport { useSetSessionToken } from '@contember/react-client'\nimport { useIDPStateStore } from './useIDPStateStore'\nimport { getBaseHref } from '../utils/getBaseHref'\nimport { IDPStateValue } from '../../types/idp'\nimport { useSignInIDPMutation } from '../../hooks'\nimport { useRedirectToBacklinkCallback } from './useRedirectToBacklink'\n\nexport interface UseHandleIDPResponseProps {\n\tonLogin?: () => void\n\texpiration?: number\n\n\tsetState: (state: SetStateAction<IDPStateValue>) => void\n\thasOauthResponse: boolean\n}\n\nconst headers = {\n\t'X-Contember-Token-Path': 'data.mutation.result.token',\n}\n\nconst DEFAULT_LOGIN_EXPIRATION = 14 * 24 * 60 // 14 days\n\nexport const useHandleIDPResponse = ({ onLogin, expiration = DEFAULT_LOGIN_EXPIRATION, setState, hasOauthResponse }: UseHandleIDPResponseProps): void => {\n\tconst idpSignIn = useSignInIDPMutation({ headers })\n\tconst setSessionToken = useSetSessionToken()\n\n\tconst firstRenderRef = useRef(true)\n\n\tconst { get: loadIdpState } = useIDPStateStore()\n\tconst redirectToBackLink = useRedirectToBacklinkCallback()\n\n\tuseEffect(() => {\n\t\tif (!hasOauthResponse || !firstRenderRef.current) {\n\t\t\treturn\n\t\t}\n\t\tfirstRenderRef.current = false\n\t\t;(async () => {\n\t\t\tconst idpState = loadIdpState()\n\t\t\tif (!idpState) {\n\t\t\t\tsetState({ type: 'response_failed', error: 'INVALID_LOCAL_STATE' })\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst response = await idpSignIn({\n\t\t\t\tdata: {\n\t\t\t\t\turl: window.location.href,\n\t\t\t\t\tredirectUrl: getBaseHref(),\n\t\t\t\t\tsessionData: idpState.sessionData,\n\t\t\t\t},\n\t\t\t\tidentityProvider: idpState.provider,\n\t\t\t\texpiration,\n\t\t\t})\n\t\t\tif (!response.ok) {\n\t\t\t\tsetState({ type: 'response_failed', error: response.error || 'UNKNOWN_ERROR' })\n\t\t\t} else {\n\t\t\t\tsetSessionToken(response.result.token)\n\t\t\t\tsetState({ type: 'success' })\n\n\t\t\t\tonLogin?.()\n\t\t\t\tredirectToBackLink()\n\t\t\t}\n\t\t})()\n\t}, [idpSignIn, onLogin, setSessionToken, hasOauthResponse, loadIdpState, expiration, setState, redirectToBackLink])\n}\n"],"names":["useSignInIDPMutation","useSetSessionToken","useRef","useIDPStateStore","useRedirectToBacklinkCallback","useEffect","getBaseHref"],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"useHandleIDPResponse.cjs","sources":["../../../../../../packages/react-client-tenant/src/internal/hooks/useHandleIDPResponse.ts"],"sourcesContent":["import { SetStateAction, useEffect, useRef } from 'react'\nimport { useSetSessionToken } from '@contember/react-client'\nimport { useIDPStateStore } from './useIDPStateStore'\nimport { getBaseHref } from '../utils/getBaseHref'\nimport { IDPStateValue } from '../../types/idp'\nimport { useSignInIDPMutation } from '../../hooks'\nimport { useRedirectToBacklinkCallback } from './useRedirectToBacklink'\n\nexport interface UseHandleIDPResponseProps {\n\tonLogin?: () => void\n\texpiration?: number\n\n\tsetState: (state: SetStateAction<IDPStateValue>) => void\n\thasOauthResponse: boolean\n\tredirectUrl?: string\n}\n\nconst headers = {\n\t'X-Contember-Token-Path': 'data.mutation.result.token',\n}\n\nconst DEFAULT_LOGIN_EXPIRATION = 14 * 24 * 60 // 14 days\n\nexport const useHandleIDPResponse = ({ onLogin, expiration = DEFAULT_LOGIN_EXPIRATION, setState, hasOauthResponse, redirectUrl }: UseHandleIDPResponseProps): void => {\n\tconst idpSignIn = useSignInIDPMutation({ headers })\n\tconst setSessionToken = useSetSessionToken()\n\n\tconst firstRenderRef = useRef(true)\n\n\tconst { get: loadIdpState } = useIDPStateStore()\n\tconst redirectToBackLink = useRedirectToBacklinkCallback()\n\n\tuseEffect(() => {\n\t\tif (!hasOauthResponse || !firstRenderRef.current) {\n\t\t\treturn\n\t\t}\n\t\tfirstRenderRef.current = false\n\t\t;(async () => {\n\t\t\tconst idpState = loadIdpState()\n\t\t\tif (!idpState) {\n\t\t\t\tsetState({ type: 'response_failed', error: 'INVALID_LOCAL_STATE' })\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst response = await idpSignIn({\n\t\t\t\tdata: {\n\t\t\t\t\turl: window.location.href,\n\t\t\t\t\tredirectUrl: redirectUrl || getBaseHref(),\n\t\t\t\t\tsessionData: idpState.sessionData,\n\t\t\t\t},\n\t\t\t\tidentityProvider: idpState.provider,\n\t\t\t\texpiration,\n\t\t\t})\n\t\t\tif (!response.ok) {\n\t\t\t\tsetState({ type: 'response_failed', error: response.error || 'UNKNOWN_ERROR' })\n\t\t\t} else {\n\t\t\t\tsetSessionToken(response.result.token)\n\t\t\t\tsetState({ type: 'success' })\n\n\t\t\t\tonLogin?.()\n\t\t\t\tredirectToBackLink()\n\t\t\t}\n\t\t})()\n\t}, [idpSignIn, onLogin, setSessionToken, hasOauthResponse, loadIdpState, expiration, setState, redirectToBackLink])\n}\n"],"names":["useSignInIDPMutation","useSetSessionToken","useRef","useIDPStateStore","useRedirectToBacklinkCallback","useEffect","getBaseHref"],"mappings":";;;;;;;;AAiBA,MAAM,UAAU;AAAA,EACf,0BAA0B;AAC3B;AAEA,MAAM,2BAA2B,KAAK,KAAK;AAE9B,MAAA,uBAAuB,CAAC,EAAE,SAAS,aAAa,0BAA0B,UAAU,kBAAkB,kBAAmD;AACrK,QAAM,YAAYA,qBAAAA,qBAAqB,EAAE,SAAS;AAClD,QAAM,kBAAkBC,YAAAA,mBAAmB;AAErC,QAAA,iBAAiBC,aAAO,IAAI;AAElC,QAAM,EAAE,KAAK,aAAa,IAAIC,kCAAiB;AAC/C,QAAM,qBAAqBC,sBAAAA,8BAA8B;AAEzDC,QAAAA,UAAU,MAAM;AACf,QAAI,CAAC,oBAAoB,CAAC,eAAe,SAAS;AACjD;AAAA,IAAA;AAED,mBAAe,UAAU;AACxB,KAAC,YAAY;AACb,YAAM,WAAW,aAAa;AAC9B,UAAI,CAAC,UAAU;AACd,iBAAS,EAAE,MAAM,mBAAmB,OAAO,uBAAuB;AAClE;AAAA,MAAA;AAGK,YAAA,WAAW,MAAM,UAAU;AAAA,QAChC,MAAM;AAAA,UACL,KAAK,OAAO,SAAS;AAAA,UACrB,aAAa,eAAeC,wBAAY;AAAA,UACxC,aAAa,SAAS;AAAA,QACvB;AAAA,QACA,kBAAkB,SAAS;AAAA,QAC3B;AAAA,MAAA,CACA;AACG,UAAA,CAAC,SAAS,IAAI;AACjB,iBAAS,EAAE,MAAM,mBAAmB,OAAO,SAAS,SAAS,iBAAiB;AAAA,MAAA,OACxE;AACU,wBAAA,SAAS,OAAO,KAAK;AAC5B,iBAAA,EAAE,MAAM,WAAW;AAElB,kBAAA;AACS,2BAAA;AAAA,MAAA;AAAA,IACpB,GACE;AAAA,EAAA,GACD,CAAC,WAAW,SAAS,iBAAiB,kBAAkB,cAAc,YAAY,UAAU,kBAAkB,CAAC;AACnH;;"}
|
|
@@ -8,7 +8,7 @@ const headers = {
|
|
|
8
8
|
"X-Contember-Token-Path": "data.mutation.result.token"
|
|
9
9
|
};
|
|
10
10
|
const DEFAULT_LOGIN_EXPIRATION = 14 * 24 * 60;
|
|
11
|
-
const useHandleIDPResponse = ({ onLogin, expiration = DEFAULT_LOGIN_EXPIRATION, setState, hasOauthResponse }) => {
|
|
11
|
+
const useHandleIDPResponse = ({ onLogin, expiration = DEFAULT_LOGIN_EXPIRATION, setState, hasOauthResponse, redirectUrl }) => {
|
|
12
12
|
const idpSignIn = useSignInIDPMutation({ headers });
|
|
13
13
|
const setSessionToken = useSetSessionToken();
|
|
14
14
|
const firstRenderRef = useRef(true);
|
|
@@ -28,7 +28,7 @@ const useHandleIDPResponse = ({ onLogin, expiration = DEFAULT_LOGIN_EXPIRATION,
|
|
|
28
28
|
const response = await idpSignIn({
|
|
29
29
|
data: {
|
|
30
30
|
url: window.location.href,
|
|
31
|
-
redirectUrl: getBaseHref(),
|
|
31
|
+
redirectUrl: redirectUrl || getBaseHref(),
|
|
32
32
|
sessionData: idpState.sessionData
|
|
33
33
|
},
|
|
34
34
|
identityProvider: idpState.provider,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useHandleIDPResponse.js","sources":["../../../../../../packages/react-client-tenant/src/internal/hooks/useHandleIDPResponse.ts"],"sourcesContent":["import { SetStateAction, useEffect, useRef } from 'react'\nimport { useSetSessionToken } from '@contember/react-client'\nimport { useIDPStateStore } from './useIDPStateStore'\nimport { getBaseHref } from '../utils/getBaseHref'\nimport { IDPStateValue } from '../../types/idp'\nimport { useSignInIDPMutation } from '../../hooks'\nimport { useRedirectToBacklinkCallback } from './useRedirectToBacklink'\n\nexport interface UseHandleIDPResponseProps {\n\tonLogin?: () => void\n\texpiration?: number\n\n\tsetState: (state: SetStateAction<IDPStateValue>) => void\n\thasOauthResponse: boolean\n}\n\nconst headers = {\n\t'X-Contember-Token-Path': 'data.mutation.result.token',\n}\n\nconst DEFAULT_LOGIN_EXPIRATION = 14 * 24 * 60 // 14 days\n\nexport const useHandleIDPResponse = ({ onLogin, expiration = DEFAULT_LOGIN_EXPIRATION, setState, hasOauthResponse }: UseHandleIDPResponseProps): void => {\n\tconst idpSignIn = useSignInIDPMutation({ headers })\n\tconst setSessionToken = useSetSessionToken()\n\n\tconst firstRenderRef = useRef(true)\n\n\tconst { get: loadIdpState } = useIDPStateStore()\n\tconst redirectToBackLink = useRedirectToBacklinkCallback()\n\n\tuseEffect(() => {\n\t\tif (!hasOauthResponse || !firstRenderRef.current) {\n\t\t\treturn\n\t\t}\n\t\tfirstRenderRef.current = false\n\t\t;(async () => {\n\t\t\tconst idpState = loadIdpState()\n\t\t\tif (!idpState) {\n\t\t\t\tsetState({ type: 'response_failed', error: 'INVALID_LOCAL_STATE' })\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst response = await idpSignIn({\n\t\t\t\tdata: {\n\t\t\t\t\turl: window.location.href,\n\t\t\t\t\tredirectUrl: getBaseHref(),\n\t\t\t\t\tsessionData: idpState.sessionData,\n\t\t\t\t},\n\t\t\t\tidentityProvider: idpState.provider,\n\t\t\t\texpiration,\n\t\t\t})\n\t\t\tif (!response.ok) {\n\t\t\t\tsetState({ type: 'response_failed', error: response.error || 'UNKNOWN_ERROR' })\n\t\t\t} else {\n\t\t\t\tsetSessionToken(response.result.token)\n\t\t\t\tsetState({ type: 'success' })\n\n\t\t\t\tonLogin?.()\n\t\t\t\tredirectToBackLink()\n\t\t\t}\n\t\t})()\n\t}, [idpSignIn, onLogin, setSessionToken, hasOauthResponse, loadIdpState, expiration, setState, redirectToBackLink])\n}\n"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"useHandleIDPResponse.js","sources":["../../../../../../packages/react-client-tenant/src/internal/hooks/useHandleIDPResponse.ts"],"sourcesContent":["import { SetStateAction, useEffect, useRef } from 'react'\nimport { useSetSessionToken } from '@contember/react-client'\nimport { useIDPStateStore } from './useIDPStateStore'\nimport { getBaseHref } from '../utils/getBaseHref'\nimport { IDPStateValue } from '../../types/idp'\nimport { useSignInIDPMutation } from '../../hooks'\nimport { useRedirectToBacklinkCallback } from './useRedirectToBacklink'\n\nexport interface UseHandleIDPResponseProps {\n\tonLogin?: () => void\n\texpiration?: number\n\n\tsetState: (state: SetStateAction<IDPStateValue>) => void\n\thasOauthResponse: boolean\n\tredirectUrl?: string\n}\n\nconst headers = {\n\t'X-Contember-Token-Path': 'data.mutation.result.token',\n}\n\nconst DEFAULT_LOGIN_EXPIRATION = 14 * 24 * 60 // 14 days\n\nexport const useHandleIDPResponse = ({ onLogin, expiration = DEFAULT_LOGIN_EXPIRATION, setState, hasOauthResponse, redirectUrl }: UseHandleIDPResponseProps): void => {\n\tconst idpSignIn = useSignInIDPMutation({ headers })\n\tconst setSessionToken = useSetSessionToken()\n\n\tconst firstRenderRef = useRef(true)\n\n\tconst { get: loadIdpState } = useIDPStateStore()\n\tconst redirectToBackLink = useRedirectToBacklinkCallback()\n\n\tuseEffect(() => {\n\t\tif (!hasOauthResponse || !firstRenderRef.current) {\n\t\t\treturn\n\t\t}\n\t\tfirstRenderRef.current = false\n\t\t;(async () => {\n\t\t\tconst idpState = loadIdpState()\n\t\t\tif (!idpState) {\n\t\t\t\tsetState({ type: 'response_failed', error: 'INVALID_LOCAL_STATE' })\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst response = await idpSignIn({\n\t\t\t\tdata: {\n\t\t\t\t\turl: window.location.href,\n\t\t\t\t\tredirectUrl: redirectUrl || getBaseHref(),\n\t\t\t\t\tsessionData: idpState.sessionData,\n\t\t\t\t},\n\t\t\t\tidentityProvider: idpState.provider,\n\t\t\t\texpiration,\n\t\t\t})\n\t\t\tif (!response.ok) {\n\t\t\t\tsetState({ type: 'response_failed', error: response.error || 'UNKNOWN_ERROR' })\n\t\t\t} else {\n\t\t\t\tsetSessionToken(response.result.token)\n\t\t\t\tsetState({ type: 'success' })\n\n\t\t\t\tonLogin?.()\n\t\t\t\tredirectToBackLink()\n\t\t\t}\n\t\t})()\n\t}, [idpSignIn, onLogin, setSessionToken, hasOauthResponse, loadIdpState, expiration, setState, redirectToBackLink])\n}\n"],"names":[],"mappings":";;;;;;AAiBA,MAAM,UAAU;AAAA,EACf,0BAA0B;AAC3B;AAEA,MAAM,2BAA2B,KAAK,KAAK;AAE9B,MAAA,uBAAuB,CAAC,EAAE,SAAS,aAAa,0BAA0B,UAAU,kBAAkB,kBAAmD;AACrK,QAAM,YAAY,qBAAqB,EAAE,SAAS;AAClD,QAAM,kBAAkB,mBAAmB;AAErC,QAAA,iBAAiB,OAAO,IAAI;AAElC,QAAM,EAAE,KAAK,aAAa,IAAI,iBAAiB;AAC/C,QAAM,qBAAqB,8BAA8B;AAEzD,YAAU,MAAM;AACf,QAAI,CAAC,oBAAoB,CAAC,eAAe,SAAS;AACjD;AAAA,IAAA;AAED,mBAAe,UAAU;AACxB,KAAC,YAAY;AACb,YAAM,WAAW,aAAa;AAC9B,UAAI,CAAC,UAAU;AACd,iBAAS,EAAE,MAAM,mBAAmB,OAAO,uBAAuB;AAClE;AAAA,MAAA;AAGK,YAAA,WAAW,MAAM,UAAU;AAAA,QAChC,MAAM;AAAA,UACL,KAAK,OAAO,SAAS;AAAA,UACrB,aAAa,eAAe,YAAY;AAAA,UACxC,aAAa,SAAS;AAAA,QACvB;AAAA,QACA,kBAAkB,SAAS;AAAA,QAC3B;AAAA,MAAA,CACA;AACG,UAAA,CAAC,SAAS,IAAI;AACjB,iBAAS,EAAE,MAAM,mBAAmB,OAAO,SAAS,SAAS,iBAAiB;AAAA,MAAA,OACxE;AACU,wBAAA,SAAS,OAAO,KAAK;AAC5B,iBAAA,EAAE,MAAM,WAAW;AAElB,kBAAA;AACS,2BAAA;AAAA,MAAA;AAAA,IACpB,GACE;AAAA,EAAA,GACD,CAAC,WAAW,SAAS,iBAAiB,kBAAkB,cAAc,YAAY,UAAU,kBAAkB,CAAC;AACnH;"}
|
|
@@ -5,7 +5,7 @@ const useIDPStateStore = require("./useIDPStateStore.cjs");
|
|
|
5
5
|
const getBaseHref = require("../utils/getBaseHref.cjs");
|
|
6
6
|
const useRedirectToBacklink = require("./useRedirectToBacklink.cjs");
|
|
7
7
|
const useInitSignInIDPMutation = require("../../hooks/mutations/idp/useInitSignInIDPMutation.cjs");
|
|
8
|
-
const useInitIDPRedirect = ({ onRedirect, setState }) => {
|
|
8
|
+
const useInitIDPRedirect = ({ onRedirect, setState, redirectUrl }) => {
|
|
9
9
|
const initRequest = useInitSignInIDPMutation.useInitSignInIDPMutation();
|
|
10
10
|
const saveBacklink = useRedirectToBacklink.useSaveBacklink();
|
|
11
11
|
const { set: saveIdpState } = useIDPStateStore.useIDPStateStore();
|
|
@@ -18,7 +18,7 @@ const useInitIDPRedirect = ({ onRedirect, setState }) => {
|
|
|
18
18
|
setState({ type: "processing_init" });
|
|
19
19
|
const response = await initRequest({
|
|
20
20
|
data: {
|
|
21
|
-
redirectUrl: getBaseHref.getBaseHref()
|
|
21
|
+
redirectUrl: redirectUrl || getBaseHref.getBaseHref()
|
|
22
22
|
},
|
|
23
23
|
identityProvider: provider
|
|
24
24
|
});
|
|
@@ -38,7 +38,7 @@ const useInitIDPRedirect = ({ onRedirect, setState }) => {
|
|
|
38
38
|
console.error(e);
|
|
39
39
|
return fail("UNKNOWN_ERROR");
|
|
40
40
|
}
|
|
41
|
-
}, [initRequest, onRedirect, saveBacklink, saveIdpState, setState]);
|
|
41
|
+
}, [initRequest, onRedirect, saveBacklink, saveIdpState, setState, redirectUrl]);
|
|
42
42
|
};
|
|
43
43
|
exports.useInitIDPRedirect = useInitIDPRedirect;
|
|
44
44
|
//# sourceMappingURL=useInitIDPRedirect.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInitIDPRedirect.cjs","sources":["../../../../../../packages/react-client-tenant/src/internal/hooks/useInitIDPRedirect.ts"],"sourcesContent":["import { SetStateAction, useCallback } from 'react'\nimport { useIDPStateStore } from './useIDPStateStore'\nimport { getBaseHref } from '../utils/getBaseHref'\nimport { IDPInitError, IDPStateValue } from '../../types/idp'\nimport { useInitSignInIDPMutation } from '../../hooks'\nimport { useSaveBacklink } from './useRedirectToBacklink'\n\nexport interface UseInitIDPRedirectProps {\n\tonRedirect?: (url: string) => void\n\tsetState: (state: SetStateAction<IDPStateValue>) => void\n}\n\nexport const useInitIDPRedirect = ({ onRedirect, setState }: UseInitIDPRedirectProps) => {\n\tconst initRequest = useInitSignInIDPMutation()\n\tconst saveBacklink = useSaveBacklink()\n\tconst { set: saveIdpState } = useIDPStateStore()\n\n\treturn useCallback(async ({ provider }: { provider: string }): Promise<{ ok: true } | { ok: false; error: IDPInitError }> => {\n\t\tconst fail = (error: IDPInitError) => {\n\t\t\tsetState({ type: 'init_failed', error })\n\t\t\treturn { ok: false, error }\n\t\t}\n\t\ttry {\n\t\t\tsetState({ type: 'processing_init' })\n\t\t\tconst response = await initRequest({\n\t\t\t\tdata: {\n\t\t\t\t\tredirectUrl: getBaseHref(),\n\t\t\t\t},\n\t\t\t\tidentityProvider: provider,\n\t\t\t})\n\t\t\tif (!response.ok) {\n\t\t\t\treturn fail(response.error || 'UNKNOWN_ERROR')\n\t\t\t} else {\n\t\t\t\tsaveIdpState({ provider, sessionData: response.result.sessionData as string })\n\t\t\t\tsaveBacklink()\n\t\t\t\tif (onRedirect) {\n\t\t\t\t\tonRedirect(response.result.authUrl as string)\n\t\t\t\t} else {\n\t\t\t\t\twindow.location.href = response.result.authUrl as string\n\t\t\t\t}\n\t\t\t\treturn { ok: true }\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t\treturn fail('UNKNOWN_ERROR')\n\t\t}\n\t}, [initRequest, onRedirect, saveBacklink, saveIdpState, setState])\n}\n"],"names":["useInitSignInIDPMutation","useSaveBacklink","useIDPStateStore","useCallback","getBaseHref"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"useInitIDPRedirect.cjs","sources":["../../../../../../packages/react-client-tenant/src/internal/hooks/useInitIDPRedirect.ts"],"sourcesContent":["import { SetStateAction, useCallback } from 'react'\nimport { useIDPStateStore } from './useIDPStateStore'\nimport { getBaseHref } from '../utils/getBaseHref'\nimport { IDPInitError, IDPStateValue } from '../../types/idp'\nimport { useInitSignInIDPMutation } from '../../hooks'\nimport { useSaveBacklink } from './useRedirectToBacklink'\n\nexport interface UseInitIDPRedirectProps {\n\tonRedirect?: (url: string) => void\n\tsetState: (state: SetStateAction<IDPStateValue>) => void\n\tredirectUrl?: string\n}\n\nexport const useInitIDPRedirect = ({ onRedirect, setState, redirectUrl }: UseInitIDPRedirectProps) => {\n\tconst initRequest = useInitSignInIDPMutation()\n\tconst saveBacklink = useSaveBacklink()\n\tconst { set: saveIdpState } = useIDPStateStore()\n\n\treturn useCallback(async ({ provider }: { provider: string }): Promise<{ ok: true } | { ok: false; error: IDPInitError }> => {\n\t\tconst fail = (error: IDPInitError) => {\n\t\t\tsetState({ type: 'init_failed', error })\n\t\t\treturn { ok: false, error }\n\t\t}\n\t\ttry {\n\t\t\tsetState({ type: 'processing_init' })\n\t\t\tconst response = await initRequest({\n\t\t\t\tdata: {\n\t\t\t\t\tredirectUrl: redirectUrl || getBaseHref(),\n\t\t\t\t},\n\t\t\t\tidentityProvider: provider,\n\t\t\t})\n\t\t\tif (!response.ok) {\n\t\t\t\treturn fail(response.error || 'UNKNOWN_ERROR')\n\t\t\t} else {\n\t\t\t\tsaveIdpState({ provider, sessionData: response.result.sessionData as string })\n\t\t\t\tsaveBacklink()\n\t\t\t\tif (onRedirect) {\n\t\t\t\t\tonRedirect(response.result.authUrl as string)\n\t\t\t\t} else {\n\t\t\t\t\twindow.location.href = response.result.authUrl as string\n\t\t\t\t}\n\t\t\t\treturn { ok: true }\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t\treturn fail('UNKNOWN_ERROR')\n\t\t}\n\t}, [initRequest, onRedirect, saveBacklink, saveIdpState, setState, redirectUrl])\n}\n"],"names":["useInitSignInIDPMutation","useSaveBacklink","useIDPStateStore","useCallback","getBaseHref"],"mappings":";;;;;;;AAaO,MAAM,qBAAqB,CAAC,EAAE,YAAY,UAAU,kBAA2C;AACrG,QAAM,cAAcA,yBAAAA,yBAAyB;AAC7C,QAAM,eAAeC,sBAAAA,gBAAgB;AACrC,QAAM,EAAE,KAAK,aAAa,IAAIC,kCAAiB;AAE/C,SAAOC,MAAY,YAAA,OAAO,EAAE,eAAiG;AACtH,UAAA,OAAO,CAAC,UAAwB;AACrC,eAAS,EAAE,MAAM,eAAe,MAAA,CAAO;AAChC,aAAA,EAAE,IAAI,OAAO,MAAM;AAAA,IAC3B;AACI,QAAA;AACM,eAAA,EAAE,MAAM,mBAAmB;AAC9B,YAAA,WAAW,MAAM,YAAY;AAAA,QAClC,MAAM;AAAA,UACL,aAAa,eAAeC,YAAY,YAAA;AAAA,QACzC;AAAA,QACA,kBAAkB;AAAA,MAAA,CAClB;AACG,UAAA,CAAC,SAAS,IAAI;AACV,eAAA,KAAK,SAAS,SAAS,eAAe;AAAA,MAAA,OACvC;AACN,qBAAa,EAAE,UAAU,aAAa,SAAS,OAAO,aAAuB;AAChE,qBAAA;AACb,YAAI,YAAY;AACJ,qBAAA,SAAS,OAAO,OAAiB;AAAA,QAAA,OACtC;AACC,iBAAA,SAAS,OAAO,SAAS,OAAO;AAAA,QAAA;AAEjC,eAAA,EAAE,IAAI,KAAK;AAAA,MAAA;AAAA,aAEX,GAAG;AACX,cAAQ,MAAM,CAAC;AACf,aAAO,KAAK,eAAe;AAAA,IAAA;AAAA,EAC5B,GACE,CAAC,aAAa,YAAY,cAAc,cAAc,UAAU,WAAW,CAAC;AAChF;;"}
|
|
@@ -3,7 +3,7 @@ import { useIDPStateStore } from "./useIDPStateStore.js";
|
|
|
3
3
|
import { getBaseHref } from "../utils/getBaseHref.js";
|
|
4
4
|
import { useSaveBacklink } from "./useRedirectToBacklink.js";
|
|
5
5
|
import { useInitSignInIDPMutation } from "../../hooks/mutations/idp/useInitSignInIDPMutation.js";
|
|
6
|
-
const useInitIDPRedirect = ({ onRedirect, setState }) => {
|
|
6
|
+
const useInitIDPRedirect = ({ onRedirect, setState, redirectUrl }) => {
|
|
7
7
|
const initRequest = useInitSignInIDPMutation();
|
|
8
8
|
const saveBacklink = useSaveBacklink();
|
|
9
9
|
const { set: saveIdpState } = useIDPStateStore();
|
|
@@ -16,7 +16,7 @@ const useInitIDPRedirect = ({ onRedirect, setState }) => {
|
|
|
16
16
|
setState({ type: "processing_init" });
|
|
17
17
|
const response = await initRequest({
|
|
18
18
|
data: {
|
|
19
|
-
redirectUrl: getBaseHref()
|
|
19
|
+
redirectUrl: redirectUrl || getBaseHref()
|
|
20
20
|
},
|
|
21
21
|
identityProvider: provider
|
|
22
22
|
});
|
|
@@ -36,7 +36,7 @@ const useInitIDPRedirect = ({ onRedirect, setState }) => {
|
|
|
36
36
|
console.error(e);
|
|
37
37
|
return fail("UNKNOWN_ERROR");
|
|
38
38
|
}
|
|
39
|
-
}, [initRequest, onRedirect, saveBacklink, saveIdpState, setState]);
|
|
39
|
+
}, [initRequest, onRedirect, saveBacklink, saveIdpState, setState, redirectUrl]);
|
|
40
40
|
};
|
|
41
41
|
export {
|
|
42
42
|
useInitIDPRedirect
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInitIDPRedirect.js","sources":["../../../../../../packages/react-client-tenant/src/internal/hooks/useInitIDPRedirect.ts"],"sourcesContent":["import { SetStateAction, useCallback } from 'react'\nimport { useIDPStateStore } from './useIDPStateStore'\nimport { getBaseHref } from '../utils/getBaseHref'\nimport { IDPInitError, IDPStateValue } from '../../types/idp'\nimport { useInitSignInIDPMutation } from '../../hooks'\nimport { useSaveBacklink } from './useRedirectToBacklink'\n\nexport interface UseInitIDPRedirectProps {\n\tonRedirect?: (url: string) => void\n\tsetState: (state: SetStateAction<IDPStateValue>) => void\n}\n\nexport const useInitIDPRedirect = ({ onRedirect, setState }: UseInitIDPRedirectProps) => {\n\tconst initRequest = useInitSignInIDPMutation()\n\tconst saveBacklink = useSaveBacklink()\n\tconst { set: saveIdpState } = useIDPStateStore()\n\n\treturn useCallback(async ({ provider }: { provider: string }): Promise<{ ok: true } | { ok: false; error: IDPInitError }> => {\n\t\tconst fail = (error: IDPInitError) => {\n\t\t\tsetState({ type: 'init_failed', error })\n\t\t\treturn { ok: false, error }\n\t\t}\n\t\ttry {\n\t\t\tsetState({ type: 'processing_init' })\n\t\t\tconst response = await initRequest({\n\t\t\t\tdata: {\n\t\t\t\t\tredirectUrl: getBaseHref(),\n\t\t\t\t},\n\t\t\t\tidentityProvider: provider,\n\t\t\t})\n\t\t\tif (!response.ok) {\n\t\t\t\treturn fail(response.error || 'UNKNOWN_ERROR')\n\t\t\t} else {\n\t\t\t\tsaveIdpState({ provider, sessionData: response.result.sessionData as string })\n\t\t\t\tsaveBacklink()\n\t\t\t\tif (onRedirect) {\n\t\t\t\t\tonRedirect(response.result.authUrl as string)\n\t\t\t\t} else {\n\t\t\t\t\twindow.location.href = response.result.authUrl as string\n\t\t\t\t}\n\t\t\t\treturn { ok: true }\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t\treturn fail('UNKNOWN_ERROR')\n\t\t}\n\t}, [initRequest, onRedirect, saveBacklink, saveIdpState, setState])\n}\n"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"useInitIDPRedirect.js","sources":["../../../../../../packages/react-client-tenant/src/internal/hooks/useInitIDPRedirect.ts"],"sourcesContent":["import { SetStateAction, useCallback } from 'react'\nimport { useIDPStateStore } from './useIDPStateStore'\nimport { getBaseHref } from '../utils/getBaseHref'\nimport { IDPInitError, IDPStateValue } from '../../types/idp'\nimport { useInitSignInIDPMutation } from '../../hooks'\nimport { useSaveBacklink } from './useRedirectToBacklink'\n\nexport interface UseInitIDPRedirectProps {\n\tonRedirect?: (url: string) => void\n\tsetState: (state: SetStateAction<IDPStateValue>) => void\n\tredirectUrl?: string\n}\n\nexport const useInitIDPRedirect = ({ onRedirect, setState, redirectUrl }: UseInitIDPRedirectProps) => {\n\tconst initRequest = useInitSignInIDPMutation()\n\tconst saveBacklink = useSaveBacklink()\n\tconst { set: saveIdpState } = useIDPStateStore()\n\n\treturn useCallback(async ({ provider }: { provider: string }): Promise<{ ok: true } | { ok: false; error: IDPInitError }> => {\n\t\tconst fail = (error: IDPInitError) => {\n\t\t\tsetState({ type: 'init_failed', error })\n\t\t\treturn { ok: false, error }\n\t\t}\n\t\ttry {\n\t\t\tsetState({ type: 'processing_init' })\n\t\t\tconst response = await initRequest({\n\t\t\t\tdata: {\n\t\t\t\t\tredirectUrl: redirectUrl || getBaseHref(),\n\t\t\t\t},\n\t\t\t\tidentityProvider: provider,\n\t\t\t})\n\t\t\tif (!response.ok) {\n\t\t\t\treturn fail(response.error || 'UNKNOWN_ERROR')\n\t\t\t} else {\n\t\t\t\tsaveIdpState({ provider, sessionData: response.result.sessionData as string })\n\t\t\t\tsaveBacklink()\n\t\t\t\tif (onRedirect) {\n\t\t\t\t\tonRedirect(response.result.authUrl as string)\n\t\t\t\t} else {\n\t\t\t\t\twindow.location.href = response.result.authUrl as string\n\t\t\t\t}\n\t\t\t\treturn { ok: true }\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t\treturn fail('UNKNOWN_ERROR')\n\t\t}\n\t}, [initRequest, onRedirect, saveBacklink, saveIdpState, setState, redirectUrl])\n}\n"],"names":[],"mappings":";;;;;AAaO,MAAM,qBAAqB,CAAC,EAAE,YAAY,UAAU,kBAA2C;AACrG,QAAM,cAAc,yBAAyB;AAC7C,QAAM,eAAe,gBAAgB;AACrC,QAAM,EAAE,KAAK,aAAa,IAAI,iBAAiB;AAE/C,SAAO,YAAY,OAAO,EAAE,eAAiG;AACtH,UAAA,OAAO,CAAC,UAAwB;AACrC,eAAS,EAAE,MAAM,eAAe,MAAA,CAAO;AAChC,aAAA,EAAE,IAAI,OAAO,MAAM;AAAA,IAC3B;AACI,QAAA;AACM,eAAA,EAAE,MAAM,mBAAmB;AAC9B,YAAA,WAAW,MAAM,YAAY;AAAA,QAClC,MAAM;AAAA,UACL,aAAa,eAAe,YAAY;AAAA,QACzC;AAAA,QACA,kBAAkB;AAAA,MAAA,CAClB;AACG,UAAA,CAAC,SAAS,IAAI;AACV,eAAA,KAAK,SAAS,SAAS,eAAe;AAAA,MAAA,OACvC;AACN,qBAAa,EAAE,UAAU,aAAa,SAAS,OAAO,aAAuB;AAChE,qBAAA;AACb,YAAI,YAAY;AACJ,qBAAA,SAAS,OAAO,OAAiB;AAAA,QAAA,OACtC;AACC,iBAAA,SAAS,OAAO,SAAS,OAAO;AAAA,QAAA;AAEjC,eAAA,EAAE,IAAI,KAAK;AAAA,MAAA;AAAA,aAEX,GAAG;AACX,cAAQ,MAAM,CAAC;AACf,aAAO,KAAK,eAAe;AAAA,IAAA;AAAA,EAC5B,GACE,CAAC,aAAa,YAAY,cAAc,cAAc,UAAU,WAAW,CAAC;AAChF;"}
|
|
@@ -6,7 +6,7 @@ const contexts = require("../../contexts.cjs");
|
|
|
6
6
|
const useHandleIDPResponse = require("../../internal/hooks/useHandleIDPResponse.cjs");
|
|
7
7
|
const useIDPAutoInit = require("../../internal/hooks/useIDPAutoInit.cjs");
|
|
8
8
|
const useInitIDPRedirect = require("../../internal/hooks/useInitIDPRedirect.cjs");
|
|
9
|
-
const IDP = ({ children, onResponseError, onInitError, onLogin, expiration }) => {
|
|
9
|
+
const IDP = ({ children, onResponseError, onInitError, onLogin, expiration, redirectUrl }) => {
|
|
10
10
|
const hasOauthResponse = React.useMemo(() => {
|
|
11
11
|
const params = new URLSearchParams(window.location.search);
|
|
12
12
|
return params.has("state") && (params.has("code") || params.has("id_token"));
|
|
@@ -21,8 +21,8 @@ const IDP = ({ children, onResponseError, onInitError, onLogin, expiration }) =>
|
|
|
21
21
|
}
|
|
22
22
|
return { type: "nothing" };
|
|
23
23
|
});
|
|
24
|
-
useHandleIDPResponse.useHandleIDPResponse({ hasOauthResponse, setState, onLogin, expiration });
|
|
25
|
-
const initRedirect = useInitIDPRedirect.useInitIDPRedirect({ setState });
|
|
24
|
+
useHandleIDPResponse.useHandleIDPResponse({ hasOauthResponse, setState, onLogin, expiration, redirectUrl });
|
|
25
|
+
const initRedirect = useInitIDPRedirect.useInitIDPRedirect({ setState, redirectUrl });
|
|
26
26
|
const isFirstRender = React.useRef(true);
|
|
27
27
|
React.useEffect(() => {
|
|
28
28
|
if (!autoInit) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IDP.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/idp/IDP.tsx"],"sourcesContent":["import { ReactNode, useEffect, useMemo, useRef, useState } from 'react'\nimport { IDPMethodsContextProvider, IDPStateContextProvider } from '../../contexts'\nimport { IDPInitError, IDPResponseError, IDPStateValue } from '../../types/idp'\nimport { useHandleIDPResponse } from '../../internal/hooks/useHandleIDPResponse'\nimport { useIDPAutoInitProvider } from '../../internal/hooks/useIDPAutoInit'\nimport { useInitIDPRedirect } from '../../internal/hooks/useInitIDPRedirect'\n\nexport interface IDPProps {\n\tchildren: ReactNode\n\tonLogin?: () => void\n\tonInitError?: (error: IDPInitError) => void\n\tonResponseError?: (error: IDPResponseError) => void\n\texpiration?: number\n}\n\nexport const IDP = ({ children, onResponseError, onInitError, onLogin, expiration }: IDPProps) => {\n\tconst hasOauthResponse = useMemo(() => {\n\t\tconst params = new URLSearchParams(window.location.search)\n\t\treturn params.has('state') && (params.has('code') || params.has('id_token'))\n\t}, [])\n\n\tconst autoInit = useIDPAutoInitProvider()\n\tconst [state, setState] = useState<IDPStateValue>(() => {\n\t\tif (hasOauthResponse) {\n\t\t\treturn { type: 'processing_response' }\n\t\t}\n\t\tif (autoInit) {\n\t\t\treturn { type: 'processing_init' }\n\t\t}\n\t\treturn { type: 'nothing' }\n\t})\n\tuseHandleIDPResponse({ hasOauthResponse, setState, onLogin, expiration: expiration })\n\n\tconst initRedirect = useInitIDPRedirect({ setState })\n\n\tconst isFirstRender = useRef(true)\n\tuseEffect(() => {\n\t\tif (!autoInit) {\n\t\t\treturn\n\t\t}\n\t\tif (!isFirstRender.current) {\n\t\t\treturn\n\t\t}\n\t\tisFirstRender.current = false\n\t\tinitRedirect({ provider: autoInit })\n\t}, [autoInit, initRedirect])\n\n\tuseEffect(() => {\n\t\tif (state.type === 'init_failed' && onInitError) {\n\t\t\tonInitError(state.error)\n\t\t}\n\t\tif (state.type === 'response_failed' && onResponseError) {\n\t\t\tonResponseError(state.error)\n\t\t}\n\t}, [onInitError, onResponseError, state])\n\n\n\treturn (\n\t\t<IDPStateContextProvider.Provider value={state}>\n\t\t\t<IDPMethodsContextProvider.Provider value={{ initRedirect }}>\n\t\t\t\t{children}\n\t\t\t</IDPMethodsContextProvider.Provider>\n\t\t</IDPStateContextProvider.Provider>\n\t)\n\n}\n"],"names":["useMemo","useIDPAutoInitProvider","useState","useHandleIDPResponse","useInitIDPRedirect","useRef","useEffect","jsx","IDPStateContextProvider","IDPMethodsContextProvider"],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"IDP.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/idp/IDP.tsx"],"sourcesContent":["import { ReactNode, useEffect, useMemo, useRef, useState } from 'react'\nimport { IDPMethodsContextProvider, IDPStateContextProvider } from '../../contexts'\nimport { IDPInitError, IDPResponseError, IDPStateValue } from '../../types/idp'\nimport { useHandleIDPResponse } from '../../internal/hooks/useHandleIDPResponse'\nimport { useIDPAutoInitProvider } from '../../internal/hooks/useIDPAutoInit'\nimport { useInitIDPRedirect } from '../../internal/hooks/useInitIDPRedirect'\n\nexport interface IDPProps {\n\tchildren: ReactNode\n\tonLogin?: () => void\n\tonInitError?: (error: IDPInitError) => void\n\tonResponseError?: (error: IDPResponseError) => void\n\texpiration?: number\n\tredirectUrl?: string\n}\n\nexport const IDP = ({ children, onResponseError, onInitError, onLogin, expiration, redirectUrl }: IDPProps) => {\n\tconst hasOauthResponse = useMemo(() => {\n\t\tconst params = new URLSearchParams(window.location.search)\n\t\treturn params.has('state') && (params.has('code') || params.has('id_token'))\n\t}, [])\n\n\tconst autoInit = useIDPAutoInitProvider()\n\tconst [state, setState] = useState<IDPStateValue>(() => {\n\t\tif (hasOauthResponse) {\n\t\t\treturn { type: 'processing_response' }\n\t\t}\n\t\tif (autoInit) {\n\t\t\treturn { type: 'processing_init' }\n\t\t}\n\t\treturn { type: 'nothing' }\n\t})\n\tuseHandleIDPResponse({ hasOauthResponse, setState, onLogin, expiration: expiration, redirectUrl })\n\n\tconst initRedirect = useInitIDPRedirect({ setState, redirectUrl })\n\n\tconst isFirstRender = useRef(true)\n\tuseEffect(() => {\n\t\tif (!autoInit) {\n\t\t\treturn\n\t\t}\n\t\tif (!isFirstRender.current) {\n\t\t\treturn\n\t\t}\n\t\tisFirstRender.current = false\n\t\tinitRedirect({ provider: autoInit })\n\t}, [autoInit, initRedirect])\n\n\tuseEffect(() => {\n\t\tif (state.type === 'init_failed' && onInitError) {\n\t\t\tonInitError(state.error)\n\t\t}\n\t\tif (state.type === 'response_failed' && onResponseError) {\n\t\t\tonResponseError(state.error)\n\t\t}\n\t}, [onInitError, onResponseError, state])\n\n\n\treturn (\n\t\t<IDPStateContextProvider.Provider value={state}>\n\t\t\t<IDPMethodsContextProvider.Provider value={{ initRedirect }}>\n\t\t\t\t{children}\n\t\t\t</IDPMethodsContextProvider.Provider>\n\t\t</IDPStateContextProvider.Provider>\n\t)\n\n}\n"],"names":["useMemo","useIDPAutoInitProvider","useState","useHandleIDPResponse","useInitIDPRedirect","useRef","useEffect","jsx","IDPStateContextProvider","IDPMethodsContextProvider"],"mappings":";;;;;;;;AAgBa,MAAA,MAAM,CAAC,EAAE,UAAU,iBAAiB,aAAa,SAAS,YAAY,kBAA4B;AACxG,QAAA,mBAAmBA,MAAAA,QAAQ,MAAM;AACtC,UAAM,SAAS,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAClD,WAAA,OAAO,IAAI,OAAO,MAAM,OAAO,IAAI,MAAM,KAAK,OAAO,IAAI,UAAU;AAAA,EAC3E,GAAG,EAAE;AAEL,QAAM,WAAWC,eAAAA,uBAAuB;AACxC,QAAM,CAAC,OAAO,QAAQ,IAAIC,eAAwB,MAAM;AACvD,QAAI,kBAAkB;AACd,aAAA,EAAE,MAAM,sBAAsB;AAAA,IAAA;AAEtC,QAAI,UAAU;AACN,aAAA,EAAE,MAAM,kBAAkB;AAAA,IAAA;AAE3B,WAAA,EAAE,MAAM,UAAU;AAAA,EAAA,CACzB;AACDC,uBAAA,qBAAqB,EAAE,kBAAkB,UAAU,SAAS,YAAwB,aAAa;AAEjG,QAAM,eAAeC,mBAAA,mBAAmB,EAAE,UAAU,aAAa;AAE3D,QAAA,gBAAgBC,aAAO,IAAI;AACjCC,QAAAA,UAAU,MAAM;AACf,QAAI,CAAC,UAAU;AACd;AAAA,IAAA;AAEG,QAAA,CAAC,cAAc,SAAS;AAC3B;AAAA,IAAA;AAED,kBAAc,UAAU;AACX,iBAAA,EAAE,UAAU,UAAU;AAAA,EAAA,GACjC,CAAC,UAAU,YAAY,CAAC;AAE3BA,QAAAA,UAAU,MAAM;AACX,QAAA,MAAM,SAAS,iBAAiB,aAAa;AAChD,kBAAY,MAAM,KAAK;AAAA,IAAA;AAEpB,QAAA,MAAM,SAAS,qBAAqB,iBAAiB;AACxD,sBAAgB,MAAM,KAAK;AAAA,IAAA;AAAA,EAE1B,GAAA,CAAC,aAAa,iBAAiB,KAAK,CAAC;AAGxC,SACEC,2BAAAA,IAAAC,SAAAA,wBAAwB,UAAxB,EAAiC,OAAO,OACxC,UAAAD,2BAAAA,IAACE,SAAAA,0BAA0B,UAA1B,EAAmC,OAAO,EAAE,aAAa,GACxD,SACF,CAAA,GACD;AAGF;;"}
|
|
@@ -4,7 +4,7 @@ import { IDPStateContextProvider, IDPMethodsContextProvider } from "../../contex
|
|
|
4
4
|
import { useHandleIDPResponse } from "../../internal/hooks/useHandleIDPResponse.js";
|
|
5
5
|
import { useIDPAutoInitProvider } from "../../internal/hooks/useIDPAutoInit.js";
|
|
6
6
|
import { useInitIDPRedirect } from "../../internal/hooks/useInitIDPRedirect.js";
|
|
7
|
-
const IDP = ({ children, onResponseError, onInitError, onLogin, expiration }) => {
|
|
7
|
+
const IDP = ({ children, onResponseError, onInitError, onLogin, expiration, redirectUrl }) => {
|
|
8
8
|
const hasOauthResponse = useMemo(() => {
|
|
9
9
|
const params = new URLSearchParams(window.location.search);
|
|
10
10
|
return params.has("state") && (params.has("code") || params.has("id_token"));
|
|
@@ -19,8 +19,8 @@ const IDP = ({ children, onResponseError, onInitError, onLogin, expiration }) =>
|
|
|
19
19
|
}
|
|
20
20
|
return { type: "nothing" };
|
|
21
21
|
});
|
|
22
|
-
useHandleIDPResponse({ hasOauthResponse, setState, onLogin, expiration });
|
|
23
|
-
const initRedirect = useInitIDPRedirect({ setState });
|
|
22
|
+
useHandleIDPResponse({ hasOauthResponse, setState, onLogin, expiration, redirectUrl });
|
|
23
|
+
const initRedirect = useInitIDPRedirect({ setState, redirectUrl });
|
|
24
24
|
const isFirstRender = useRef(true);
|
|
25
25
|
useEffect(() => {
|
|
26
26
|
if (!autoInit) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IDP.js","sources":["../../../../../../packages/react-client-tenant/src/components/idp/IDP.tsx"],"sourcesContent":["import { ReactNode, useEffect, useMemo, useRef, useState } from 'react'\nimport { IDPMethodsContextProvider, IDPStateContextProvider } from '../../contexts'\nimport { IDPInitError, IDPResponseError, IDPStateValue } from '../../types/idp'\nimport { useHandleIDPResponse } from '../../internal/hooks/useHandleIDPResponse'\nimport { useIDPAutoInitProvider } from '../../internal/hooks/useIDPAutoInit'\nimport { useInitIDPRedirect } from '../../internal/hooks/useInitIDPRedirect'\n\nexport interface IDPProps {\n\tchildren: ReactNode\n\tonLogin?: () => void\n\tonInitError?: (error: IDPInitError) => void\n\tonResponseError?: (error: IDPResponseError) => void\n\texpiration?: number\n}\n\nexport const IDP = ({ children, onResponseError, onInitError, onLogin, expiration }: IDPProps) => {\n\tconst hasOauthResponse = useMemo(() => {\n\t\tconst params = new URLSearchParams(window.location.search)\n\t\treturn params.has('state') && (params.has('code') || params.has('id_token'))\n\t}, [])\n\n\tconst autoInit = useIDPAutoInitProvider()\n\tconst [state, setState] = useState<IDPStateValue>(() => {\n\t\tif (hasOauthResponse) {\n\t\t\treturn { type: 'processing_response' }\n\t\t}\n\t\tif (autoInit) {\n\t\t\treturn { type: 'processing_init' }\n\t\t}\n\t\treturn { type: 'nothing' }\n\t})\n\tuseHandleIDPResponse({ hasOauthResponse, setState, onLogin, expiration: expiration })\n\n\tconst initRedirect = useInitIDPRedirect({ setState })\n\n\tconst isFirstRender = useRef(true)\n\tuseEffect(() => {\n\t\tif (!autoInit) {\n\t\t\treturn\n\t\t}\n\t\tif (!isFirstRender.current) {\n\t\t\treturn\n\t\t}\n\t\tisFirstRender.current = false\n\t\tinitRedirect({ provider: autoInit })\n\t}, [autoInit, initRedirect])\n\n\tuseEffect(() => {\n\t\tif (state.type === 'init_failed' && onInitError) {\n\t\t\tonInitError(state.error)\n\t\t}\n\t\tif (state.type === 'response_failed' && onResponseError) {\n\t\t\tonResponseError(state.error)\n\t\t}\n\t}, [onInitError, onResponseError, state])\n\n\n\treturn (\n\t\t<IDPStateContextProvider.Provider value={state}>\n\t\t\t<IDPMethodsContextProvider.Provider value={{ initRedirect }}>\n\t\t\t\t{children}\n\t\t\t</IDPMethodsContextProvider.Provider>\n\t\t</IDPStateContextProvider.Provider>\n\t)\n\n}\n"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"IDP.js","sources":["../../../../../../packages/react-client-tenant/src/components/idp/IDP.tsx"],"sourcesContent":["import { ReactNode, useEffect, useMemo, useRef, useState } from 'react'\nimport { IDPMethodsContextProvider, IDPStateContextProvider } from '../../contexts'\nimport { IDPInitError, IDPResponseError, IDPStateValue } from '../../types/idp'\nimport { useHandleIDPResponse } from '../../internal/hooks/useHandleIDPResponse'\nimport { useIDPAutoInitProvider } from '../../internal/hooks/useIDPAutoInit'\nimport { useInitIDPRedirect } from '../../internal/hooks/useInitIDPRedirect'\n\nexport interface IDPProps {\n\tchildren: ReactNode\n\tonLogin?: () => void\n\tonInitError?: (error: IDPInitError) => void\n\tonResponseError?: (error: IDPResponseError) => void\n\texpiration?: number\n\tredirectUrl?: string\n}\n\nexport const IDP = ({ children, onResponseError, onInitError, onLogin, expiration, redirectUrl }: IDPProps) => {\n\tconst hasOauthResponse = useMemo(() => {\n\t\tconst params = new URLSearchParams(window.location.search)\n\t\treturn params.has('state') && (params.has('code') || params.has('id_token'))\n\t}, [])\n\n\tconst autoInit = useIDPAutoInitProvider()\n\tconst [state, setState] = useState<IDPStateValue>(() => {\n\t\tif (hasOauthResponse) {\n\t\t\treturn { type: 'processing_response' }\n\t\t}\n\t\tif (autoInit) {\n\t\t\treturn { type: 'processing_init' }\n\t\t}\n\t\treturn { type: 'nothing' }\n\t})\n\tuseHandleIDPResponse({ hasOauthResponse, setState, onLogin, expiration: expiration, redirectUrl })\n\n\tconst initRedirect = useInitIDPRedirect({ setState, redirectUrl })\n\n\tconst isFirstRender = useRef(true)\n\tuseEffect(() => {\n\t\tif (!autoInit) {\n\t\t\treturn\n\t\t}\n\t\tif (!isFirstRender.current) {\n\t\t\treturn\n\t\t}\n\t\tisFirstRender.current = false\n\t\tinitRedirect({ provider: autoInit })\n\t}, [autoInit, initRedirect])\n\n\tuseEffect(() => {\n\t\tif (state.type === 'init_failed' && onInitError) {\n\t\t\tonInitError(state.error)\n\t\t}\n\t\tif (state.type === 'response_failed' && onResponseError) {\n\t\t\tonResponseError(state.error)\n\t\t}\n\t}, [onInitError, onResponseError, state])\n\n\n\treturn (\n\t\t<IDPStateContextProvider.Provider value={state}>\n\t\t\t<IDPMethodsContextProvider.Provider value={{ initRedirect }}>\n\t\t\t\t{children}\n\t\t\t</IDPMethodsContextProvider.Provider>\n\t\t</IDPStateContextProvider.Provider>\n\t)\n\n}\n"],"names":[],"mappings":";;;;;;AAgBa,MAAA,MAAM,CAAC,EAAE,UAAU,iBAAiB,aAAa,SAAS,YAAY,kBAA4B;AACxG,QAAA,mBAAmB,QAAQ,MAAM;AACtC,UAAM,SAAS,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAClD,WAAA,OAAO,IAAI,OAAO,MAAM,OAAO,IAAI,MAAM,KAAK,OAAO,IAAI,UAAU;AAAA,EAC3E,GAAG,EAAE;AAEL,QAAM,WAAW,uBAAuB;AACxC,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAwB,MAAM;AACvD,QAAI,kBAAkB;AACd,aAAA,EAAE,MAAM,sBAAsB;AAAA,IAAA;AAEtC,QAAI,UAAU;AACN,aAAA,EAAE,MAAM,kBAAkB;AAAA,IAAA;AAE3B,WAAA,EAAE,MAAM,UAAU;AAAA,EAAA,CACzB;AACD,uBAAqB,EAAE,kBAAkB,UAAU,SAAS,YAAwB,aAAa;AAEjG,QAAM,eAAe,mBAAmB,EAAE,UAAU,aAAa;AAE3D,QAAA,gBAAgB,OAAO,IAAI;AACjC,YAAU,MAAM;AACf,QAAI,CAAC,UAAU;AACd;AAAA,IAAA;AAEG,QAAA,CAAC,cAAc,SAAS;AAC3B;AAAA,IAAA;AAED,kBAAc,UAAU;AACX,iBAAA,EAAE,UAAU,UAAU;AAAA,EAAA,GACjC,CAAC,UAAU,YAAY,CAAC;AAE3B,YAAU,MAAM;AACX,QAAA,MAAM,SAAS,iBAAiB,aAAa;AAChD,kBAAY,MAAM,KAAK;AAAA,IAAA;AAEpB,QAAA,MAAM,SAAS,qBAAqB,iBAAiB;AACxD,sBAAgB,MAAM,KAAK;AAAA,IAAA;AAAA,EAE1B,GAAA,CAAC,aAAa,iBAAiB,KAAK,CAAC;AAGxC,SACE,oBAAA,wBAAwB,UAAxB,EAAiC,OAAO,OACxC,UAAA,oBAAC,0BAA0B,UAA1B,EAAmC,OAAO,EAAE,aAAa,GACxD,SACF,CAAA,GACD;AAGF;"}
|
|
@@ -10,7 +10,7 @@ const headers = {
|
|
|
10
10
|
"X-Contember-Token-Path": "data.mutation.result.token"
|
|
11
11
|
};
|
|
12
12
|
const DEFAULT_LOGIN_EXPIRATION = 14 * 24 * 60;
|
|
13
|
-
const useHandleIDPResponse = ({ onLogin, expiration = DEFAULT_LOGIN_EXPIRATION, setState, hasOauthResponse }) => {
|
|
13
|
+
const useHandleIDPResponse = ({ onLogin, expiration = DEFAULT_LOGIN_EXPIRATION, setState, hasOauthResponse, redirectUrl }) => {
|
|
14
14
|
const idpSignIn = useSignInIdpMutation.useSignInIDPMutation({ headers });
|
|
15
15
|
const setSessionToken = reactClient.useSetSessionToken();
|
|
16
16
|
const firstRenderRef = React.useRef(true);
|
|
@@ -30,7 +30,7 @@ const useHandleIDPResponse = ({ onLogin, expiration = DEFAULT_LOGIN_EXPIRATION,
|
|
|
30
30
|
const response = await idpSignIn({
|
|
31
31
|
data: {
|
|
32
32
|
url: window.location.href,
|
|
33
|
-
redirectUrl: getBaseHref.getBaseHref(),
|
|
33
|
+
redirectUrl: redirectUrl || getBaseHref.getBaseHref(),
|
|
34
34
|
sessionData: idpState.sessionData
|
|
35
35
|
},
|
|
36
36
|
identityProvider: idpState.provider,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useHandleIDPResponse.cjs","sources":["../../../../../../packages/react-client-tenant/src/internal/hooks/useHandleIDPResponse.ts"],"sourcesContent":["import { SetStateAction, useEffect, useRef } from 'react'\nimport { useSetSessionToken } from '@contember/react-client'\nimport { useIDPStateStore } from './useIDPStateStore'\nimport { getBaseHref } from '../utils/getBaseHref'\nimport { IDPStateValue } from '../../types/idp'\nimport { useSignInIDPMutation } from '../../hooks'\nimport { useRedirectToBacklinkCallback } from './useRedirectToBacklink'\n\nexport interface UseHandleIDPResponseProps {\n\tonLogin?: () => void\n\texpiration?: number\n\n\tsetState: (state: SetStateAction<IDPStateValue>) => void\n\thasOauthResponse: boolean\n}\n\nconst headers = {\n\t'X-Contember-Token-Path': 'data.mutation.result.token',\n}\n\nconst DEFAULT_LOGIN_EXPIRATION = 14 * 24 * 60 // 14 days\n\nexport const useHandleIDPResponse = ({ onLogin, expiration = DEFAULT_LOGIN_EXPIRATION, setState, hasOauthResponse }: UseHandleIDPResponseProps): void => {\n\tconst idpSignIn = useSignInIDPMutation({ headers })\n\tconst setSessionToken = useSetSessionToken()\n\n\tconst firstRenderRef = useRef(true)\n\n\tconst { get: loadIdpState } = useIDPStateStore()\n\tconst redirectToBackLink = useRedirectToBacklinkCallback()\n\n\tuseEffect(() => {\n\t\tif (!hasOauthResponse || !firstRenderRef.current) {\n\t\t\treturn\n\t\t}\n\t\tfirstRenderRef.current = false\n\t\t;(async () => {\n\t\t\tconst idpState = loadIdpState()\n\t\t\tif (!idpState) {\n\t\t\t\tsetState({ type: 'response_failed', error: 'INVALID_LOCAL_STATE' })\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst response = await idpSignIn({\n\t\t\t\tdata: {\n\t\t\t\t\turl: window.location.href,\n\t\t\t\t\tredirectUrl: getBaseHref(),\n\t\t\t\t\tsessionData: idpState.sessionData,\n\t\t\t\t},\n\t\t\t\tidentityProvider: idpState.provider,\n\t\t\t\texpiration,\n\t\t\t})\n\t\t\tif (!response.ok) {\n\t\t\t\tsetState({ type: 'response_failed', error: response.error || 'UNKNOWN_ERROR' })\n\t\t\t} else {\n\t\t\t\tsetSessionToken(response.result.token)\n\t\t\t\tsetState({ type: 'success' })\n\n\t\t\t\tonLogin?.()\n\t\t\t\tredirectToBackLink()\n\t\t\t}\n\t\t})()\n\t}, [idpSignIn, onLogin, setSessionToken, hasOauthResponse, loadIdpState, expiration, setState, redirectToBackLink])\n}\n"],"names":["useSignInIDPMutation","useSetSessionToken","useRef","useIDPStateStore","useRedirectToBacklinkCallback","useEffect","getBaseHref"],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"useHandleIDPResponse.cjs","sources":["../../../../../../packages/react-client-tenant/src/internal/hooks/useHandleIDPResponse.ts"],"sourcesContent":["import { SetStateAction, useEffect, useRef } from 'react'\nimport { useSetSessionToken } from '@contember/react-client'\nimport { useIDPStateStore } from './useIDPStateStore'\nimport { getBaseHref } from '../utils/getBaseHref'\nimport { IDPStateValue } from '../../types/idp'\nimport { useSignInIDPMutation } from '../../hooks'\nimport { useRedirectToBacklinkCallback } from './useRedirectToBacklink'\n\nexport interface UseHandleIDPResponseProps {\n\tonLogin?: () => void\n\texpiration?: number\n\n\tsetState: (state: SetStateAction<IDPStateValue>) => void\n\thasOauthResponse: boolean\n\tredirectUrl?: string\n}\n\nconst headers = {\n\t'X-Contember-Token-Path': 'data.mutation.result.token',\n}\n\nconst DEFAULT_LOGIN_EXPIRATION = 14 * 24 * 60 // 14 days\n\nexport const useHandleIDPResponse = ({ onLogin, expiration = DEFAULT_LOGIN_EXPIRATION, setState, hasOauthResponse, redirectUrl }: UseHandleIDPResponseProps): void => {\n\tconst idpSignIn = useSignInIDPMutation({ headers })\n\tconst setSessionToken = useSetSessionToken()\n\n\tconst firstRenderRef = useRef(true)\n\n\tconst { get: loadIdpState } = useIDPStateStore()\n\tconst redirectToBackLink = useRedirectToBacklinkCallback()\n\n\tuseEffect(() => {\n\t\tif (!hasOauthResponse || !firstRenderRef.current) {\n\t\t\treturn\n\t\t}\n\t\tfirstRenderRef.current = false\n\t\t;(async () => {\n\t\t\tconst idpState = loadIdpState()\n\t\t\tif (!idpState) {\n\t\t\t\tsetState({ type: 'response_failed', error: 'INVALID_LOCAL_STATE' })\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst response = await idpSignIn({\n\t\t\t\tdata: {\n\t\t\t\t\turl: window.location.href,\n\t\t\t\t\tredirectUrl: redirectUrl || getBaseHref(),\n\t\t\t\t\tsessionData: idpState.sessionData,\n\t\t\t\t},\n\t\t\t\tidentityProvider: idpState.provider,\n\t\t\t\texpiration,\n\t\t\t})\n\t\t\tif (!response.ok) {\n\t\t\t\tsetState({ type: 'response_failed', error: response.error || 'UNKNOWN_ERROR' })\n\t\t\t} else {\n\t\t\t\tsetSessionToken(response.result.token)\n\t\t\t\tsetState({ type: 'success' })\n\n\t\t\t\tonLogin?.()\n\t\t\t\tredirectToBackLink()\n\t\t\t}\n\t\t})()\n\t}, [idpSignIn, onLogin, setSessionToken, hasOauthResponse, loadIdpState, expiration, setState, redirectToBackLink])\n}\n"],"names":["useSignInIDPMutation","useSetSessionToken","useRef","useIDPStateStore","useRedirectToBacklinkCallback","useEffect","getBaseHref"],"mappings":";;;;;;;;AAiBA,MAAM,UAAU;AAAA,EACf,0BAA0B;AAC3B;AAEA,MAAM,2BAA2B,KAAK,KAAK;AAE9B,MAAA,uBAAuB,CAAC,EAAE,SAAS,aAAa,0BAA0B,UAAU,kBAAkB,kBAAmD;AACrK,QAAM,YAAYA,qBAAAA,qBAAqB,EAAE,SAAS;AAClD,QAAM,kBAAkBC,YAAAA,mBAAmB;AAErC,QAAA,iBAAiBC,aAAO,IAAI;AAElC,QAAM,EAAE,KAAK,aAAa,IAAIC,kCAAiB;AAC/C,QAAM,qBAAqBC,sBAAAA,8BAA8B;AAEzDC,QAAAA,UAAU,MAAM;AACf,QAAI,CAAC,oBAAoB,CAAC,eAAe,SAAS;AACjD;AAAA,IAAA;AAED,mBAAe,UAAU;AACxB,KAAC,YAAY;AACb,YAAM,WAAW,aAAa;AAC9B,UAAI,CAAC,UAAU;AACd,iBAAS,EAAE,MAAM,mBAAmB,OAAO,uBAAuB;AAClE;AAAA,MAAA;AAGK,YAAA,WAAW,MAAM,UAAU;AAAA,QAChC,MAAM;AAAA,UACL,KAAK,OAAO,SAAS;AAAA,UACrB,aAAa,eAAeC,wBAAY;AAAA,UACxC,aAAa,SAAS;AAAA,QACvB;AAAA,QACA,kBAAkB,SAAS;AAAA,QAC3B;AAAA,MAAA,CACA;AACG,UAAA,CAAC,SAAS,IAAI;AACjB,iBAAS,EAAE,MAAM,mBAAmB,OAAO,SAAS,SAAS,iBAAiB;AAAA,MAAA,OACxE;AACU,wBAAA,SAAS,OAAO,KAAK;AAC5B,iBAAA,EAAE,MAAM,WAAW;AAElB,kBAAA;AACS,2BAAA;AAAA,MAAA;AAAA,IACpB,GACE;AAAA,EAAA,GACD,CAAC,WAAW,SAAS,iBAAiB,kBAAkB,cAAc,YAAY,UAAU,kBAAkB,CAAC;AACnH;;"}
|
|
@@ -8,7 +8,7 @@ const headers = {
|
|
|
8
8
|
"X-Contember-Token-Path": "data.mutation.result.token"
|
|
9
9
|
};
|
|
10
10
|
const DEFAULT_LOGIN_EXPIRATION = 14 * 24 * 60;
|
|
11
|
-
const useHandleIDPResponse = ({ onLogin, expiration = DEFAULT_LOGIN_EXPIRATION, setState, hasOauthResponse }) => {
|
|
11
|
+
const useHandleIDPResponse = ({ onLogin, expiration = DEFAULT_LOGIN_EXPIRATION, setState, hasOauthResponse, redirectUrl }) => {
|
|
12
12
|
const idpSignIn = useSignInIDPMutation({ headers });
|
|
13
13
|
const setSessionToken = useSetSessionToken();
|
|
14
14
|
const firstRenderRef = useRef(true);
|
|
@@ -28,7 +28,7 @@ const useHandleIDPResponse = ({ onLogin, expiration = DEFAULT_LOGIN_EXPIRATION,
|
|
|
28
28
|
const response = await idpSignIn({
|
|
29
29
|
data: {
|
|
30
30
|
url: window.location.href,
|
|
31
|
-
redirectUrl: getBaseHref(),
|
|
31
|
+
redirectUrl: redirectUrl || getBaseHref(),
|
|
32
32
|
sessionData: idpState.sessionData
|
|
33
33
|
},
|
|
34
34
|
identityProvider: idpState.provider,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useHandleIDPResponse.js","sources":["../../../../../../packages/react-client-tenant/src/internal/hooks/useHandleIDPResponse.ts"],"sourcesContent":["import { SetStateAction, useEffect, useRef } from 'react'\nimport { useSetSessionToken } from '@contember/react-client'\nimport { useIDPStateStore } from './useIDPStateStore'\nimport { getBaseHref } from '../utils/getBaseHref'\nimport { IDPStateValue } from '../../types/idp'\nimport { useSignInIDPMutation } from '../../hooks'\nimport { useRedirectToBacklinkCallback } from './useRedirectToBacklink'\n\nexport interface UseHandleIDPResponseProps {\n\tonLogin?: () => void\n\texpiration?: number\n\n\tsetState: (state: SetStateAction<IDPStateValue>) => void\n\thasOauthResponse: boolean\n}\n\nconst headers = {\n\t'X-Contember-Token-Path': 'data.mutation.result.token',\n}\n\nconst DEFAULT_LOGIN_EXPIRATION = 14 * 24 * 60 // 14 days\n\nexport const useHandleIDPResponse = ({ onLogin, expiration = DEFAULT_LOGIN_EXPIRATION, setState, hasOauthResponse }: UseHandleIDPResponseProps): void => {\n\tconst idpSignIn = useSignInIDPMutation({ headers })\n\tconst setSessionToken = useSetSessionToken()\n\n\tconst firstRenderRef = useRef(true)\n\n\tconst { get: loadIdpState } = useIDPStateStore()\n\tconst redirectToBackLink = useRedirectToBacklinkCallback()\n\n\tuseEffect(() => {\n\t\tif (!hasOauthResponse || !firstRenderRef.current) {\n\t\t\treturn\n\t\t}\n\t\tfirstRenderRef.current = false\n\t\t;(async () => {\n\t\t\tconst idpState = loadIdpState()\n\t\t\tif (!idpState) {\n\t\t\t\tsetState({ type: 'response_failed', error: 'INVALID_LOCAL_STATE' })\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst response = await idpSignIn({\n\t\t\t\tdata: {\n\t\t\t\t\turl: window.location.href,\n\t\t\t\t\tredirectUrl: getBaseHref(),\n\t\t\t\t\tsessionData: idpState.sessionData,\n\t\t\t\t},\n\t\t\t\tidentityProvider: idpState.provider,\n\t\t\t\texpiration,\n\t\t\t})\n\t\t\tif (!response.ok) {\n\t\t\t\tsetState({ type: 'response_failed', error: response.error || 'UNKNOWN_ERROR' })\n\t\t\t} else {\n\t\t\t\tsetSessionToken(response.result.token)\n\t\t\t\tsetState({ type: 'success' })\n\n\t\t\t\tonLogin?.()\n\t\t\t\tredirectToBackLink()\n\t\t\t}\n\t\t})()\n\t}, [idpSignIn, onLogin, setSessionToken, hasOauthResponse, loadIdpState, expiration, setState, redirectToBackLink])\n}\n"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"useHandleIDPResponse.js","sources":["../../../../../../packages/react-client-tenant/src/internal/hooks/useHandleIDPResponse.ts"],"sourcesContent":["import { SetStateAction, useEffect, useRef } from 'react'\nimport { useSetSessionToken } from '@contember/react-client'\nimport { useIDPStateStore } from './useIDPStateStore'\nimport { getBaseHref } from '../utils/getBaseHref'\nimport { IDPStateValue } from '../../types/idp'\nimport { useSignInIDPMutation } from '../../hooks'\nimport { useRedirectToBacklinkCallback } from './useRedirectToBacklink'\n\nexport interface UseHandleIDPResponseProps {\n\tonLogin?: () => void\n\texpiration?: number\n\n\tsetState: (state: SetStateAction<IDPStateValue>) => void\n\thasOauthResponse: boolean\n\tredirectUrl?: string\n}\n\nconst headers = {\n\t'X-Contember-Token-Path': 'data.mutation.result.token',\n}\n\nconst DEFAULT_LOGIN_EXPIRATION = 14 * 24 * 60 // 14 days\n\nexport const useHandleIDPResponse = ({ onLogin, expiration = DEFAULT_LOGIN_EXPIRATION, setState, hasOauthResponse, redirectUrl }: UseHandleIDPResponseProps): void => {\n\tconst idpSignIn = useSignInIDPMutation({ headers })\n\tconst setSessionToken = useSetSessionToken()\n\n\tconst firstRenderRef = useRef(true)\n\n\tconst { get: loadIdpState } = useIDPStateStore()\n\tconst redirectToBackLink = useRedirectToBacklinkCallback()\n\n\tuseEffect(() => {\n\t\tif (!hasOauthResponse || !firstRenderRef.current) {\n\t\t\treturn\n\t\t}\n\t\tfirstRenderRef.current = false\n\t\t;(async () => {\n\t\t\tconst idpState = loadIdpState()\n\t\t\tif (!idpState) {\n\t\t\t\tsetState({ type: 'response_failed', error: 'INVALID_LOCAL_STATE' })\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst response = await idpSignIn({\n\t\t\t\tdata: {\n\t\t\t\t\turl: window.location.href,\n\t\t\t\t\tredirectUrl: redirectUrl || getBaseHref(),\n\t\t\t\t\tsessionData: idpState.sessionData,\n\t\t\t\t},\n\t\t\t\tidentityProvider: idpState.provider,\n\t\t\t\texpiration,\n\t\t\t})\n\t\t\tif (!response.ok) {\n\t\t\t\tsetState({ type: 'response_failed', error: response.error || 'UNKNOWN_ERROR' })\n\t\t\t} else {\n\t\t\t\tsetSessionToken(response.result.token)\n\t\t\t\tsetState({ type: 'success' })\n\n\t\t\t\tonLogin?.()\n\t\t\t\tredirectToBackLink()\n\t\t\t}\n\t\t})()\n\t}, [idpSignIn, onLogin, setSessionToken, hasOauthResponse, loadIdpState, expiration, setState, redirectToBackLink])\n}\n"],"names":[],"mappings":";;;;;;AAiBA,MAAM,UAAU;AAAA,EACf,0BAA0B;AAC3B;AAEA,MAAM,2BAA2B,KAAK,KAAK;AAE9B,MAAA,uBAAuB,CAAC,EAAE,SAAS,aAAa,0BAA0B,UAAU,kBAAkB,kBAAmD;AACrK,QAAM,YAAY,qBAAqB,EAAE,SAAS;AAClD,QAAM,kBAAkB,mBAAmB;AAErC,QAAA,iBAAiB,OAAO,IAAI;AAElC,QAAM,EAAE,KAAK,aAAa,IAAI,iBAAiB;AAC/C,QAAM,qBAAqB,8BAA8B;AAEzD,YAAU,MAAM;AACf,QAAI,CAAC,oBAAoB,CAAC,eAAe,SAAS;AACjD;AAAA,IAAA;AAED,mBAAe,UAAU;AACxB,KAAC,YAAY;AACb,YAAM,WAAW,aAAa;AAC9B,UAAI,CAAC,UAAU;AACd,iBAAS,EAAE,MAAM,mBAAmB,OAAO,uBAAuB;AAClE;AAAA,MAAA;AAGK,YAAA,WAAW,MAAM,UAAU;AAAA,QAChC,MAAM;AAAA,UACL,KAAK,OAAO,SAAS;AAAA,UACrB,aAAa,eAAe,YAAY;AAAA,UACxC,aAAa,SAAS;AAAA,QACvB;AAAA,QACA,kBAAkB,SAAS;AAAA,QAC3B;AAAA,MAAA,CACA;AACG,UAAA,CAAC,SAAS,IAAI;AACjB,iBAAS,EAAE,MAAM,mBAAmB,OAAO,SAAS,SAAS,iBAAiB;AAAA,MAAA,OACxE;AACU,wBAAA,SAAS,OAAO,KAAK;AAC5B,iBAAA,EAAE,MAAM,WAAW;AAElB,kBAAA;AACS,2BAAA;AAAA,MAAA;AAAA,IACpB,GACE;AAAA,EAAA,GACD,CAAC,WAAW,SAAS,iBAAiB,kBAAkB,cAAc,YAAY,UAAU,kBAAkB,CAAC;AACnH;"}
|
|
@@ -5,7 +5,7 @@ const useIDPStateStore = require("./useIDPStateStore.cjs");
|
|
|
5
5
|
const getBaseHref = require("../utils/getBaseHref.cjs");
|
|
6
6
|
const useRedirectToBacklink = require("./useRedirectToBacklink.cjs");
|
|
7
7
|
const useInitSignInIDPMutation = require("../../hooks/mutations/idp/useInitSignInIDPMutation.cjs");
|
|
8
|
-
const useInitIDPRedirect = ({ onRedirect, setState }) => {
|
|
8
|
+
const useInitIDPRedirect = ({ onRedirect, setState, redirectUrl }) => {
|
|
9
9
|
const initRequest = useInitSignInIDPMutation.useInitSignInIDPMutation();
|
|
10
10
|
const saveBacklink = useRedirectToBacklink.useSaveBacklink();
|
|
11
11
|
const { set: saveIdpState } = useIDPStateStore.useIDPStateStore();
|
|
@@ -18,7 +18,7 @@ const useInitIDPRedirect = ({ onRedirect, setState }) => {
|
|
|
18
18
|
setState({ type: "processing_init" });
|
|
19
19
|
const response = await initRequest({
|
|
20
20
|
data: {
|
|
21
|
-
redirectUrl: getBaseHref.getBaseHref()
|
|
21
|
+
redirectUrl: redirectUrl || getBaseHref.getBaseHref()
|
|
22
22
|
},
|
|
23
23
|
identityProvider: provider
|
|
24
24
|
});
|
|
@@ -38,7 +38,7 @@ const useInitIDPRedirect = ({ onRedirect, setState }) => {
|
|
|
38
38
|
console.error(e);
|
|
39
39
|
return fail("UNKNOWN_ERROR");
|
|
40
40
|
}
|
|
41
|
-
}, [initRequest, onRedirect, saveBacklink, saveIdpState, setState]);
|
|
41
|
+
}, [initRequest, onRedirect, saveBacklink, saveIdpState, setState, redirectUrl]);
|
|
42
42
|
};
|
|
43
43
|
exports.useInitIDPRedirect = useInitIDPRedirect;
|
|
44
44
|
//# sourceMappingURL=useInitIDPRedirect.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInitIDPRedirect.cjs","sources":["../../../../../../packages/react-client-tenant/src/internal/hooks/useInitIDPRedirect.ts"],"sourcesContent":["import { SetStateAction, useCallback } from 'react'\nimport { useIDPStateStore } from './useIDPStateStore'\nimport { getBaseHref } from '../utils/getBaseHref'\nimport { IDPInitError, IDPStateValue } from '../../types/idp'\nimport { useInitSignInIDPMutation } from '../../hooks'\nimport { useSaveBacklink } from './useRedirectToBacklink'\n\nexport interface UseInitIDPRedirectProps {\n\tonRedirect?: (url: string) => void\n\tsetState: (state: SetStateAction<IDPStateValue>) => void\n}\n\nexport const useInitIDPRedirect = ({ onRedirect, setState }: UseInitIDPRedirectProps) => {\n\tconst initRequest = useInitSignInIDPMutation()\n\tconst saveBacklink = useSaveBacklink()\n\tconst { set: saveIdpState } = useIDPStateStore()\n\n\treturn useCallback(async ({ provider }: { provider: string }): Promise<{ ok: true } | { ok: false; error: IDPInitError }> => {\n\t\tconst fail = (error: IDPInitError) => {\n\t\t\tsetState({ type: 'init_failed', error })\n\t\t\treturn { ok: false, error }\n\t\t}\n\t\ttry {\n\t\t\tsetState({ type: 'processing_init' })\n\t\t\tconst response = await initRequest({\n\t\t\t\tdata: {\n\t\t\t\t\tredirectUrl: getBaseHref(),\n\t\t\t\t},\n\t\t\t\tidentityProvider: provider,\n\t\t\t})\n\t\t\tif (!response.ok) {\n\t\t\t\treturn fail(response.error || 'UNKNOWN_ERROR')\n\t\t\t} else {\n\t\t\t\tsaveIdpState({ provider, sessionData: response.result.sessionData as string })\n\t\t\t\tsaveBacklink()\n\t\t\t\tif (onRedirect) {\n\t\t\t\t\tonRedirect(response.result.authUrl as string)\n\t\t\t\t} else {\n\t\t\t\t\twindow.location.href = response.result.authUrl as string\n\t\t\t\t}\n\t\t\t\treturn { ok: true }\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t\treturn fail('UNKNOWN_ERROR')\n\t\t}\n\t}, [initRequest, onRedirect, saveBacklink, saveIdpState, setState])\n}\n"],"names":["useInitSignInIDPMutation","useSaveBacklink","useIDPStateStore","useCallback","getBaseHref"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"useInitIDPRedirect.cjs","sources":["../../../../../../packages/react-client-tenant/src/internal/hooks/useInitIDPRedirect.ts"],"sourcesContent":["import { SetStateAction, useCallback } from 'react'\nimport { useIDPStateStore } from './useIDPStateStore'\nimport { getBaseHref } from '../utils/getBaseHref'\nimport { IDPInitError, IDPStateValue } from '../../types/idp'\nimport { useInitSignInIDPMutation } from '../../hooks'\nimport { useSaveBacklink } from './useRedirectToBacklink'\n\nexport interface UseInitIDPRedirectProps {\n\tonRedirect?: (url: string) => void\n\tsetState: (state: SetStateAction<IDPStateValue>) => void\n\tredirectUrl?: string\n}\n\nexport const useInitIDPRedirect = ({ onRedirect, setState, redirectUrl }: UseInitIDPRedirectProps) => {\n\tconst initRequest = useInitSignInIDPMutation()\n\tconst saveBacklink = useSaveBacklink()\n\tconst { set: saveIdpState } = useIDPStateStore()\n\n\treturn useCallback(async ({ provider }: { provider: string }): Promise<{ ok: true } | { ok: false; error: IDPInitError }> => {\n\t\tconst fail = (error: IDPInitError) => {\n\t\t\tsetState({ type: 'init_failed', error })\n\t\t\treturn { ok: false, error }\n\t\t}\n\t\ttry {\n\t\t\tsetState({ type: 'processing_init' })\n\t\t\tconst response = await initRequest({\n\t\t\t\tdata: {\n\t\t\t\t\tredirectUrl: redirectUrl || getBaseHref(),\n\t\t\t\t},\n\t\t\t\tidentityProvider: provider,\n\t\t\t})\n\t\t\tif (!response.ok) {\n\t\t\t\treturn fail(response.error || 'UNKNOWN_ERROR')\n\t\t\t} else {\n\t\t\t\tsaveIdpState({ provider, sessionData: response.result.sessionData as string })\n\t\t\t\tsaveBacklink()\n\t\t\t\tif (onRedirect) {\n\t\t\t\t\tonRedirect(response.result.authUrl as string)\n\t\t\t\t} else {\n\t\t\t\t\twindow.location.href = response.result.authUrl as string\n\t\t\t\t}\n\t\t\t\treturn { ok: true }\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t\treturn fail('UNKNOWN_ERROR')\n\t\t}\n\t}, [initRequest, onRedirect, saveBacklink, saveIdpState, setState, redirectUrl])\n}\n"],"names":["useInitSignInIDPMutation","useSaveBacklink","useIDPStateStore","useCallback","getBaseHref"],"mappings":";;;;;;;AAaO,MAAM,qBAAqB,CAAC,EAAE,YAAY,UAAU,kBAA2C;AACrG,QAAM,cAAcA,yBAAAA,yBAAyB;AAC7C,QAAM,eAAeC,sBAAAA,gBAAgB;AACrC,QAAM,EAAE,KAAK,aAAa,IAAIC,kCAAiB;AAE/C,SAAOC,MAAY,YAAA,OAAO,EAAE,eAAiG;AACtH,UAAA,OAAO,CAAC,UAAwB;AACrC,eAAS,EAAE,MAAM,eAAe,MAAA,CAAO;AAChC,aAAA,EAAE,IAAI,OAAO,MAAM;AAAA,IAC3B;AACI,QAAA;AACM,eAAA,EAAE,MAAM,mBAAmB;AAC9B,YAAA,WAAW,MAAM,YAAY;AAAA,QAClC,MAAM;AAAA,UACL,aAAa,eAAeC,YAAY,YAAA;AAAA,QACzC;AAAA,QACA,kBAAkB;AAAA,MAAA,CAClB;AACG,UAAA,CAAC,SAAS,IAAI;AACV,eAAA,KAAK,SAAS,SAAS,eAAe;AAAA,MAAA,OACvC;AACN,qBAAa,EAAE,UAAU,aAAa,SAAS,OAAO,aAAuB;AAChE,qBAAA;AACb,YAAI,YAAY;AACJ,qBAAA,SAAS,OAAO,OAAiB;AAAA,QAAA,OACtC;AACC,iBAAA,SAAS,OAAO,SAAS,OAAO;AAAA,QAAA;AAEjC,eAAA,EAAE,IAAI,KAAK;AAAA,MAAA;AAAA,aAEX,GAAG;AACX,cAAQ,MAAM,CAAC;AACf,aAAO,KAAK,eAAe;AAAA,IAAA;AAAA,EAC5B,GACE,CAAC,aAAa,YAAY,cAAc,cAAc,UAAU,WAAW,CAAC;AAChF;;"}
|
|
@@ -3,7 +3,7 @@ import { useIDPStateStore } from "./useIDPStateStore.js";
|
|
|
3
3
|
import { getBaseHref } from "../utils/getBaseHref.js";
|
|
4
4
|
import { useSaveBacklink } from "./useRedirectToBacklink.js";
|
|
5
5
|
import { useInitSignInIDPMutation } from "../../hooks/mutations/idp/useInitSignInIDPMutation.js";
|
|
6
|
-
const useInitIDPRedirect = ({ onRedirect, setState }) => {
|
|
6
|
+
const useInitIDPRedirect = ({ onRedirect, setState, redirectUrl }) => {
|
|
7
7
|
const initRequest = useInitSignInIDPMutation();
|
|
8
8
|
const saveBacklink = useSaveBacklink();
|
|
9
9
|
const { set: saveIdpState } = useIDPStateStore();
|
|
@@ -16,7 +16,7 @@ const useInitIDPRedirect = ({ onRedirect, setState }) => {
|
|
|
16
16
|
setState({ type: "processing_init" });
|
|
17
17
|
const response = await initRequest({
|
|
18
18
|
data: {
|
|
19
|
-
redirectUrl: getBaseHref()
|
|
19
|
+
redirectUrl: redirectUrl || getBaseHref()
|
|
20
20
|
},
|
|
21
21
|
identityProvider: provider
|
|
22
22
|
});
|
|
@@ -36,7 +36,7 @@ const useInitIDPRedirect = ({ onRedirect, setState }) => {
|
|
|
36
36
|
console.error(e);
|
|
37
37
|
return fail("UNKNOWN_ERROR");
|
|
38
38
|
}
|
|
39
|
-
}, [initRequest, onRedirect, saveBacklink, saveIdpState, setState]);
|
|
39
|
+
}, [initRequest, onRedirect, saveBacklink, saveIdpState, setState, redirectUrl]);
|
|
40
40
|
};
|
|
41
41
|
export {
|
|
42
42
|
useInitIDPRedirect
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInitIDPRedirect.js","sources":["../../../../../../packages/react-client-tenant/src/internal/hooks/useInitIDPRedirect.ts"],"sourcesContent":["import { SetStateAction, useCallback } from 'react'\nimport { useIDPStateStore } from './useIDPStateStore'\nimport { getBaseHref } from '../utils/getBaseHref'\nimport { IDPInitError, IDPStateValue } from '../../types/idp'\nimport { useInitSignInIDPMutation } from '../../hooks'\nimport { useSaveBacklink } from './useRedirectToBacklink'\n\nexport interface UseInitIDPRedirectProps {\n\tonRedirect?: (url: string) => void\n\tsetState: (state: SetStateAction<IDPStateValue>) => void\n}\n\nexport const useInitIDPRedirect = ({ onRedirect, setState }: UseInitIDPRedirectProps) => {\n\tconst initRequest = useInitSignInIDPMutation()\n\tconst saveBacklink = useSaveBacklink()\n\tconst { set: saveIdpState } = useIDPStateStore()\n\n\treturn useCallback(async ({ provider }: { provider: string }): Promise<{ ok: true } | { ok: false; error: IDPInitError }> => {\n\t\tconst fail = (error: IDPInitError) => {\n\t\t\tsetState({ type: 'init_failed', error })\n\t\t\treturn { ok: false, error }\n\t\t}\n\t\ttry {\n\t\t\tsetState({ type: 'processing_init' })\n\t\t\tconst response = await initRequest({\n\t\t\t\tdata: {\n\t\t\t\t\tredirectUrl: getBaseHref(),\n\t\t\t\t},\n\t\t\t\tidentityProvider: provider,\n\t\t\t})\n\t\t\tif (!response.ok) {\n\t\t\t\treturn fail(response.error || 'UNKNOWN_ERROR')\n\t\t\t} else {\n\t\t\t\tsaveIdpState({ provider, sessionData: response.result.sessionData as string })\n\t\t\t\tsaveBacklink()\n\t\t\t\tif (onRedirect) {\n\t\t\t\t\tonRedirect(response.result.authUrl as string)\n\t\t\t\t} else {\n\t\t\t\t\twindow.location.href = response.result.authUrl as string\n\t\t\t\t}\n\t\t\t\treturn { ok: true }\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t\treturn fail('UNKNOWN_ERROR')\n\t\t}\n\t}, [initRequest, onRedirect, saveBacklink, saveIdpState, setState])\n}\n"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"useInitIDPRedirect.js","sources":["../../../../../../packages/react-client-tenant/src/internal/hooks/useInitIDPRedirect.ts"],"sourcesContent":["import { SetStateAction, useCallback } from 'react'\nimport { useIDPStateStore } from './useIDPStateStore'\nimport { getBaseHref } from '../utils/getBaseHref'\nimport { IDPInitError, IDPStateValue } from '../../types/idp'\nimport { useInitSignInIDPMutation } from '../../hooks'\nimport { useSaveBacklink } from './useRedirectToBacklink'\n\nexport interface UseInitIDPRedirectProps {\n\tonRedirect?: (url: string) => void\n\tsetState: (state: SetStateAction<IDPStateValue>) => void\n\tredirectUrl?: string\n}\n\nexport const useInitIDPRedirect = ({ onRedirect, setState, redirectUrl }: UseInitIDPRedirectProps) => {\n\tconst initRequest = useInitSignInIDPMutation()\n\tconst saveBacklink = useSaveBacklink()\n\tconst { set: saveIdpState } = useIDPStateStore()\n\n\treturn useCallback(async ({ provider }: { provider: string }): Promise<{ ok: true } | { ok: false; error: IDPInitError }> => {\n\t\tconst fail = (error: IDPInitError) => {\n\t\t\tsetState({ type: 'init_failed', error })\n\t\t\treturn { ok: false, error }\n\t\t}\n\t\ttry {\n\t\t\tsetState({ type: 'processing_init' })\n\t\t\tconst response = await initRequest({\n\t\t\t\tdata: {\n\t\t\t\t\tredirectUrl: redirectUrl || getBaseHref(),\n\t\t\t\t},\n\t\t\t\tidentityProvider: provider,\n\t\t\t})\n\t\t\tif (!response.ok) {\n\t\t\t\treturn fail(response.error || 'UNKNOWN_ERROR')\n\t\t\t} else {\n\t\t\t\tsaveIdpState({ provider, sessionData: response.result.sessionData as string })\n\t\t\t\tsaveBacklink()\n\t\t\t\tif (onRedirect) {\n\t\t\t\t\tonRedirect(response.result.authUrl as string)\n\t\t\t\t} else {\n\t\t\t\t\twindow.location.href = response.result.authUrl as string\n\t\t\t\t}\n\t\t\t\treturn { ok: true }\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t\treturn fail('UNKNOWN_ERROR')\n\t\t}\n\t}, [initRequest, onRedirect, saveBacklink, saveIdpState, setState, redirectUrl])\n}\n"],"names":[],"mappings":";;;;;AAaO,MAAM,qBAAqB,CAAC,EAAE,YAAY,UAAU,kBAA2C;AACrG,QAAM,cAAc,yBAAyB;AAC7C,QAAM,eAAe,gBAAgB;AACrC,QAAM,EAAE,KAAK,aAAa,IAAI,iBAAiB;AAE/C,SAAO,YAAY,OAAO,EAAE,eAAiG;AACtH,UAAA,OAAO,CAAC,UAAwB;AACrC,eAAS,EAAE,MAAM,eAAe,MAAA,CAAO;AAChC,aAAA,EAAE,IAAI,OAAO,MAAM;AAAA,IAC3B;AACI,QAAA;AACM,eAAA,EAAE,MAAM,mBAAmB;AAC9B,YAAA,WAAW,MAAM,YAAY;AAAA,QAClC,MAAM;AAAA,UACL,aAAa,eAAe,YAAY;AAAA,QACzC;AAAA,QACA,kBAAkB;AAAA,MAAA,CAClB;AACG,UAAA,CAAC,SAAS,IAAI;AACV,eAAA,KAAK,SAAS,SAAS,eAAe;AAAA,MAAA,OACvC;AACN,qBAAa,EAAE,UAAU,aAAa,SAAS,OAAO,aAAuB;AAChE,qBAAA;AACb,YAAI,YAAY;AACJ,qBAAA,SAAS,OAAO,OAAiB;AAAA,QAAA,OACtC;AACC,iBAAA,SAAS,OAAO,SAAS,OAAO;AAAA,QAAA;AAEjC,eAAA,EAAE,IAAI,KAAK;AAAA,MAAA;AAAA,aAEX,GAAG;AACX,cAAQ,MAAM,CAAC;AACf,aAAO,KAAK,eAAe;AAAA,IAAA;AAAA,EAC5B,GACE,CAAC,aAAa,YAAY,cAAc,cAAc,UAAU,WAAW,CAAC;AAChF;"}
|
|
@@ -6,6 +6,7 @@ export interface IDPProps {
|
|
|
6
6
|
onInitError?: (error: IDPInitError) => void;
|
|
7
7
|
onResponseError?: (error: IDPResponseError) => void;
|
|
8
8
|
expiration?: number;
|
|
9
|
+
redirectUrl?: string;
|
|
9
10
|
}
|
|
10
|
-
export declare const IDP: ({ children, onResponseError, onInitError, onLogin, expiration }: IDPProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export declare const IDP: ({ children, onResponseError, onInitError, onLogin, expiration, redirectUrl }: IDPProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
12
|
//# sourceMappingURL=IDP.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IDP.d.ts","sourceRoot":"","sources":["../../../../src/components/idp/IDP.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAwC,MAAM,OAAO,CAAA;AAEvE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAiB,MAAM,iBAAiB,CAAA;AAK/E,MAAM,WAAW,QAAQ;IACxB,QAAQ,EAAE,SAAS,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAA;IAC3C,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAA;IACnD,UAAU,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"IDP.d.ts","sourceRoot":"","sources":["../../../../src/components/idp/IDP.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAwC,MAAM,OAAO,CAAA;AAEvE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAiB,MAAM,iBAAiB,CAAA;AAK/E,MAAM,WAAW,QAAQ;IACxB,QAAQ,EAAE,SAAS,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAA;IAC3C,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAA;IACnD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,eAAO,MAAM,GAAG,GAAI,8EAA8E,QAAQ,4CAkDzG,CAAA"}
|
|
@@ -5,6 +5,7 @@ export interface UseHandleIDPResponseProps {
|
|
|
5
5
|
expiration?: number;
|
|
6
6
|
setState: (state: SetStateAction<IDPStateValue>) => void;
|
|
7
7
|
hasOauthResponse: boolean;
|
|
8
|
+
redirectUrl?: string;
|
|
8
9
|
}
|
|
9
|
-
export declare const useHandleIDPResponse: ({ onLogin, expiration, setState, hasOauthResponse }: UseHandleIDPResponseProps) => void;
|
|
10
|
+
export declare const useHandleIDPResponse: ({ onLogin, expiration, setState, hasOauthResponse, redirectUrl }: UseHandleIDPResponseProps) => void;
|
|
10
11
|
//# sourceMappingURL=useHandleIDPResponse.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useHandleIDPResponse.d.ts","sourceRoot":"","sources":["../../../../src/internal/hooks/useHandleIDPResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,OAAO,CAAA;AAIzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAI/C,MAAM,WAAW,yBAAyB;IACzC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,aAAa,CAAC,KAAK,IAAI,CAAA;IACxD,gBAAgB,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"useHandleIDPResponse.d.ts","sourceRoot":"","sources":["../../../../src/internal/hooks/useHandleIDPResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,OAAO,CAAA;AAIzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAI/C,MAAM,WAAW,yBAAyB;IACzC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,aAAa,CAAC,KAAK,IAAI,CAAA;IACxD,gBAAgB,EAAE,OAAO,CAAA;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB;AAQD,eAAO,MAAM,oBAAoB,GAAI,kEAA6F,yBAAyB,KAAG,IAyC7J,CAAA"}
|
|
@@ -3,8 +3,9 @@ import { IDPInitError, IDPStateValue } from '../../types/idp';
|
|
|
3
3
|
export interface UseInitIDPRedirectProps {
|
|
4
4
|
onRedirect?: (url: string) => void;
|
|
5
5
|
setState: (state: SetStateAction<IDPStateValue>) => void;
|
|
6
|
+
redirectUrl?: string;
|
|
6
7
|
}
|
|
7
|
-
export declare const useInitIDPRedirect: ({ onRedirect, setState }: UseInitIDPRedirectProps) => ({ provider }: {
|
|
8
|
+
export declare const useInitIDPRedirect: ({ onRedirect, setState, redirectUrl }: UseInitIDPRedirectProps) => ({ provider }: {
|
|
8
9
|
provider: string;
|
|
9
10
|
}) => Promise<{
|
|
10
11
|
ok: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInitIDPRedirect.d.ts","sourceRoot":"","sources":["../../../../src/internal/hooks/useInitIDPRedirect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAe,MAAM,OAAO,CAAA;AAGnD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAI7D,MAAM,WAAW,uBAAuB;IACvC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,aAAa,CAAC,KAAK,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"useInitIDPRedirect.d.ts","sourceRoot":"","sources":["../../../../src/internal/hooks/useInitIDPRedirect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAe,MAAM,OAAO,CAAA;AAGnD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAI7D,MAAM,WAAW,uBAAuB;IACvC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,aAAa,CAAC,KAAK,IAAI,CAAA;IACxD,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,eAAO,MAAM,kBAAkB,GAAI,uCAAuC,uBAAuB,oBAKxD;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,KAAG,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,CA8BxH,CAAA"}
|