@frontegg/react-hooks 4.37.0 → 4.39.2-dashboard

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/auth/hooks.d.ts CHANGED
@@ -9,6 +9,24 @@ export declare type AuthStateMapper<S extends object> = (state: AuthState) => S;
9
9
  export declare type AuthActionsMapper<A> = (state: AuthActions) => A;
10
10
  export declare type StateHookFunction<T> = (() => T) & (<S extends object>(mapper: (state: T) => S) => S);
11
11
  export declare const useAuth: <S extends object>(stateMapper?: AuthStateMapper<S>) => S;
12
+ /**
13
+ * ```jsx
14
+ * export const MyFunctionComponent = () => {
15
+ * const { isAuthenticated, user } = useAuth();
16
+ * const loginWithRedirect = useLoginWithRedirect();
17
+ *
18
+ * if (!isAuthenticated) {
19
+ * loginWithRedirect();
20
+ * return <></>;
21
+ * }
22
+ *
23
+ * return (<div>Hello User {user.name}</div>);
24
+ * }
25
+ * ```
26
+ *
27
+ * use this frontegg hook function to get if user is "Authenticated"
28
+ */
29
+ export declare const useLoginWithRedirect: () => AuthActions['requestHostedLoginAuthorize'];
12
30
  export declare const useAuthActions: () => AuthActions;
13
31
  export declare const useOnRedirectTo: () => (path: string, opts?: RedirectOptions | undefined) => void;
14
32
  export declare const useAuthRoutes: () => AuthPageRoutes;
package/auth/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { useAuth, useAuthActions, useOnRedirectTo, useAuthRoutes, useIsAuthenticated, useAuthUser, useAuthUserOrNull, } from './hooks';
1
+ export { useAuth, useAuthActions, useOnRedirectTo, useAuthRoutes, useIsAuthenticated, useAuthUser, useAuthUserOrNull, useLoginWithRedirect } from './hooks';
2
2
  export * from './acceptInvitation';
3
3
  export * from './activateAccount';
4
4
  export * from './apiTokens';
package/auth/index.js CHANGED
@@ -1,6 +1,7 @@
1
- export { s as reloadProfileIfNeeded, h as useAcceptInvitationActions, g as useAcceptInvitationState, j as useActivateAccountActions, i as useActivateAccountState, l as useApiTokensActions, k as useApiTokensState, u as useAuth, a as useAuthActions, c as useAuthRoutes, B as useAuthTeamActions, A as useAuthTeamState, e as useAuthUser, f as useAuthUserOrNull, n as useForgotPasswordActions, m as useForgotPasswordState, d as useIsAuthenticated, p as useLoginActions, o as useLoginState, r as useMfaActions, q as useMfaState, b as useOnRedirectTo, v as useProfileActions, t as useProfileState, J as useRolesActions, I as useRolesState, D as useSSOActions, C as useSSOState, F as useSecurityPolicyActions, E as useSecurityPolicyState, x as useSignUpActions, w as useSignUpState, z as useSocialLoginActions, y as useSocialLoginState, H as useTenantsActions, G as useTenantsState } from '../roles-7f45d6b7.js';
1
+ export { t as reloadProfileIfNeeded, i as useAcceptInvitationActions, h as useAcceptInvitationState, k as useActivateAccountActions, j as useActivateAccountState, m as useApiTokensActions, l as useApiTokensState, u as useAuth, a as useAuthActions, c as useAuthRoutes, C as useAuthTeamActions, B as useAuthTeamState, e as useAuthUser, f as useAuthUserOrNull, o as useForgotPasswordActions, n as useForgotPasswordState, d as useIsAuthenticated, q as useLoginActions, p as useLoginState, g as useLoginWithRedirect, s as useMfaActions, r as useMfaState, b as useOnRedirectTo, w as useProfileActions, v as useProfileState, H as usePublicPolicySettings, L as useRolesActions, K as useRolesState, E as useSSOActions, D as useSSOState, G as useSecurityPolicyActions, F as useSecurityPolicyState, y as useSignUpActions, x as useSignUpState, A as useSocialLoginActions, z as useSocialLoginState, J as useTenantsActions, I as useTenantsState } from '../roles-52950b2d.js';
2
2
  import '@frontegg/redux-store';
3
3
  import 'react';
4
4
  import 'react-redux';
5
5
  import '../FronteggStoreContext-d6c3b684.js';
