Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/devscast/validable

An easy-to-use text field validator for Kotlin & Jetpack compose.
https://github.com/devscast/validable

android jetpack-compose kotlin kotlin-library

Last synced: 1 day ago
JSON representation

An easy-to-use text field validator for Kotlin & Jetpack compose.

Awesome Lists containing this project

README

        

# validable

![Maven Central Version](https://img.shields.io/maven-central/v/tech.devscast/validable?color=blue)
[![build](https://github.com/devscast/validable/actions/workflows/build.yaml/badge.svg)](https://github.com/devscast/validable/actions/workflows/build.yaml)

Validable is an extensible library that simplifies text field validation for Jetpack Compose by providing abstraction and reusable validation logic.

This is what it looks like :

Welcome screen

```kotlin
@Composable
fun MyScreen() {

val emailField = remember { EmailValidable() }

// pass all fields to the withValidable method
val validator = rememberValidator(emailField)

TextField(
value = emailField.value,
onValueChange = { emailField.value = it }, // update the text
isError = emailField.hasError(), // check if the field is not valid
)

AnimatedVisibility(visible = emailField.hasError()) {

Text(
text = emailField.errorMessage ?: "",
modifier = Modifier.fillMaxWidth(),
style = LocalTextStyle.current.copy(color = MaterialTheme.colors.error)
)

}

Button(
// a state to check if all fields are valid, without submitting the form
enabled = validator.isValid,
onClick = {
validator.validate {
// will be executed if all fields are valid
Toast.makeText(context, "All fields are valid", Toast.LENGTH_SHORT).show()
}
}
) {
Text(text = "Submit")
}
}
```

## Gradle setup

Include the **validable** dependency in your module `build.gradle` or `build.gradle.kts` :

```kotlin
dependencies {
implementation("tech.devscast:validable:")
}
```

The latest version is ![Maven Central Version](https://img.shields.io/maven-central/v/tech.devscast/validable?color=blue)

## For full documentation, check out [https://devscast.github.io/validable](https://devscast.github.io/validable)

## Contributing

We'd love contributions !

We will also try to tag any issues on our [issue tracker](https://github.com/devscast/validable/issues) that we'd love help with, so
if you just want to dip in, go have a look.

If you do want to contribute to this project, we have a [code of conduct](CODE_OF_CONDUCT.md).