rjaros / kvision

Object oriented web framework for Kotlin/JS
https://kvision.io
MIT License
1.2k stars 67 forks source link

Error: Changing the state of the radio after hiding-showing #444

Closed GrishinSergeyAl closed 1 year ago

GrishinSergeyAl commented 1 year ago

Hello!

I came across an error, the state of the radio changes after hiding-showing. Run the project, click on "item1", then on "hide|show" twice. Stl selected "item2" even though it was not selected

package com.example.project

import io.kvision.Application
import io.kvision.CoreModule
import io.kvision.BootstrapModule
import io.kvision.BootstrapCssModule
import io.kvision.core.onEvent
import io.kvision.form.check.Radio
import io.kvision.form.check.radio
import io.kvision.html.Div
import io.kvision.html.br
import io.kvision.html.div
import io.kvision.html.link
import io.kvision.module
import io.kvision.panel.root
import io.kvision.startApplication
import io.kvision.utils.em
import kotlin.random.Random
import kotlin.random.nextUBytes

class App : Application() {
    lateinit var containerForRadio: Div
    override fun start() {
        root("kvapp") {

            link("show|hide") {
                onEvent {
                    click = {
                        containerForRadio.visible = !containerForRadio.visible
                    }
                }
            }

            div(className = "form-check") {
                paddingTop = 2.em
                containerForRadio = this
                radio() {
                    label = "item 1"
                    name = "group"
                }
                radio {
                    label = "item 2"
                    name = "group"
                    value = true
                }
            }
        }
    }
}

fun main() {
    startApplication(
        ::App,
        module.hot,
        BootstrapModule,
        BootstrapCssModule,
        CoreModule
    )
}
rjaros commented 1 year ago

Fixed in 5.16.2