6
6
  import '@frontegg/rest-api';
7
+ import 'tslib';
@@ -3,3 +3,9 @@ import { StateHookFunction } from './hooks';
3
3
  export declare type SecurityPolicyStateMapper<S extends object> = (state: SecurityPolicyState) => S;
4
4
  export declare const useSecurityPolicyState: StateHookFunction<SecurityPolicyState>;
5
5
  export declare const useSecurityPolicyActions: () => SecurityPolicyActions;
6
+ export declare const usePublicPolicySettings: (loadOnMount?: boolean) => {
7
+ loading: boolean;
8
+ saving: boolean | undefined;
9
+ error: any;
10
+ policy: import("@frontegg/rest-api").IVendorConfig | undefined;
11
+ };
@@ -0,0 +1,15 @@
1
+ /// <reference types="react" />
2
+ import { FronteggAppInstance, FronteggAppOptions } from '@frontegg/types';
3
+ interface ShadowDomContextData extends FronteggAppOptions {
4
+ injector: FronteggAppInstance;
5
+ iframeRendering: boolean;
6
+ renderByRoute?: boolean;
7
+ slotsContainer: HTMLElement;
8
+ rootEl: HTMLElement;
9
+ }
10
+ export interface DomContext extends ShadowDomContextData {
11
+ isShadowDom: boolean;
12
+ }
13
+ export declare const ShadowDomContext: import("react").Context<ShadowDomContextData>;
14
+ export declare const useShadowDom: () => DomContext;
15
+ export {};
package/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export * from './common';
1
2
  export * from './audits';
2
3
  export * from './auth';
3
4
  export * from './connectivity';
package/index.js CHANGED
@@ -1,3 +1,5 @@
1
+ import { u as useAuth, c as useAuthRoutes } from './roles-52950b2d.js';
2
+ export { S as ShadowDomContext, t as reloadProfileIfNeeded, i as useAcceptInvitationActions, h as useAcceptInvitationState, k as useActivateAccountActions, j as useActivateAccountState, m as useApiTokensActions, l as useApiTokensState, u as useAuth, a as useAuthActions, c as useAuthRoutes, C as useAuthTeamActions, B as useAuthTeamState, e as useAuthUser, f as useAuthUserOrNull, o as useForgotPasswordActions, n as useForgotPasswordState, d as useIsAuthenticated, q as useLoginActions, p as useLoginState, g as useLoginWithRedirect, s as useMfaActions, r as useMfaState, b as useOnRedirectTo, w as useProfileActions, v as useProfileState, H as usePublicPolicySettings, L as useRolesActions, K as useRolesState, E as useSSOActions, D as useSSOState, G as useSecurityPolicyActions, F as useSecurityPolicyState, M as useShadowDom, y as useSignUpActions, x as useSignUpState, A as useSocialLoginActions, z as useSocialLoginState, J as useTenantsActions, I as useTenantsState } from './roles-52950b2d.js';
1
3
  import { __rest } from 'tslib';
2
4
  import React, { useMemo, useRef, useState, useEffect } from 'react';
3
5
  import { Provider } from 'react-redux';
@@ -6,8 +8,6 @@ import { createFronteggStore } from '@frontegg/redux-store';
6
8
  import { ContextHolder } from '@frontegg/rest-api';
7
9
  import { F as FronteggStoreContext } from './FronteggStoreContext-d6c3b684.js';
8
10
  export { F as FronteggStoreContext, a as useDispatch, u as useSelector, b as useStore } from './FronteggStoreContext-d6c3b684.js';
9
- import { u as useAuth, c as useAuthRoutes } from './roles-7f45d6b7.js';
10
- export { s as reloadProfileIfNeeded, h as useAcceptInvitationActions, g as useAcceptInvitationState, j as useActivateAccountActions, i as useActivateAccountState, l as useApiTokensActions, k as useApiTokensState, u as useAuth, a as useAuthActions, c as useAuthRoutes, B as useAuthTeamActions, A as useAuthTeamState, e as useAuthUser, f as useAuthUserOrNull, n as useForgotPasswordActions, m as useForgotPasswordState, d as useIsAuthenticated, p as useLoginActions, o as useLoginState, r as useMfaActions, q as useMfaState, b as useOnRedirectTo, v as useProfileActions, t as useProfileState, J as useRolesActions, I as useRolesState, D as useSSOActions, C as useSSOState, F as useSecurityPolicyActions, E as useSecurityPolicyState, x as useSignUpActions, w as useSignUpState, z as useSocialLoginActions, y as useSocialLoginState, H as useTenantsActions, G as useTenantsState } from './roles-7f45d6b7.js';
11
11
  export { c as useAuditLogsActions, b as useAuditLogsState, a as useAuditsActions, e as useAuditsMetadataActions, d as useAuditsMetadataState, u as useAuditsState } from './auditsMetadata-9ab88593.js';
