VgsExpiryTextFieldState

Immutable state for a VGS card expiration date field.

Obtain an instance with rememberVgsExpiryTextFieldState inside a composable. The state is replaced (not mutated) on every keystroke; pass the latest instance to your VgsExpiry…TextField and update it from onStateChange:

var state by rememberVgsExpiryTextFieldState(
collect = vgsCollect,
fieldName = "data.expiry",
inputDateFormat = VgsExpiryDateFormat.MonthShortYear,
outputDateFormat = VgsExpiryDateFormat.LongYearMonth,
)
VgsExpiryOutlinedTextField(
state = state,
onStateChange = { state = it },
)

Useful properties:

  • inputDateFormat / outputDateFormat — how the field reads input and serializes for submission.

  • isValid / validationResult — current validation outcome.

  • fieldName — JSON key used in the submit payload.

Properties

Link copied to clipboard

current length of the entered value.

Link copied to clipboard

JSON key the value is sent under in the submit payload.

Link copied to clipboard
Link copied to clipboard

true when the field has no input.

Link copied to clipboard

true when every validator reports a valid result.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

optional tokenization settings; when present, the value is tokenized on submit and the token is sent in its place.

Link copied to clipboard

per-validator outcomes for the current value.

Link copied to clipboard

custom validators applied to the value, or null to use the field's default validators.

Functions

Link copied to clipboard
open override fun toString(): String