API Documentation
Complete API reference for all utilities, hooks, and components.
Table of Contents
Hooks
useForm
Form handling and validation hook.
import { useForm } from '@/hooks/useForm';
const { values, handleChange, handleSubmit, errors, isSubmitting } = useForm({
initialValues: { email: '', password: '' },
validation: {
email: { required: true, email: true },
password: { required: true, minLength: 8 },
},
onSubmit: async (values) => {
// Handle form submission
},
});
Options:
initialValues: Initial form valuesvalidation: Validation rulesonSubmit: Submit handler
Returns:
values: Current form valueshandleChange: Change handlerhandleSubmit: Submit handlererrors: Validation errorsisSubmitting: Submission state
useDataFetch
Data fetching hook with caching and retry.
import { useDataFetch } from '@/hooks/useDataFetch';
const { data, isLoading, error, refetch } = useDataFetch('/api/data', {
cache: { strategy: 'cache-first', ttl: 60000 },
retries: 3,
refetchInterval: 5000,
});
Options:
url: API endpointcache: Caching optionsretries: Number of retriesrefetchInterval: Auto-refetch interval
useI18n
Internationalization hook.
import { useI18n } from '@/hooks/useI18n';
const { locale, t, changeLocale } = useI18n();
// Translate
const text = t('common.loading');
// Change language
changeLocale('de');
useKeyboardShortcut
Register keyboard shortcuts.
import { useKeyboardShortcut } from '@/hooks/useKeyboardShortcut';
useKeyboardShortcut({
key: 'k',
ctrl: true,
action: () => {
// Handle shortcut
},
description: 'Open search',
});
useClipboard
Clipboard operations.
import { useClipboard } from '@/hooks/useClipboard';
const { copy, read, copied } = useClipboard();
// Copy to clipboard
await copy('Text to copy');
// Read from clipboard
const text = await read();
usePersistedState
State that persists to localStorage.
import { usePersistedState } from '@/hooks/usePersistedState';
const [state, setState] = usePersistedState('my-key', initialValue);
useMobile
Mobile device detection.
import { useMobile } from '@/hooks/useMobile';
const { isMobile, isTouch, viewport } = useMobile();
useAnimation
Animation hook.
import { useAnimation } from '@/hooks/useAnimation';
const ref = useAnimation({
type: 'fade',
direction: 'up',
duration: 300,
trigger: 'scroll',
});
Components
Modal
Modal dialog component.
import Modal from '@/components/Modal';
<Modal
isOpen={isOpen}
onClose={() => setIsOpen(false)}
title="Modal Title"
size="md"
>
Modal content
</Modal>
Props:
isOpen: Whether modal is openonClose: Close handlertitle: Modal titlesize: 'sm' | 'md' | 'lg' | 'xl' | 'full'closeOnOverlayClick: Close on overlay clickcloseOnEscape: Close on Escape key
Tooltip
Tooltip component.
import Tooltip from '@/components/Tooltip';
<Tooltip content="Tooltip text" position="top">
<button>Hover me</button>
</Tooltip>
Props:
content: Tooltip contentposition: 'top' | 'bottom' | 'left' | 'right'delay: Delay in milliseconds
Dropdown
Dropdown menu component.
import Dropdown from '@/components/Dropdown';
<Dropdown
trigger={<button>Menu</button>}
items={[
{ id: '1', label: 'Item 1', onClick: () => {} },
{ id: '2', label: 'Item 2', onClick: () => {} },
]}
position="bottom-left"
/>
Accordion
Accordion component.
import Accordion from '@/components/UI/Accordion';
<Accordion
items={[
{ id: '1', title: 'Title 1', content: <p>Content 1</p> },
{ id: '2', title: 'Title 2', content: <p>Content 2</p> },
]}
allowMultiple={false}
/>
Tabs
Tabs component.
import Tabs from '@/components/UI/Tabs';
<Tabs
tabs={[
{ id: '1', label: 'Tab 1', content: <p>Content 1</p> },
{ id: '2', label: 'Tab 2', content: <p>Content 2</p> },
]}
defaultTab="1"
/>
FileUpload
File upload component.
import FileUpload from '@/components/FileUpload';
<FileUpload
accept="image/*"
maxSize={10 * 1024 * 1024}
onUpload={async (files) => {
// Handle upload
}}
/>
MultiStepForm
Multi-step form component.
import MultiStepForm from '@/components/MultiStepForm';
<MultiStepForm
steps={[
{ id: '1', title: 'Step 1', component: <Step1Form /> },
{ id: '2', title: 'Step 2', component: <Step2Form /> },
]}
initialValues={{}}
onSubmit={async (values) => {
// Handle submission
}}
/>
Utilities
Search
Advanced search with fuzzy matching.
import { searchApps } from '@/lib/search';
const results = searchApps(apps, 'query', {
threshold: 0.3,
limit: 50,
fuzzy: true,
});
Caching
Advanced caching strategies.
import { advancedCache } from '@/lib/advanced-cache';
const data = await advancedCache.get(
'key',
async () => {
// Fetch data
return fetch('/api/data').then(r => r.json());
},
{
strategy: 'stale-while-revalidate',
ttl: 60000,
}
);
Image Optimization
Image optimization utilities.
import { getOptimizedImageUrl, compressImage } from '@/lib/image-handling';
// Get optimized URL
const url = getOptimizedImageUrl('/image.jpg', {
width: 800,
quality: 80,
format: 'webp',
});
// Compress image
const compressed = await compressImage(file, 1920, 1080, 0.8);
Notifications
Notification system.
import { notifications } from '@/lib/notifications';
// Show notification
notifications.success('Success!', 'Operation completed');
notifications.error('Error!', 'Something went wrong');
notifications.warning('Warning!', 'Please check');
notifications.info('Info', 'New update available');
Analytics
Advanced analytics.
import { advancedAnalytics } from '@/lib/analytics-advanced';
// Identify user
advancedAnalytics.identify('user-id', { email: 'user@example.com' });
// Track event
advancedAnalytics.trackEvent({
name: 'button_click',
category: 'interaction',
label: 'Submit Button',
});
// Track conversion
advancedAnalytics.trackConversion('purchase', 99.99);
Error Recovery
Error recovery system.
import { errorRecovery } from '@/lib/error-recovery';
// Register recovery strategy
errorRecovery.register({
name: 'custom-recovery',
priority: 10,
canRecover: (error) => error.message.includes('network'),
recover: async () => {
// Recovery logic
},
});
// Try recovery
const recovered = await errorRecovery.tryRecover(error);
State Persistence
State persistence utilities.
import { statePersistence } from '@/lib/state-persistence';
// Save state
statePersistence.save('key', value, {
storage: 'localStorage',
version: 1,
});
// Load state
const value = statePersistence.load('key', {
storage: 'localStorage',
version: 1,
});
Services
i18n Service
Internationalization service.
import { i18n } from '@/lib/i18n';
// Set locale
i18n.setLocale('de');
// Translate
const text = i18n.t('common.loading');
// Add translations
i18n.addTranslations('de', {
common: { loading: 'Lädt...' },
});
Monitoring Service
Performance monitoring.
import { monitoring } from '@/lib/monitoring';
// Record metric
monitoring.recordMetric({
name: 'api_response_time',
value: 150,
unit: 'ms',
});
// Record event
monitoring.recordEvent({
name: 'user_action',
properties: { action: 'click' },
});
Keyboard Shortcuts
Keyboard shortcuts manager.
import { keyboardShortcuts } from '@/lib/keyboard-shortcuts';
// Register shortcut
const unregister = keyboardShortcuts.register({
key: 'k',
ctrl: true,
action: () => {
// Handle shortcut
},
});
// Unregister
unregister();