@23blocks/react 7.0.1 → 7.0.3
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/index.esm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { _ } from '@swc/helpers/_/_extends';
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
|
-
import { useState, useRef, useMemo, useCallback, createContext, useContext } from 'react';
|
|
3
|
+
import { useState, useRef, useMemo, useCallback, createContext, useContext, useEffect } from 'react';
|
|
4
4
|
import { createHttpTransport } from '@23blocks/transport-http';
|
|
5
5
|
import { createAuthenticationBlock } from '@23blocks/block-authentication';
|
|
6
6
|
import { createSearchBlock } from '@23blocks/block-search';
|
|
@@ -791,6 +791,136 @@ const Blocks23Context = /*#__PURE__*/ createContext(null);
|
|
|
791
791
|
authentication: context.authentication
|
|
792
792
|
};
|
|
793
793
|
}
|
|
794
|
+
/**
|
|
795
|
+
* Hook to access and manage the current authenticated user's profile.
|
|
796
|
+
*
|
|
797
|
+
* This hook automatically fetches the current user when the provider is ready
|
|
798
|
+
* and provides methods to update the profile and refetch user data.
|
|
799
|
+
*
|
|
800
|
+
* @example Basic usage
|
|
801
|
+
* ```tsx
|
|
802
|
+
* function ProfilePage() {
|
|
803
|
+
* const { user, loading, error } = useUser();
|
|
804
|
+
*
|
|
805
|
+
* if (loading) return <LoadingSpinner />;
|
|
806
|
+
* if (error) return <ErrorMessage message={error} />;
|
|
807
|
+
* if (!user) return <LoginPrompt />;
|
|
808
|
+
*
|
|
809
|
+
* return (
|
|
810
|
+
* <div>
|
|
811
|
+
* <h1>Welcome, {user.email}</h1>
|
|
812
|
+
* <p>Member since: {new Date(user.createdAt).toLocaleDateString()}</p>
|
|
813
|
+
* </div>
|
|
814
|
+
* );
|
|
815
|
+
* }
|
|
816
|
+
* ```
|
|
817
|
+
*
|
|
818
|
+
* @example Updating profile
|
|
819
|
+
* ```tsx
|
|
820
|
+
* function EditProfileForm() {
|
|
821
|
+
* const { user, updateProfile } = useUser();
|
|
822
|
+
* const [name, setName] = useState(user?.name || '');
|
|
823
|
+
*
|
|
824
|
+
* const handleSubmit = async () => {
|
|
825
|
+
* await updateProfile({ name });
|
|
826
|
+
* alert('Profile updated!');
|
|
827
|
+
* };
|
|
828
|
+
*
|
|
829
|
+
* return (
|
|
830
|
+
* <form onSubmit={handleSubmit}>
|
|
831
|
+
* <input value={name} onChange={e => setName(e.target.value)} />
|
|
832
|
+
* <button type="submit">Save</button>
|
|
833
|
+
* </form>
|
|
834
|
+
* );
|
|
835
|
+
* }
|
|
836
|
+
* ```
|
|
837
|
+
*
|
|
838
|
+
* @example Refreshing user data
|
|
839
|
+
* ```tsx
|
|
840
|
+
* function ProfileHeader() {
|
|
841
|
+
* const { user, refetch, loading } = useUser();
|
|
842
|
+
*
|
|
843
|
+
* return (
|
|
844
|
+
* <div>
|
|
845
|
+
* <span>{user?.email}</span>
|
|
846
|
+
* <button onClick={refetch} disabled={loading}>
|
|
847
|
+
* Refresh
|
|
848
|
+
* </button>
|
|
849
|
+
* </div>
|
|
850
|
+
* );
|
|
851
|
+
* }
|
|
852
|
+
* ```
|
|
853
|
+
*/ function useUser() {
|
|
854
|
+
const context = useClient();
|
|
855
|
+
const [user, setUser] = useState(null);
|
|
856
|
+
const [loading, setLoading] = useState(true);
|
|
857
|
+
const [error, setError] = useState(null);
|
|
858
|
+
// Helper to get auth service
|
|
859
|
+
const getAuth = useCallback(()=>{
|
|
860
|
+
return context.authentication.auth;
|
|
861
|
+
}, [
|
|
862
|
+
context.authentication
|
|
863
|
+
]);
|
|
864
|
+
// Fetch current user
|
|
865
|
+
const fetchUser = useCallback(async ()=>{
|
|
866
|
+
// Don't fetch if no token (not authenticated)
|
|
867
|
+
if (context.authMode === 'token' && !context.isAuthenticated()) {
|
|
868
|
+
setUser(null);
|
|
869
|
+
setLoading(false);
|
|
870
|
+
return;
|
|
871
|
+
}
|
|
872
|
+
setLoading(true);
|
|
873
|
+
setError(null);
|
|
874
|
+
try {
|
|
875
|
+
const currentUser = await getAuth().getCurrentUser();
|
|
876
|
+
setUser(currentUser);
|
|
877
|
+
} catch (err) {
|
|
878
|
+
setError(err instanceof Error ? err.message : 'Failed to load user');
|
|
879
|
+
setUser(null);
|
|
880
|
+
} finally{
|
|
881
|
+
setLoading(false);
|
|
882
|
+
}
|
|
883
|
+
}, [
|
|
884
|
+
context.authMode,
|
|
885
|
+
context.isAuthenticated,
|
|
886
|
+
getAuth
|
|
887
|
+
]);
|
|
888
|
+
// Fetch user on mount and when ready state changes
|
|
889
|
+
useEffect(()=>{
|
|
890
|
+
if (context.isReady) {
|
|
891
|
+
fetchUser();
|
|
892
|
+
}
|
|
893
|
+
}, [
|
|
894
|
+
context.isReady,
|
|
895
|
+
fetchUser
|
|
896
|
+
]);
|
|
897
|
+
// Update profile
|
|
898
|
+
const updateProfile = useCallback(async (request)=>{
|
|
899
|
+
if (!user) {
|
|
900
|
+
throw new Error('No user is currently logged in');
|
|
901
|
+
}
|
|
902
|
+
const authentication = context.authentication;
|
|
903
|
+
const updatedUser = await authentication.users.updateProfile(user.id, request);
|
|
904
|
+
setUser(updatedUser);
|
|
905
|
+
return updatedUser;
|
|
906
|
+
}, [
|
|
907
|
+
context.authentication,
|
|
908
|
+
user
|
|
909
|
+
]);
|
|
910
|
+
// Refetch user
|
|
911
|
+
const refetch = useCallback(async ()=>{
|
|
912
|
+
await fetchUser();
|
|
913
|
+
}, [
|
|
914
|
+
fetchUser
|
|
915
|
+
]);
|
|
916
|
+
return {
|
|
917
|
+
user,
|
|
918
|
+
loading,
|
|
919
|
+
error,
|
|
920
|
+
updateProfile,
|
|
921
|
+
refetch
|
|
922
|
+
};
|
|
923
|
+
}
|
|
794
924
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
795
925
|
// Backward Compatibility Aliases (deprecated)
|
|
796
926
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
@@ -2280,4 +2410,4 @@ function useUniversityBlock() {
|
|
|
2280
2410
|
};
|
|
2281
2411
|
}
|
|
2282
2412
|
|
|
2283
|
-
export { Blocks23Provider, Provider, SimpleBlocks23Provider, use23Blocks, useAssetsBlock, useAuth, useAuthenticationBlock, useAvatars, useCampaignsBlock, useClient, useCompanyBlock, useContentBlock, useConversationsBlock, useCrmBlock, useFavorites, useFilesBlock, useFormsBlock, useGeolocationBlock, useJarvisBlock, useMfa, useOAuth, useOnboardingBlock, useProductsBlock, useRewardsBlock, useSalesBlock, useSearch, useSearchBlock, useSimpleAuth, useSimpleBlocks23, useTenants, useUniversityBlock, useUsers, useWalletBlock };
|
|
2413
|
+
export { Blocks23Provider, Provider, SimpleBlocks23Provider, use23Blocks, useAssetsBlock, useAuth, useAuthenticationBlock, useAvatars, useCampaignsBlock, useClient, useCompanyBlock, useContentBlock, useConversationsBlock, useCrmBlock, useFavorites, useFilesBlock, useFormsBlock, useGeolocationBlock, useJarvisBlock, useMfa, useOAuth, useOnboardingBlock, useProductsBlock, useRewardsBlock, useSalesBlock, useSearch, useSearchBlock, useSimpleAuth, useSimpleBlocks23, useTenants, useUniversityBlock, useUser, useUsers, useWalletBlock };
|
package/dist/src/lib/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { Provider, useClient, useAuth, type ProviderProps, type ClientContext, type ServiceUrls, type AuthMode, type StorageType, type TokenManager, SimpleBlocks23Provider, useSimpleBlocks23, useSimpleAuth, type SimpleBlocks23ProviderProps, type SimpleBlocks23Context, } from './simple-provider.js';
|
|
1
|
+
export { Provider, useClient, useAuth, useUser, type ProviderProps, type ClientContext, type ServiceUrls, type AuthMode, type StorageType, type TokenManager, type AsyncStorageInterface, type UseUserReturn, SimpleBlocks23Provider, useSimpleBlocks23, useSimpleAuth, type SimpleBlocks23ProviderProps, type SimpleBlocks23Context, } from './simple-provider.js';
|
|
2
2
|
export { Blocks23Provider, use23Blocks, useAuthenticationBlock, useSearchBlock, useProductsBlock, useCrmBlock, useContentBlock, useGeolocationBlock, useConversationsBlock, useFilesBlock, useFormsBlock, useAssetsBlock, useCampaignsBlock, useCompanyBlock, useRewardsBlock, useSalesBlock, useWalletBlock, useJarvisBlock, useOnboardingBlock, useUniversityBlock, type Blocks23ProviderProps, type Blocks23Context, } from './context.js';
|
|
3
3
|
export { useUsers, type UseUsersReturn, type UseUsersState, type UseUsersActions, useMfa, type UseMfaReturn, type UseMfaState, type UseMfaActions, useOAuth, type UseOAuthReturn, type UseOAuthState, type UseOAuthActions, useAvatars, type UseAvatarsReturn, type UseAvatarsState, type UseAvatarsActions, useTenants, type UseTenantsReturn, type UseTenantsState, type UseTenantsActions, useSearch, useFavorites, type UseSearchReturn, type UseSearchState, type UseSearchActions, type UseFavoritesReturn, type UseFavoritesState, type UseFavoritesActions, } from './hooks/index.js';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,QAAQ,EACR,SAAS,EACT,OAAO,EACP,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,QAAQ,EACR,SAAS,EACT,OAAO,EACP,OAAO,EACP,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAGlB,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,EACb,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,GAC3B,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,sBAAsB,EACtB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,aAAa,EACb,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAEL,QAAQ,EACR,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,eAAe,EAGpB,MAAM,EACN,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,aAAa,EAGlB,QAAQ,EACR,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,eAAe,EAGpB,UAAU,EACV,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EAGtB,UAAU,EACV,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EAGtB,SAAS,EACT,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,GACzB,MAAM,kBAAkB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
|
-
import { type AuthenticationBlock, type SignInRequest, type SignInResponse, type SignUpRequest, type SignUpResponse } from '@23blocks/block-authentication';
|
|
2
|
+
import { type AuthenticationBlock, type SignInRequest, type SignInResponse, type SignUpRequest, type SignUpResponse, type User, type UpdateProfileRequest } from '@23blocks/block-authentication';
|
|
3
3
|
import { type SearchBlock } from '@23blocks/block-search';
|
|
4
4
|
import { type ProductsBlock } from '@23blocks/block-products';
|
|
5
5
|
import { type CrmBlock } from '@23blocks/block-crm';
|
|
@@ -392,17 +392,93 @@ export declare function useAuth(): {
|
|
|
392
392
|
verifyMagicLink: (request: import("@23blocks/block-authentication").MagicLinkVerifyRequest) => Promise<SignInResponse>;
|
|
393
393
|
sendInvitation: (request: import("@23blocks/block-authentication").InvitationRequest) => Promise<void>;
|
|
394
394
|
acceptInvitation: (request: import("@23blocks/block-authentication").AcceptInvitationRequest) => Promise<SignInResponse>;
|
|
395
|
-
resendInvitation: (request: import("@23blocks/block-authentication").ResendInvitationRequest) => Promise<
|
|
396
|
-
confirmEmail: (token: string) => Promise<
|
|
395
|
+
resendInvitation: (request: import("@23blocks/block-authentication").ResendInvitationRequest) => Promise<User>;
|
|
396
|
+
confirmEmail: (token: string) => Promise<User>;
|
|
397
397
|
resendConfirmation: (request: import("@23blocks/block-authentication").ResendConfirmationRequest) => Promise<void>;
|
|
398
398
|
validateEmail: (request: import("@23blocks/block-authentication").ValidateEmailRequest) => Promise<import("@23blocks/block-authentication").ValidateEmailResponse>;
|
|
399
399
|
validateDocument: (request: import("@23blocks/block-authentication").ValidateDocumentRequest) => Promise<import("@23blocks/block-authentication").ValidateDocumentResponse>;
|
|
400
400
|
requestAccountRecovery: (request: import("@23blocks/block-authentication").AccountRecoveryRequest) => Promise<import("@23blocks/block-authentication").AccountRecoveryResponse>;
|
|
401
|
-
completeAccountRecovery: (request: import("@23blocks/block-authentication").CompleteRecoveryRequest) => Promise<
|
|
401
|
+
completeAccountRecovery: (request: import("@23blocks/block-authentication").CompleteRecoveryRequest) => Promise<User>;
|
|
402
402
|
validateToken: () => Promise<import("@23blocks/block-authentication").TokenValidationResponse>;
|
|
403
|
-
getCurrentUser: () => Promise<
|
|
403
|
+
getCurrentUser: () => Promise<User>;
|
|
404
404
|
authentication: AuthenticationBlock;
|
|
405
405
|
};
|
|
406
|
+
/**
|
|
407
|
+
* Return type for the useUser hook
|
|
408
|
+
*/
|
|
409
|
+
export interface UseUserReturn {
|
|
410
|
+
/** The current authenticated user, null if not loaded yet or not authenticated */
|
|
411
|
+
user: User | null;
|
|
412
|
+
/** Whether the user is currently being loaded */
|
|
413
|
+
loading: boolean;
|
|
414
|
+
/** Error message if user loading failed */
|
|
415
|
+
error: string | null;
|
|
416
|
+
/** Update the current user's profile */
|
|
417
|
+
updateProfile: (request: Omit<UpdateProfileRequest, 'userId'>) => Promise<User>;
|
|
418
|
+
/** Refetch the current user from the server */
|
|
419
|
+
refetch: () => Promise<void>;
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Hook to access and manage the current authenticated user's profile.
|
|
423
|
+
*
|
|
424
|
+
* This hook automatically fetches the current user when the provider is ready
|
|
425
|
+
* and provides methods to update the profile and refetch user data.
|
|
426
|
+
*
|
|
427
|
+
* @example Basic usage
|
|
428
|
+
* ```tsx
|
|
429
|
+
* function ProfilePage() {
|
|
430
|
+
* const { user, loading, error } = useUser();
|
|
431
|
+
*
|
|
432
|
+
* if (loading) return <LoadingSpinner />;
|
|
433
|
+
* if (error) return <ErrorMessage message={error} />;
|
|
434
|
+
* if (!user) return <LoginPrompt />;
|
|
435
|
+
*
|
|
436
|
+
* return (
|
|
437
|
+
* <div>
|
|
438
|
+
* <h1>Welcome, {user.email}</h1>
|
|
439
|
+
* <p>Member since: {new Date(user.createdAt).toLocaleDateString()}</p>
|
|
440
|
+
* </div>
|
|
441
|
+
* );
|
|
442
|
+
* }
|
|
443
|
+
* ```
|
|
444
|
+
*
|
|
445
|
+
* @example Updating profile
|
|
446
|
+
* ```tsx
|
|
447
|
+
* function EditProfileForm() {
|
|
448
|
+
* const { user, updateProfile } = useUser();
|
|
449
|
+
* const [name, setName] = useState(user?.name || '');
|
|
450
|
+
*
|
|
451
|
+
* const handleSubmit = async () => {
|
|
452
|
+
* await updateProfile({ name });
|
|
453
|
+
* alert('Profile updated!');
|
|
454
|
+
* };
|
|
455
|
+
*
|
|
456
|
+
* return (
|
|
457
|
+
* <form onSubmit={handleSubmit}>
|
|
458
|
+
* <input value={name} onChange={e => setName(e.target.value)} />
|
|
459
|
+
* <button type="submit">Save</button>
|
|
460
|
+
* </form>
|
|
461
|
+
* );
|
|
462
|
+
* }
|
|
463
|
+
* ```
|
|
464
|
+
*
|
|
465
|
+
* @example Refreshing user data
|
|
466
|
+
* ```tsx
|
|
467
|
+
* function ProfileHeader() {
|
|
468
|
+
* const { user, refetch, loading } = useUser();
|
|
469
|
+
*
|
|
470
|
+
* return (
|
|
471
|
+
* <div>
|
|
472
|
+
* <span>{user?.email}</span>
|
|
473
|
+
* <button onClick={refetch} disabled={loading}>
|
|
474
|
+
* Refresh
|
|
475
|
+
* </button>
|
|
476
|
+
* </div>
|
|
477
|
+
* );
|
|
478
|
+
* }
|
|
479
|
+
* ```
|
|
480
|
+
*/
|
|
481
|
+
export declare function useUser(): UseUserReturn;
|
|
406
482
|
/** @deprecated Use `Provider` instead */
|
|
407
483
|
export declare const SimpleBlocks23Provider: typeof Provider;
|
|
408
484
|
/** @deprecated Use `ProviderProps` instead */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple-provider.d.ts","sourceRoot":"","sources":["../../../src/lib/simple-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgF,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGrH,OAAO,EAA6B,KAAK,mBAAmB,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"simple-provider.d.ts","sourceRoot":"","sources":["../../../src/lib/simple-provider.tsx"],"names":[],"mappings":"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"}
|