Hooks Reference
This document provides a comprehensive reference of all React hooks planned for React SuperAdmin, organized by category and functionality. The reference is based on React Admin and adapted for our framework's architecture.
️ Data Management Hooks
Core Data Hooks
useGetList- Fetch a list of records with pagination, filtering, and sortinguseInfiniteGetList- Fetch paginated data with infinite scroll supportuseGetOne- Fetch a single record by IDuseGetMany- Fetch multiple records by IDsuseGetManyReference- Fetch related records for a reference fielduseGetTree- Fetch hierarchical/tree-structured data
Mutation Hooks
useCreate- Create a new recorduseUpdate- Update an existing recorduseUpdateMany- Update multiple records at onceuseDelete- Delete a single recorduseDeleteMany- Delete multiple records at once
Live Data Hooks
useGetListLive- Real-time list data with live updatesuseGetOneLive- Real-time single record datauseGetLocks- Get record lock informationuseGetLocksLive- Real-time lock information
Authentication & Security Hooks
Authentication Hooks
useAuthenticated- Check if user is authenticateduseAuthState- Get current authentication stateuseLogin- Handle user loginuseLogout- Handle user logoutuseGetIdentity- Get current user identityuseAuthProvider- Access authentication provider methods
Authorization Hooks
useCanAccess- Check if user can access a resource/actionusePermissions- Get user permissions and rolesuseRefreshAuth- Refresh authentication tokens
Form & Input Hooks
Form Management Hooks
useForm- Form state management and validationuseFormContext- Access form context from child componentsuseFormState- Get current form stateuseFormValidation- Form validation logicuseFormSubmission- Handle form submission
Input Hooks
useInput- Input field state managementuseInputValidation- Input-specific validationuseInputChange- Handle input value changesuseInputFocus- Input focus managementuseInputError- Input error state management
Form Control Hooks
useCreateContext- Create form contextuseEditContext- Edit form contextuseSaveContext- Save operation contextuseRecordFromLocation- Get record data from URLuseRegisterMutationMiddleware- Register form middlewareuseUnique- Ensure unique field values
List & Table Hooks
List Management Hooks
useList- List data managementuseListContext- Access list contextuseListController- List controller logicuseListFilter- List filtering logicuseListSort- List sorting logicuseListPagination- List pagination logic
Selection Hooks
useUnselect- Unselect a single recorduseUnselectAll- Unselect all recordsuseSelectionState- Manage record selection stateuseBulkActions- Handle bulk operations
Filter & Search Hooks
useFilters- Filter state managementuseSearch- Search functionalityuseSavedQueries- Saved search queriesuseFilterState- Filter state persistence
🧭 Navigation & Routing Hooks
Navigation Hooks
useNavigate- Programmatic navigationuseLocation- Current location informationuseParams- URL parametersuseQuery- URL query parametersuseHistory- Browser history management
Resource Navigation Hooks
useResourceNavigation- Resource-specific navigationuseResourceContext- Current resource contextuseResourceDefinition- Resource configurationuseResourcePermissions- Resource-level permissions
UI & Theming Hooks
Theme Hooks
useTheme- Current theme informationuseThemeToggle- Theme switchinguseColorScheme- Color scheme managementuseMediaQuery- Responsive design queriesuseBreakpoint- Current breakpoint detection
Layout Hooks
useLayout- Layout configurationuseSidebar- Sidebar state managementuseHeader- Header configurationuseFooter- Footer configurationuseResponsive- Responsive behavior
Notification & Feedback Hooks
Notification Hooks
useNotify- Show notificationsuseNotificationState- Notification state managementuseNotificationQueue- Notification queuinguseNotificationDismiss- Dismiss notifications
Feedback Hooks
useConfirm- Confirmation dialogsuseAlert- Alert dialogsuseLoading- Loading state managementuseProgress- Progress tracking
Real-time & Live Hooks
Live Update Hooks
useSubscribe- Subscribe to real-time updatesuseSubscribeCallback- Subscribe with callbackuseSubscribeToRecord- Subscribe to record updatesuseSubscribeToRecordList- Subscribe to list updatesusePublish- Publish real-time events
Lock Management Hooks
useLock- Lock a record for editinguseUnlock- Unlock a recorduseGetLock- Get record lock statususeGetLockLive- Real-time lock status
Preferences & Storage Hooks
Preference Hooks
useStore- Persistent storageuseRemoveFromStore- Remove stored preferencesuseResetStore- Reset stored preferencesuseStoreContext- Store context accessusePreferences- User preferences management
Local Storage Hooks
useLocalStorage- Browser local storageuseSessionStorage- Browser session storageuseCookie- Cookie managementuseStorage- Generic storage abstraction
🧪 Development & Testing Hooks
Development Hooks
useDebug- Development debuggingusePerformance- Performance monitoringuseErrorBoundary- Error boundary contextuseDevTools- Development tools integration
Testing Hooks
useTestUtils- Testing utilitiesuseMockData- Mock data for testinguseTestEnvironment- Test environment setupuseTestHelpers- Test helper functions
Internationalization Hooks
i18n Hooks
useTranslate- Translation functionuseLocaleState- Current locale stateuseLocale- Locale informationuseNumberFormat- Number formattinguseDateFormat- Date formatting
RTL Support Hooks
useRTL- Right-to-left supportuseTextDirection- Text direction detectionuseLayoutDirection- Layout direction
Utility & Helper Hooks
Context Hooks
useRecordContext- Record context accessuseResourceContext- Resource context accessuseAdminContext- Admin context accessuseDataProviderContext- Data provider context
State Management Hooks
useAsync- Async operation stateuseDebounce- Debounced valuesuseThrottle- Throttled valuesusePrevious- Previous value trackinguseToggle- Boolean toggle state
Effect Hooks
useMount- Component mount effectuseUnmount- Component unmount effectuseUpdateEffect- Update-only effectuseDeepCompareEffect- Deep comparison effect
Implementation Priority
Phase 1: Core Hooks (High Priority)
- Data Hooks - Essential for CRUD operations
- Authentication Hooks - Security foundation
- Form Hooks - Form management
- Navigation Hooks - Basic routing
Phase 2: Advanced Hooks (Medium Priority)
- Live Update Hooks - Real-time functionality
- Advanced Form Hooks - Complex form scenarios
- UI Hooks - User interface management
- Performance Hooks - Optimization tools
Phase 3: Specialized Hooks (Lower Priority)
- i18n Hooks - Internationalization
- Development Hooks - Developer experience
- Testing Hooks - Quality assurance
- Utility Hooks - Helper functions
Hook Development Guidelines
Design Principles
- Single Responsibility - Each hook should do one thing well
- Composability - Hooks should work together seamlessly
- Performance - Optimize for minimal re-renders
- Type Safety - Full TypeScript support
- Error Handling - Graceful error management
Implementation Standards
- Hook Structure - Consistent naming and organization
- Dependencies - Proper dependency array management
- Cleanup - Proper cleanup in useEffect
- Testing - Comprehensive test coverage
- Documentation - Clear usage examples
Naming Conventions
- Hooks - camelCase with 'use' prefix (e.g.,
useGetList) - Files - camelCase (e.g.,
useGetList.ts) - Types - PascalCase with 'Hook' suffix (e.g.,
UseGetListHook) - Parameters - camelCase (e.g.,
resourceName)
Performance Considerations
- Memoization - Use useMemo and useCallback appropriately
- Dependency Arrays - Minimize unnecessary re-renders
- Lazy Loading - Load data only when needed
- Caching - Implement intelligent caching strategies
- Debouncing - Debounce expensive operations
Usage Examples
Basic Data Hook Usage
import { useGetList } from '@react-superadmin/core';
const UserList = () => {
const { data, isLoading, error } = useGetList('users', {
pagination: { page: 1, perPage: 10 },
sort: { field: 'name', order: 'ASC' },
filter: { status: 'active' },
});
if (isLoading) return <Loading />;
if (error) return <Error error={error} />;
return <UserTable users={data} />;
};
Form Hook Usage
import { useForm, useInput } from '@react-superadmin/core';
const UserForm = () => {
const form = useForm();
const nameInput = useInput('name', { required: true });
const emailInput = useInput('email', { type: 'email' });
const handleSubmit = form.handleSubmit(data => {
// Submit form data
});
return (
<form onSubmit={handleSubmit}>
<input {...nameInput} />
<input {...emailInput} />
<button type='submit'>Save</button>
</form>
);
};
Authentication Hook Usage
import { useAuthenticated, useAuthState } from '@react-superadmin/core';
const ProtectedComponent = () => {
const { isAuthenticated } = useAuthenticated();
const { user, loading } = useAuthState();
if (loading) return <Loading />;
if (!isAuthenticated) return <Login />;
return <div>Welcome, {user.name}!</div>;
};
This hooks reference serves as a comprehensive guide for implementing the React SuperAdmin framework. Each hook should be developed with TypeScript, comprehensive testing, and full documentation.