/** * Composable for validating upload item properties. * Provides validation functions for item names and name restoration logic. * * @example * ```typescript * const { isNameValid, restoreOriginalName } = useUploadItemValidation(); * * // In template * * ``` */ export function useUploadItemValidation() { /** * Validates that a name is non-empty after trimming whitespace. * Returns null for valid names (Bootstrap-Vue convention for valid state). * * @param name - The name to validate * @returns null if valid (non-empty), false if invalid (empty) */ function isNameValid(name: string): boolean | null { return name.trim().length > 0 ? null : false; } /** * Restores an item's name to a default value if it's empty. * Useful for blur handlers to ensure items always have valid names. * * @param item - The item with a name property to restore * @param defaultName - The default name to use if current name is empty */ function restoreOriginalName(item: T, defaultName: string): void { if (!item.name.trim()) { item.name = defaultName; } } return { isNameValid, restoreOriginalName, }; }