Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 5 days ago
JSON representation
An easy-to-use text field validator for Kotlin & Jetpack compose.
- Host: GitHub
- URL: https://github.com/devscast/validable
- Owner: devscast
- License: other
- Created: 2021-11-30T20:12:19.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-11-13T21:44:40.000Z (about 1 month ago)
- Last Synced: 2024-12-06T01:51:44.531Z (18 days ago)
- Topics: android, jetpack-compose, kotlin, kotlin-library
- Language: Kotlin
- Homepage: https://devscast.github.io/validable
- Size: 945 KB
- Stars: 64
- Watchers: 0
- Forks: 4
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
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 :
```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).