All files / src/hooks index.ts

0% Statements 0/115
100% Branches 0/0
0% Functions 0/1
0% Lines 0/115

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116                                                                                                                                                                                                                                       
/**
 * Global Hooks
 *
 * This barrel file exports all hooks and their types available for use
 * across the application.
 *
 * @example
 * ```tsx
 * // Import hooks
 * import { useProducts, useDebounce, useToast } from '@/hooks';
 *
 * // Import types for hook returns
 * import type { ProductFilters, ProductsResponse } from '@/hooks';
 * ```
 *
 * ## Hook Organization Convention
 *
 * ### Global Hooks (`src/hooks/`)
 * Place hooks here when:
 * - Used by 2+ different features
 * - General-purpose utility (useDebounce, useLocalStorage, etc.)
 * - Not tightly coupled to specific component state
 *
 * ### Feature Hooks (`src/components/features/[feature]/hooks/`)
 * Place hooks here when:
 * - Only used by components within that feature
 * - Tightly coupled to feature's state/logic
 * - Would not make sense outside the feature context
 *
 * @module hooks
 */

// =============================================================================
// A/B TESTING & ANALYTICS
// =============================================================================
export { useABTest } from './useABTest';
export { useFunnelTracking } from './useFunnelTracking';
export { useCohortAnalysis } from './useCohortAnalysis';
export { useCustomerSegments } from './useCustomerSegments';
export { useRevenueForecast } from './useRevenueForecast';
export { useRevenueMetrics } from './useRevenueMetrics';
export { useRevenueTrend } from './useRevenueTrend';
export { useTopProducts } from './useTopProducts';

// =============================================================================
// AUTHENTICATION & SECURITY
// =============================================================================
export { useCsrfToken } from './useCsrfToken';

// =============================================================================
// DATA FETCHING HOOKS
// =============================================================================
export { useAddresses } from './useAddresses';
export { useApiRequestHistory, useSavedApiRequests, useApiCollections } from './useApiDocs';
export { useCategories } from './useCategories';

// Products - hooks and types
export {
  useProducts,
  useNewArrivals,
  useBestSellers,
  useRandomProducts,
  useProductsByCategory,
  useProductSearch,
} from './useProducts';
export type { ProductFilters, ProductsResponse } from './useProducts';

// Support hooks
export * from './useSupport';

// =============================================================================
// UI & INTERACTION HOOKS
// =============================================================================
export { useConfirm } from './useConfirm';
export { useDebounce, useDebouncedCallback } from './useDebounce';
export { useKeyboardNavigation } from './useKeyboardNavigation';
export { usePrefersReducedMotion } from './usePrefersReducedMotion';
export { useScrollAnimation } from './useScrollAnimation';
export { useTheme } from './useTheme';
export { useToast } from './useToast';

// User Account
export { usePasswordChange } from './usePasswordChange';
export { useProductActions } from './useProductActions';
export { useUserProfile } from './useUserProfile';

// Real-time & WebSocket
export { useSocket } from './useSocket';
export type { UseSocketOptions, UseSocketReturn } from './useSocket';
export { useRealtimeNotifications } from './useRealtimeNotifications';
export type { UseRealtimeNotificationsReturn, UseRealtimeNotificationsOptions, ConnectionMode } from './useRealtimeNotifications';
export { useNotificationsWithFallback } from './useNotificationsWithFallback';
export type { UseNotificationsWithFallbackReturn, UseNotificationsWithFallbackOptions, NotificationMode } from './useNotificationsWithFallback';
export { useOrderTracking } from './useOrderTracking';
export type { UseOrderTrackingReturn, UseOrderTrackingOptions, StatusUpdate } from './useOrderTracking';
export { useAdminLiveDashboard } from './useAdminLiveDashboard';
export type { UseAdminLiveDashboardReturn, UseAdminLiveDashboardOptions, DashboardMetrics } from './useAdminLiveDashboard';
export { useRealtimeMetrics } from './useRealtimeMetrics';
export type {
  UseRealtimeMetricsOptions,
  UseRealtimeMetricsReturn,
  RealtimeMetricsState,
  ConnectionStatus,
  MetricsSummary as RealtimeMetricsSummary,
  ErrorLogEntry as RealtimeErrorLogEntry,
  Alert,
} from './useRealtimeMetrics';

// Performance Monitoring
export { usePerformancePolling } from './usePerformancePolling';

// =============================================================================
// IMAGE OPTIMIZATION
// =============================================================================
export { useImagePreload, preloadImage, preloadImages } from './useImagePreload';