Skip to content

SingularityIndonesia/AndroidForm

Repository files navigation

Singularity Code Present

Library untuk melakukan validasi formulir android.
Formulir berupa Formulir object yang tidak terintegrasi pada view, hal ini memungkinkan pengaplikasian yang lebih fleksible.

Penggunaan:

allprojects {
  repositories {
    ...
    maven { url 'https://jitpack.io' }
  }
}
  
dependencies {
    implementation 'com.github.SingularityIndonesia:AndroidForm:1.1.0'
}


Contoh pengaplikasian:

    1. Initiate Forms. Dalam kondisi default, form value adalah Unset
    
    private val form: Form by lazy {
        form("user_data").apply {

            /** Form Items **/
            addItem(
                formItem<FORM_USER_NAME_TYPE>(
                    FORM_USER_NAME
                )
            )

            /** Form Rules **/
            addRule<FORM_USER_NAME_TYPE>(
                FORM_USER_NAME,
                formRule(
                    errorMessage = "Cannot be blank",
                ) { value ->
                    value.isNotBlank()
                }
            )
            addRule<FORM_USER_NAME_TYPE>(
                FORM_USER_NAME,
                formRule(
                    errorMessage = "Cannot contain @",
                ) { value ->
                    !value.contains("@")
                }
            )
        }
    }
    
    
    2. Bind on value change event dan update form value
    
    binding.uname.addTextChangedListener {
        form.update<FORM_USER_NAME_TYPE>(
            FORM_USER_NAME,
            it.toString()
        )
    }
    
    
    3. Observe Validation Result
    
    form.onValidationResult {
        updateValidationUI(it)

        if (form.allIsValid()) {
            onFormIsValid()
        } else {
            onFormInValid()
        }
    }
    
    
    4. Build form untuk mendapatkan Map ValidationStatus
    
    val formResult: Map<String, ValidationStatus<*>> = form.build()
    

Incomming :

  • Easy integration with input view
  • Regex optimization
  • Support for jetpack compose

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages