Admin Component
** Last Built**: September 2, 2025 at 4:19 PM
The <Admin> component is the main application wrapper for React SuperAdmin applications. It provides the core context, configuration, and provider management for the entire admin interface.
Overview
The Admin component serves as the root wrapper that:
- Provides the SuperAdmin context to all child components
- Manages data providers, authentication, and internationalization
- Handles theme and layout configuration
- Merges custom providers with default configurations
Basic Usage
import { Admin } from '@react-superadmin/core';
import { createAdmin, createResource } from '@react-superadmin/core';
const config = createAdmin({
title: 'My Admin Panel',
resources: [
createResource({
name: 'users',
label: 'Users',
fields: [
{ name: 'id', label: 'ID', type: 'text' },
{ name: 'name', label: 'Name', type: 'text' },
{ name: 'email', label: 'Email', type: 'email' },
],
}),
],
theme: { primaryColor: '#3b82f6' },
});
function App() {
return <Admin config={config}>{/* Your admin interface components */}</Admin>;
}
Props
| Prop | Type | Required | Default | Description |
| ---------------------------------------- | ---------------------------------------------- |
| config | AdminConfig | | - | Configuration object for the admin application |
| layout | ComponentType<{ children: ReactNode }> | | - | Custom layout component to override default |
| themeProvider | ComponentType<{ children: ReactNode }> | | - | Custom theme provider |
| dataProvider | any | | - | Custom data provider |
| authProvider | any | | - | Custom authentication provider |
| i18nProvider | any | | - | Custom internationalization provider |
| children | ReactNode | | - | Child components to render |
| className | string | | - | Additional CSS classes |
Configuration
The AdminConfig object supports:
interface AdminConfig {
title: string; // Application title
resources: ResourceConfig[]; // Available resources
theme?: ThemeConfig; // Theme configuration
layout?: LayoutConfig; // Layout configuration
auth?: AuthConfig; // Authentication configuration
dataProvider?: DataProvider; // Data provider
authProvider?: any; // Auth provider
i18nProvider?: any; // i18n provider
}
Provider Management
The Admin component automatically merges custom providers with configuration:
<Admin
config={config}
dataProvider={customDataProvider}
authProvider={customAuthProvider}
themeProvider={CustomThemeProvider}
>
{/* Providers are merged with config */}
</Admin>
Error Handling
The component includes comprehensive error handling:
- Validates required configuration
- Checks provider compatibility
- Provides meaningful error messages
- Graceful fallbacks for missing providers
Examples
Minimal Configuration
<Admin config={minimalConfig}>
<div>Simple admin interface</div>
</Admin>
With Custom Providers
<Admin
config={config}
dataProvider={prismaDataProvider}
authProvider={jwtAuthProvider}
themeProvider={DarkThemeProvider}
>
<AdminLayout>
<Resource name='users' />
</AdminLayout>
</Admin>
With Custom Layout
<Admin config={config} layout={CustomLayout}>
<CustomLayout>
<Resource name='products' />
</CustomLayout>
</Admin>
Best Practices
- Always provide a title - Helps with accessibility and branding
- Use resource definitions - Define your data structure upfront
- Customize providers - Override defaults only when necessary
- Handle errors gracefully - Provide fallback UI for error states
- Test configurations - Ensure your config works in development
Related Components
<Layout>- Basic layout structure<Resource>- Resource definition