smallshen
06/30/2021, 9:02 AMexternal interface MainHeader : RProps {
var onRequestLogin: () -> Unit
}
val mainHeader = functionalComponent<MainHeader> { props ->
var basicInfo: BasicInfo? by useState(null)
useEffect(Unit) {
WebMainScope.launch {
basicInfo = if (LoginService.loggedIn) ApiService.getBasicInfo() else null
}
}
ringHeader {
attrs {
spaced = true
}
img("Your Image") {}
ringTray {
if (LoginService.loggedIn) {
+"Hello"
ringDropdown(basicInfo?.username ?: "Fetching...") {
attrs {
clickMode = true
}
}
} else {
ringButton {
attrs {
primary = true
onMouseDown = { props.onRequestLogin() }
}
+"Login"
}
}
}
}
}
Jetpack Compose Code:
@Composable
fun MainHeader(onRequestLogin: () -> Unit) {
var basicInfo by remember { mutableStateOf<BasicInfo?>(null) }
LunchedEffect(Unit) {
WebMainScope.launch {
basicInfo = if (LoginService.loggedIn) ApiService.getBasicInfo() else null
}
}
RingHeader(spaced = true) {
Image("Your Image")
RingTray {
if (LoginService.loggedIn) {
Text("Hello")
RingDropDown(basicInfo?.username ?: "Fetching...", clickMode = true)
} else {
RingButton(primary = true, onMouseDown = { onRequestLogin() }) {
Text("Login")
}
}
}
}
}
99% similarityAkif Abasov [JB]
06/30/2021, 9:07 AMsmallshen
06/30/2021, 9:10 AMAkif Abasov [JB]
06/30/2021, 9:13 AMsmallshen
06/30/2021, 9:15 AMAkif Abasov [JB]
06/30/2021, 9:17 AM[JB] Shagen
06/30/2021, 12:27 PM