@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 +18 -0
- package/auth/index.d.ts +1 -1
- package/auth/index.js +2 -1
- package/auth/securityPolicy.d.ts +6 -0
- package/common/index.d.ts +15 -0
- package/index.d.ts +1 -0
- package/index.js +2 -2
- package/node/auth/index.js +4 -1
- package/node/index.js +11 -7
- package/node/{roles-21e16ab5.js → roles-f2ec97d9.js} +52 -2
- package/package.json +3 -3
- package/{roles-7f45d6b7.js → roles-52950b2d.js} +50 -4
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 {
|
|
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';
|
package/auth/securityPolicy.d.ts
CHANGED
|
@@ -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
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';
|
package/node/auth/index.js
CHANGED
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var roles = require('../roles-
|
|
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.
|
|
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 = () =>
|
|
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.
|
|
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.
|
|
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 = () =>
|
|
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 {
|
|
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 };
|