import { MessageDetails, MessageType } from "./messages"; export type ValidationDetails = MessageDetails & { /** * The field that the message is related to. * * @remarks * If `undefined` or `null`, the message is not related to a specific field - in this case it is likely a global/form message. */ field?: string | null; }; export type ErrorValidationDetails = ValidationDetails; export type WarningValidationDetails = ValidationDetails; export type InfoValidationDetails = ValidationDetails; export type HelpValidationDetails = ValidationDetails; export type SuccessValidationDetails = ValidationDetails; export type InferValidationType = TMessageType extends typeof MessageType.ERROR ? ErrorValidationDetails : TMessageType extends typeof MessageType.WARNING ? WarningValidationDetails : TMessageType extends typeof MessageType.INFO ? InfoValidationDetails : TMessageType extends typeof MessageType.SUCCESS ? SuccessValidationDetails : ValidationDetails;