/** * Pattern Format Utilities * * Shared utility functions for formatting pattern-related enum values. * Converts SCREAMING_SNAKE_CASE enum values to Title Case for display. * * @layer Infrastructure/Utilities */ /** * Formats enum values from SCREAMING_SNAKE_CASE to Title Case * * @param value - Enum value (e.g., "PRODUCT_LISTING", "LOAD_MORE") * @returns Formatted string (e.g., "Product Listing", "Load More") * * @example * formatEnumValue("PRODUCT_LISTING") // "Product Listing" * formatEnumValue("ADD_TO_CART") // "Add To Cart" * formatEnumValue("NUMBERED_PAGES") // "Numbered Pages" */ export function formatEnumValue(value: string): string { return value .split('_') .map((word) => word.charAt(0) + word.slice(1).toLowerCase()) .join(' '); } // Convenience aliases for specific enum types // These provide semantic clarity when used in components /** * Formats ListingType enum to human-readable text * Alias for formatEnumValue */ export const formatListingType = formatEnumValue; /** * Formats DataRole enum to human-readable text * Alias for formatEnumValue */ export const formatDataRole = formatEnumValue; /** * Formats ActionType enum to human-readable text * Alias for formatEnumValue */ export const formatActionType = formatEnumValue; /** * Formats PaginationType enum to human-readable text * Alias for formatEnumValue */ export const formatPaginationType = formatEnumValue; /** * Formats SearchMethod enum to human-readable text * Alias for formatEnumValue */ export const formatSearchMethod = formatEnumValue;