12
12
  export { u as useConnectivityActions, a as useConnectivityState } from './hooks-6400e233.js';
13
13
  export { f as useBillingInformation, g as useBillingInformationActions, h as useBillingPaymentMethod, i as useBillingPaymentMethodActions, d as useCheckout, e as useCheckoutActions, j as useInvoices, k as useInvoicesActions, u as usePaymentProvider, a as usePaymentProviderActions, b as usePlans, c as usePlansActions, m as useStripeActions, l as useStripeState } from './hooks-6e92ca1b.js';
@@ -2,12 +2,13 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var roles = require('../roles-21e16ab5.js');
5
+ var roles = require('../roles-f2ec97d9.js');
6
6
  require('@frontegg/redux-store');
7
7
  require('react');
8
8
  require('react-redux');
9
9
  require('../FronteggStoreContext-6cfac56c.js');
10
10
  require('@frontegg/rest-api');
11
+ require('tslib');
11
12
 
12
13
 
13
14
 
@@ -30,11 +31,13 @@ exports.useForgotPasswordState = roles.useForgotPasswordState;
30
31
  exports.useIsAuthenticated = roles.useIsAuthenticated;
31
32
  exports.useLoginActions = roles.useLoginActions;
32
33
  exports.useLoginState = roles.useLoginState;
34
+ exports.useLoginWithRedirect = roles.useLoginWithRedirect;
33
35
  exports.useMfaActions = roles.useMfaActions;
34
36
  exports.useMfaState = roles.useMfaState;
35
37
  exports.useOnRedirectTo = roles.useOnRedirectTo;
36
38
  exports.useProfileActions = roles.useProfileActions;
37
39
  exports.useProfileState = roles.useProfileState;
40
+ exports.usePublicPolicySettings = roles.usePublicPolicySettings;
38
41
  exports.useRolesActions = roles.useRolesActions;
39
42
  exports.useRolesState = roles.useRolesState;
40
43
  exports.useSSOActions = roles.useSSOActions;
package/node/index.js CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var roles = require('./roles-f2ec97d9.js');
5
6
  var auditsMetadata = require('./auditsMetadata-d15799a1.js');
6
- var roles = require('./roles-21e16ab5.js');
7
7
  var hooks = require('./hooks-5d5a445e.js');
8
8
  var hooks$1 = require('./hooks-d88513e5.js');
9
9
  var hooks$2 = require('./hooks-cf739b27.js');
@@ -88,12 +88,7 @@ const FronteggStoreProvider = ({ children, app, contextOptions, setLoading: setL
88
88
  React__default['default'].createElement(FronteggContent, { setLoading: setLoadingProps !== null && setLoadingProps !== void 0 ? setLoadingProps : setLoading, app: app }, children)));
89
89
  };
90
90
 
91
- exports.useAuditLogsActions = auditsMetadata.useAuditLogsActions;
92
- exports.useAuditLogsState = auditsMetadata.useAuditLogsState;
93
- exports.useAuditsActions = auditsMetadata.useAuditsActions;
94
- exports.useAuditsMetadataActions = auditsMetadata.useAuditsMetadataActions;
95
- exports.useAuditsMetadataState = auditsMetadata.useAuditsMetadataState;
96
- exports.useAuditsState = auditsMetadata.useAuditsState;
91
+ exports.ShadowDomContext = roles.ShadowDomContext;
97
92
  exports.reloadProfileIfNeeded = roles.reloadProfileIfNeeded;
98
93
  exports.useAcceptInvitationActions = roles.useAcceptInvitationActions;
99
94
  exports.useAcceptInvitationState = roles.useAcceptInvitationState;
@@ -113,23 +108,32 @@ exports.useForgotPasswordState = roles.useForgotPasswordState;
113
108
  exports.useIsAuthenticated = roles.useIsAuthenticated;
114
109
  exports.useLoginActions = roles.useLoginActions;
115
110
  exports.useLoginState = roles.useLoginState;
