v0.8.0
Release Date: January 2026
What's New
Feature Management Package (New!)
A brand new package for managing features! This is the React equivalent of Angular's @abp/ng.feature-management module.
npm install @abpjs/feature-management
Use the FeatureManagementModal component to manage tenant features:
import { FeatureManagementModal } from '@abpjs/feature-management';
import { useState } from 'react';
function TenantFeatures({ tenantId }) {
const [visible, setVisible] = useState(false);
return (
<>
<button onClick={() => setVisible(true)}>Manage Features</button>
<FeatureManagementModal
providerName="T"
providerKey={tenantId}
visible={visible}
onVisibleChange={setVisible}
/>
</>
);
}
Or use the hook for custom implementations:
import { useFeatureManagement } from '@abpjs/feature-management';
const { features, fetchFeatures, saveFeatures, isFeatureEnabled } = useFeatureManagement();
See @abpjs/feature-management documentation for full details.
Ellipsis Component
A new component for truncating long text with ellipsis. Useful for table cells, lists, or any constrained UI space.
import { Ellipsis } from '@abpjs/core';
// Basic usage
<Ellipsis width="200px">
This is a very long text that will be truncated with ellipsis
</Ellipsis>
// With custom title tooltip
<Ellipsis width="150px" title="Custom tooltip text">
Long content here
</Ellipsis>
Also available as a hook:
import { useEllipsis } from '@abpjs/core';
const { ref, style, title, className } = useEllipsis({ width: '200px' });
See @abpjs/core release notes for full API details.
Loader State Hook
New useLoader hook that automatically tracks HTTP request loading state. No more manual setLoading(true/false) for API calls.
import { useLoader } from '@abpjs/core';
function MyComponent() {
const { loading } = useLoader();
if (loading) return <Spinner />;
return <Content />;
}
LoaderBar Component
A visual progress bar that automatically shows during HTTP requests. Place it in your layout and it works automatically.
import { LoaderBar } from '@abpjs/theme-shared';
function Layout({ children }) {
return (
<>
<LoaderBar />
{children}
</>
);
}
See @abpjs/theme-shared release notes for full API details.
ErrorComponent
A component for displaying full-page error states.
import { ErrorComponent } from '@abpjs/theme-shared';
<ErrorComponent
title="404"
details="Page not found."
showCloseButton
onDestroy={() => navigate('/')}
/>
DEFAULT_STYLES
Global CSS styles for ABP components.
import { DEFAULT_STYLES } from '@abpjs/theme-shared';
<style>{DEFAULT_STYLES}</style>
Bug Fixes
@abpjs/core
- Fixed localization handling when translation key is empty or null
Packages
| Package | Version |
|---|---|
| @abpjs/core | 0.8.0 |
| @abpjs/account | 0.8.0 |
| @abpjs/identity | 0.8.0 |
| @abpjs/feature-management | 0.8.0 (New!) |
| @abpjs/permission-management | 0.8.0 |
| @abpjs/tenant-management | 0.8.0 |
| @abpjs/theme-basic | 0.8.0 |
| @abpjs/theme-shared | 0.8.0 |
Upgrade
npm update @abpjs/core @abpjs/account @abpjs/identity @abpjs/feature-management @abpjs/permission-management @abpjs/tenant-management @abpjs/theme-basic @abpjs/theme-shared
To install the new feature management package:
npm install @abpjs/feature-management
No breaking changes. Direct upgrade from v0.7.6 should work without code changes.