@asgardeo/react
Version:
React implementation of Asgardeo JavaScript SDK.
65 lines (64 loc) • 2.04 kB
TypeScript
/**
* Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).
*
* WSO2 LLC. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
* in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import { UpdateMeProfileConfig, User, UserProfile } from '@asgardeo/browser';
import { FC, PropsWithChildren } from 'react';
/**
* Props interface of {@link UserProvider}
*/
export interface UserProviderProps {
profile: UserProfile;
revalidateProfile?: () => Promise<void>;
updateProfile?: (requestConfig: UpdateMeProfileConfig, sessionId?: string) => Promise<{
success: boolean;
data: {
user: User;
};
error: string;
}>;
onUpdateProfile?: (payload: User) => void;
}
/**
* UserProvider component that manages user profile data and provides it through UserContext.
*
* This provider:
* - Fetches user profile data from the ME endpoint
* - Retrieves SCIM2 schemas for profile structure
* - Generates both nested and flattened user profiles
* - Provides functions for refreshing and updating user data
* - Handles loading states and errors
*
* @example
* ```tsx
* // Basic usage
* <UserProvider>
* <App />
* </UserProvider>
*
* // With custom error handling
* <UserProvider onError={(error) => console.error('User error:', error)}>
* <App />
* </UserProvider>
*
* // Disable auto-fetch (fetch manually using refreshUser)
* <UserProvider autoFetch={false}>
* <App />
* </UserProvider>
* ```
*/
declare const UserProvider: FC<PropsWithChildren<UserProviderProps>>;
export default UserProvider;