111
+ exports.useLoginWithRedirect = roles.useLoginWithRedirect;
116
112
  exports.useMfaActions = roles.useMfaActions;
117
113
  exports.useMfaState = roles.useMfaState;
118
114
  exports.useOnRedirectTo = roles.useOnRedirectTo;
119
115
  exports.useProfileActions = roles.useProfileActions;
120
116
  exports.useProfileState = roles.useProfileState;
117
+ exports.usePublicPolicySettings = roles.usePublicPolicySettings;
121
118
  exports.useRolesActions = roles.useRolesActions;
122
119
  exports.useRolesState = roles.useRolesState;
123
120
  exports.useSSOActions = roles.useSSOActions;
124
121
  exports.useSSOState = roles.useSSOState;
125
122
  exports.useSecurityPolicyActions = roles.useSecurityPolicyActions;
126
123
  exports.useSecurityPolicyState = roles.useSecurityPolicyState;
124
+ exports.useShadowDom = roles.useShadowDom;
127
125
  exports.useSignUpActions = roles.useSignUpActions;
128
126
  exports.useSignUpState = roles.useSignUpState;
129
127
  exports.useSocialLoginActions = roles.useSocialLoginActions;
130
128
  exports.useSocialLoginState = roles.useSocialLoginState;
131
129
  exports.useTenantsActions = roles.useTenantsActions;
132
130
  exports.useTenantsState = roles.useTenantsState;
131
+ exports.useAuditLogsActions = auditsMetadata.useAuditLogsActions;
132
+ exports.useAuditLogsState = auditsMetadata.useAuditLogsState;
133
+ exports.useAuditsActions = auditsMetadata.useAuditsActions;
134
+ exports.useAuditsMetadataActions = auditsMetadata.useAuditsMetadataActions;
135
+ exports.useAuditsMetadataState = auditsMetadata.useAuditsMetadataState;
136
+ exports.useAuditsState = auditsMetadata.useAuditsState;
133
137
  exports.useConnectivityActions = hooks.useConnectivityActions;
134
138
  exports.useConnectivityState = hooks.useConnectivityState;
135
139
  exports.useBillingInformation = hooks$1.useBillingInformation;
@@ -5,6 +5,18 @@ var React = require('react');
5
5
  var reactRedux = require('react-redux');
6
6
  var FronteggStoreContext = require('./FronteggStoreContext-6cfac56c.js');
7
7
  var restApi = require('@frontegg/rest-api');
8
+ var tslib = require('tslib');
9
+
10
+ const ShadowDomContext = React.createContext({});
11
+ const useShadowDom = () => {
12
+ const context = React.useContext(ShadowDomContext);
13
+ const { urlStrategy = 'path', onRedirectTo = (urlStrategy === 'path' ? ((path) => window.history.pushState(null, '', path)) : ((path) => window.history.pushState(null, '', `#${path}`))), renderByRoute = false, customLoader = false, customStyles, contextOptions } = context, rest = tslib.__rest(context, ["urlStrategy", "onRedirectTo", "renderByRoute", "customLoader", "customStyles", "contextOptions"]);
14
+ return Object.assign({ isShadowDom: true, onRedirectTo,
15
+ renderByRoute,
16
+ customLoader,
17
+ customStyles,
18
+ urlStrategy, contextOptions: Object.assign({ requestCredentials: 'include' }, contextOptions) }, rest);
19
+ };
8
20
 
