Skip to main content
Version: 0.8.0

Configuration

ABP React provides services and hooks for managing ABP application configuration.

Loading Configuration

Use ApplicationConfigurationService to fetch the ABP configuration:

import { useEffect } from 'react';
import { useDispatch } from 'react-redux';
import { ApplicationConfigurationService, configSlice } from '@abpjs/core';

function App() {
const dispatch = useDispatch();

useEffect(() => {
const loadConfig = async () => {
const config = await ApplicationConfigurationService.get('https://localhost:44300');
dispatch(configSlice.actions.setConfig(config));
};
loadConfig();
}, [dispatch]);

// ...
}

useConfig Hook

Access the configuration anywhere in your app:

import { useConfig } from '@abpjs/core';

function ConfigExample() {
const config = useConfig();

return (
<div>
<p>Current User: {config.currentUser?.userName}</p>
<p>Current Tenant: {config.currentTenant?.name}</p>
<p>Language: {config.localization?.currentCulture?.name}</p>
</div>
);
}

Configuration Structure

The ABP configuration includes:

PropertyDescription
currentUserInformation about the logged-in user
currentTenantCurrent tenant information (for multi-tenant apps)
localizationAvailable languages and current culture
authAuthentication configuration
settingApplication settings
featuresEnabled features
globalFeaturesGlobal feature flags
multiTenancyMulti-tenancy configuration

Accessing Current User

import { useConfig } from '@abpjs/core';

function UserInfo() {
const { currentUser } = useConfig();

if (!currentUser?.isAuthenticated) {
return <p>Not logged in</p>;
}

return (
<div>
<p>Username: {currentUser.userName}</p>
<p>Email: {currentUser.email}</p>
<p>Roles: {currentUser.roles?.join(', ')}</p>
</div>
);
}

Accessing Settings

import { useConfig } from '@abpjs/core';

function SettingsExample() {
const { setting } = useConfig();

const getSetting = (name: string) => {
return setting?.values?.[name];
};

return (
<div>
<p>App Name: {getSetting('App.Name')}</p>
</div>
);
}