9
21
  const defaultMapper = {
10
22
  state: (state) => state,
@@ -13,11 +25,36 @@ const defaultMapper = {
13
25
  const useAuth = (stateMapper = defaultMapper.state) => {
14
26
  return FronteggStoreContext.useSelector((state) => stateMapper(state[reduxStore.authStoreName]), reactRedux.shallowEqual);
15
27
  };
28
+ /**
29
+ * ```jsx
30
+ * export const MyFunctionComponent = () => {
31
+ * const { isAuthenticated, user } = useAuth();
32
+ * const loginWithRedirect = useLoginWithRedirect();
33
+ *
34
+ * if (!isAuthenticated) {
35
+ * loginWithRedirect();
36
+ * return <></>;
37
+ * }
38
+ *
39
+ * return (<div>Hello User {user.name}</div>);
40
+ * }
41
+ * ```
42
+ *
43
+ * use this frontegg hook function to get if user is "Authenticated"
44
+ */
45
+ const useLoginWithRedirect = () => {
46
+ const dispatch = FronteggStoreContext.useDispatch();
47
+ return React.useMemo(() => reduxStore.bindActionCreators(reduxStore.authActions.requestHostedLoginAuthorize, dispatch), [reduxStore.authActions.requestHostedLoginAuthorize]);
48
+ };
16
49
  const useAuthActions = () => {
17
50
  const dispatch = FronteggStoreContext.useDispatch();
18
51
  return React.useMemo(() => reduxStore.bindActionCreators(reduxStore.authActions, dispatch), [reduxStore.authActions]);
19
52
  };
20
- const useOnRedirectTo = () => restApi.ContextHolder.onRedirectTo;
53
+ const useOnRedirectTo = () => {
54
+ var _a;
55
+ const context = React.useContext(ShadowDomContext);
56
+ return (_a = context === null || context === void 0 ? void 0 : context.onRedirectTo) !== null && _a !== void 0 ? _a : restApi.ContextHolder.onRedirectTo;
57
+ };
21
58
  const useAuthRoutes = () => useAuth((state) => (Object.assign({}, state.routes)));
22
59
  /**
23
60
  * ```jsx
@@ -112,7 +149,16 @@ const useSSOState = (stateMapper) => stateHookGenerator(stateMapper, 'ssoState')
112
149
  const useSSOActions = () => reducerActionsGenerator(reduxStore.ssoActions, reduxStore.ssoReducers);
113
150
 
114
151
  const useSecurityPolicyState = (stateMapper) => stateHookGenerator(stateMapper, 'securityPolicyState');
115
- const useSecurityPolicyActions = () => reducerActionsGenerator(reduxStore.securityPolicyActions, reduxStore.securityPolicyReducers);
152
+ const useSecurityPolicyActions = () => reducerActionsGenerator(reduxStore.securityPolicyActions, reduxStore.securityPolicyReducers);
153
+ const usePublicPolicySettings = (loadOnMount = false) => {
154
+ const { loading, policy, saving, error } = useSecurityPolicyState(state => state.publicPolicy);
155
+ const { loadPublicSecurityPolicy } = useSecurityPolicyActions();
156
+ React.useEffect(() => {
157
+ (loadOnMount || !policy) && loadPublicSecurityPolicy();
158
+ // eslint-disable-next-line react-hooks/exhaustive-deps
159
+ }, [loadOnMount, loadPublicSecurityPolicy]);
160
+ return { loading, saving, error, policy };
161
+ };
116
162
 
117
163
  const useTenantsState = (stateMapper) => stateHookGenerator(stateMapper, 'tenantsState');
118
164
  const useTenantsActions = () => reducerActionsGenerator(reduxStore.tenantsActions, reduxStore.tenantsReducers);
@@ -120,6 +166,7 @@ const useTenantsActions = () => reducerActionsGenerator(reduxStore.tenantsAction
120
166
  const useRolesState = (stateMapper) => stateHookGenerator(stateMapper, 'rolesState');
121
167
  const useRolesActions = () => reducerActionsGenerator(reduxStore.rolesActions, reduxStore.rolesReducers);
122
168
 
169
+ exports.ShadowDomContext = ShadowDomContext;
123
170
  exports.reloadProfileIfNeeded = reloadProfileIfNeeded;
124
171
  exports.useAcceptInvitationActions = useAcceptInvitationActions;
125
172
  exports.useAcceptInvitationState = useAcceptInvitationState;
@@ -139,17 +186,20 @@ exports.useForgotPasswordState = useForgotPasswordState;
139
186
  exports.useIsAuthenticated = useIsAuthenticated;
140
187
  exports.useLoginActions = useLoginActions;
141
188
  exports.useLoginState = useLoginState;
189
+ exports.useLoginWithRedirect = useLoginWithRedirect;
142
190
  exports.useMfaActions = useMfaActions;
143
191
  exports.useMfaState = useMfaState;
144
192
  exports.useOnRedirectTo = useOnRedirectTo;
145
193
  exports.useProfileActions = useProfileActions;
146
194
  exports.useProfileState = useProfileState;
195
+ exports.usePublicPolicySettings = usePublicPolicySettings;
147
196
  exports.useRolesActions = useRolesActions;
148
197
  exports.useRolesState = useRolesState;
149
198
  exports.useSSOActions = useSSOActions;
150
199
  exports.useSSOState = useSSOState;
151
200
  exports.useSecurityPolicyActions = useSecurityPolicyActions;
152
201
  exports.useSecurityPolicyState = useSecurityPolicyState;
202
+ exports.useShadowDom = useShadowDom;
153
203
  exports.useSignUpActions = useSignUpActions;
154
204
  exports.useSignUpState = useSignUpState;
155
205
  exports.useSocialLoginActions = useSocialLoginActions;
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@frontegg/react-hooks",
3
3
  "libName": "FronteggReactHooks",
4
- "version": "4.37.0",
4
+ "version": "4.39.2-dashboard",
5
5
  "author": "Frontegg LTD",
6
6
  "main": "./node/index.js",
7
7
  "module": "./index.js",
8
8
  "types": "./index.d.ts",
9
9
  "dependencies": {
10
- "@frontegg/redux-store": "4.37.0",
10
+ "@frontegg/redux-store": "4.39.2-dashboard",
11
11
  "react-redux": "^7.x"
12
12
  }
13
- }
13
+ }
@@ -1,8 +1,20 @@
1
1
  import { authStoreName, bindActionCreators, authActions, acceptInvitationActions, acceptInvitationReducers, activateAccountActions, activateAccountReducers, apiTokensActions, apiTokensReducers, forgotPasswordActions, forgotPasswordReducers, loginActions, loginReducers, mfaActions, mfaReducers, profileActions, profileReducers, signUpActions, signUpReducers, socialLoginsActions, socialLoginsReducer, teamActions, teamReducers, ssoActions, ssoReducers, securityPolicyActions, securityPolicyReducers, tenantsActions, tenantsReducers, rolesActions, rolesReducers } from '@frontegg/redux-store';
2
- import { useMemo, useEffect } from 'react';
2
+ import { createContext, useContext, useMemo, useEffect } from 'react';
3
3
  import { shallowEqual } from 'react-redux';
4
4
  import { u as useSelector, a as useDispatch } from './FronteggStoreContext-d6c3b684.js';
5
5
  import { ContextHolder } from '@frontegg/rest-api';
6
+ import { __rest } from 'tslib';
7
+
8
+ const ShadowDomContext = createContext({});
9
+ const useShadowDom = () => {
10
+ const context = useContext(ShadowDomContext);
11
+ const { urlStrategy = 'path', onRedirectTo = (urlStrategy === 'path' ? ((path) => window.history.pushState(null, '', path)) : ((path) => window.history.pushState(null, '', `#${path}`))), renderByRoute = false, customLoader = false, customStyles, contextOptions } = context, rest = __rest(context, ["urlStrategy", "onRedirectTo", "renderByRoute", "customLoader", "customStyles", "contextOptions"]);
12
+ return Object.assign({ isShadowDom: true, onRedirectTo,
13
+ renderByRoute,
14
+ customLoader,
15
+ customStyles,
16
+ urlStrategy, contextOptions: Object.assign({ requestCredentials: 'include' }, contextOptions) }, rest);
17
+ };
6
18
 
7
19
  const defaultMapper = {
8
20
  state: (state) => state,
@@ -11,11 +23,36 @@ const defaultMapper = {
11
23
  const useAuth = (stateMapper = defaultMapper.state) => {
12
24
  return useSelector((state) => stateMapper(state[authStoreName]), shallowEqual);
13
25
  };
26
+ /**
27
+ * ```jsx
28
+ * export const MyFunctionComponent = () => {
29
+ * const { isAuthenticated, user } = useAuth();
30
+ * const loginWithRedirect = useLoginWithRedirect();
31
+ *
32
+ * if (!isAuthenticated) {
33
+ * loginWithRedirect();
34
+ * return <></>;
35
+ * }
36
+ *
37
+ * return (<div>Hello User {user.name}</div>);
38
+ * }
39
+ * ```
40
+ *
41
+ * use this frontegg hook function to get if user is "Authenticated"
42
+ */
43
+ const useLoginWithRedirect = () => {
44
+ const dispatch = useDispatch();
45
+ return useMemo(() => bindActionCreators(authActions.requestHostedLoginAuthorize, dispatch), [authActions.requestHostedLoginAuthorize]);
46
+ };
14
47
  const useAuthActions = () => {
15
48
  const dispatch = useDispatch();
16
49
  return useMemo(() => bindActionCreators(authActions, dispatch), [authActions]);
17
50
  };
18
- const useOnRedirectTo = () => ContextHolder.onRedirectTo;
51
+ const useOnRedirectTo = () => {
52
+ var _a;
53
+ const context = useContext(ShadowDomContext);
54
+ return (_a = context === null || context === void 0 ? void 0 : context.onRedirectTo) !== null && _a !== void 0 ? _a : ContextHolder.onRedirectTo;
55
+ };
19
56
  const useAuthRoutes = () => useAuth((state) => (Object.assign({}, state.routes)));
20
57
  /**
21
58
  * ```jsx
@@ -110,7 +147,16 @@ const useSSOState = (stateMapper) => stateHookGenerator(stateMapper, 'ssoState')
110
147
  const useSSOActions = () => reducerActionsGenerator(ssoActions, ssoReducers);
111
148
 
112
149
  const useSecurityPolicyState = (stateMapper) => stateHookGenerator(stateMapper, 'securityPolicyState');
113
- const useSecurityPolicyActions = () => reducerActionsGenerator(securityPolicyActions, securityPolicyReducers);
150
+ const useSecurityPolicyActions = () => reducerActionsGenerator(securityPolicyActions, securityPolicyReducers);
151
+ const usePublicPolicySettings = (loadOnMount = false) => {
152
+ const { loading, policy, saving, error } = useSecurityPolicyState(state => state.publicPolicy);
153
+ const { loadPublicSecurityPolicy } = useSecurityPolicyActions();
154
+ useEffect(() => {
155
+ (loadOnMount || !policy) && loadPublicSecurityPolicy();
156
+ // eslint-disable-next-line react-hooks/exhaustive-deps
157
+ }, [loadOnMount, loadPublicSecurityPolicy]);
158
+ return { loading, saving, error, policy };
159
+ };
114
160
 
115
161
  const useTenantsState = (stateMapper) => stateHookGenerator(stateMapper, 'tenantsState');
116
162
  const useTenantsActions = () => reducerActionsGenerator(tenantsActions, tenantsReducers);
@@ -118,4 +164,4 @@ const useTenantsActions = () => reducerActionsGenerator(tenantsActions, tenantsR
118
164
  const useRolesState = (stateMapper) => stateHookGenerator(stateMapper, 'rolesState');
119
165
  const useRolesActions = () => reducerActionsGenerator(rolesActions, rolesReducers);
120
166
 
121
- export { useAuthTeamState as A, useAuthTeamActions as B, useSSOState as C, useSSOActions as D, useSecurityPolicyState as E, useSecurityPolicyActions as F, useTenantsState as G, useTenantsActions as H, useRolesState as I, useRolesActions as J, useAuthActions as a, useOnRedirectTo as b, useAuthRoutes as c, useIsAuthenticated as d, useAuthUser as e, useAuthUserOrNull as f, useAcceptInvitationState as g, useAcceptInvitationActions as h, useActivateAccountState as i, useActivateAccountActions as j, useApiTokensState as k, useApiTokensActions as l, useForgotPasswordState as m, useForgotPasswordActions as n, useLoginState as o, useLoginActions as p, useMfaState as q, useMfaActions as r, reloadProfileIfNeeded as s, useProfileState as t, useAuth as u, useProfileActions as v, useSignUpState as w, useSignUpActions as x, useSocialLoginState as y, useSocialLoginActions as z };
167
+ export { useSocialLoginActions as A, useAuthTeamState as B, useAuthTeamActions as C, useSSOState as D, useSSOActions as E, useSecurityPolicyState as F, useSecurityPolicyActions as G, usePublicPolicySettings as H, useTenantsState as I, useTenantsActions as J, useRolesState as K, useRolesActions as L, useShadowDom as M, ShadowDomContext as S, useAuthActions as a, useOnRedirectTo as b, useAuthRoutes as c, useIsAuthenticated as d, useAuthUser as e, useAuthUserOrNull as f, useLoginWithRedirect as g, useAcceptInvitationState as h, useAcceptInvitationActions as i, useActivateAccountState as j, useActivateAccountActions as k, useApiTokensState as l, useApiTokensActions as m, useForgotPasswordState as n, useForgotPasswordActions as o, useLoginState as p, useLoginActions as q, useMfaState as r, useMfaActions as s, reloadProfileIfNeeded as t, useAuth as u, useProfileState as v, useProfileActions as w, useSignUpState as x, useSignUpActions as y, useSocialLoginState as z };