0.0.16 • Published 6 years ago

@logrally/kotlin-ring-ui-shared v0.0.16

Weekly downloads
-
License
MIT
Repository
github
Last release
6 years ago

Kotlin wrappers for ring-ui

This library is easy to use with https://github.com/JetBrains/create-react-kotlin-app .

Quickstart

Example application

Create your project

npm install create-react-kotlin-app
npx create-react-kotlin-app my-app
cd my-app
npm install --save "@logrally/kotlin-react-ring-ui"
npm run gen-idea-libs

Patch your build configuration

See https://youtrack.jetbrains.com/issue/CRKA-85#comment=27-2957370 for details how you need to configure your build configuration.

Apply the changes to these files:

  • node_modules/react-scripts-kotlin/config/webpack.config.dev.js
  • node_modules/react-scripts-kotlin/config/webpack.config.prod.js

Run your application in development mode

npm run build

Update your source code

Update the file src/app/App.kt with this and wait until the page in the browser was reloaded.

package app

import react.*
import react.dom.div
import react.dom.h1
import ringui.authdialog.authDialog
import ringui.button.button
import ringui.footer.FooterLineData
import ringui.footer.copyright
import ringui.footer.footer
import ringui.header.header
import ringui.header.tray
import ringui.link.link
import ringui.loader.loader

interface AppState : RState {
    var showLogin: Boolean
    var loggedIn: Boolean
}

class App : RComponent<RProps, AppState>() {
    override fun RBuilder.render() {
        header {
            link(title = "Homepage", href = "/")

            tray {
                if (state.loggedIn == true) {
                    button("Logout") {
                        attrs.onClick = {
                            setState { loggedIn = false }
                        }
                    }
                }
                else {
                    button("Login") {
                        attrs.onClick = {
                            setState { showLogin = true }
                        }
                    }
                }
            }
        }

        div {
            authDialog(serviceName = "ACME Inc.", show = state.showLogin) {
                attrs.onConfirm = {
                    setState { showLogin = false; loggedIn = true }
                }
            }

            if (state.loggedIn) {
                h1 { +"Welcome to your application!" }
                loader("Loading application. Please wait ...")
            }
        }

        footer {
            attrs.right = arrayOf(FooterLineData(copyright(2018), "/"), "by firstname lastname")
        }
    }
}

fun RBuilder.app() = child(App::class) {}

Building

npm install
gradle clean build

License

Licensed under the MIT license.

@logrally/kotlin-ring-ui-alert@logrally/kotlin-ring-ui-authdialog@logrally/kotlin-ring-ui-avatar@logrally/kotlin-ring-ui-badge@logrally/kotlin-ring-ui-button@logrally/kotlin-ring-ui-buttongroup@logrally/kotlin-ring-ui-buttonset@logrally/kotlin-ring-ui-buttontoolbar@logrally/kotlin-ring-ui-checkbox@logrally/kotlin-ring-ui-code@logrally/kotlin-ring-ui-confirm@logrally/kotlin-ring-ui-contenteditable@logrally/kotlin-ring-ui-contentlayout@logrally/kotlin-ring-ui-datalist@logrally/kotlin-ring-ui-datepicker@logrally/kotlin-ring-ui-dialog@logrally/kotlin-ring-ui-dropdown@logrally/kotlin-ring-ui-errorbubble@logrally/kotlin-ring-ui-errormessage@logrally/kotlin-ring-ui-footer@logrally/kotlin-ring-ui-grid@logrally/kotlin-ring-ui-group@logrally/kotlin-ring-ui-header@logrally/kotlin-ring-ui-heading@logrally/kotlin-ring-ui-icon@logrally/kotlin-ring-ui-input@logrally/kotlin-ring-ui-island@logrally/kotlin-ring-ui-link@logrally/kotlin-ring-ui-list@logrally/kotlin-ring-ui-loader@logrally/kotlin-ring-ui-loaderinline@logrally/kotlin-ring-ui-loaderscreen@logrally/kotlin-ring-ui-markdown@logrally/kotlin-ring-ui-pager@logrally/kotlin-ring-ui-panel@logrally/kotlin-ring-ui-popup@logrally/kotlin-ring-ui-popupmenu@logrally/kotlin-ring-ui-progress@logrally/kotlin-ring-ui-radio@logrally/kotlin-ring-ui-select@logrally/kotlin-ring-ui-tag@logrally/kotlin-ring-ui-taginput@logrally/kotlin-ring-ui-text@logrally/kotlin-ring-ui-tooltip@logrally/kotlin-ring-ui-useragreement@logrally/kotlin-ring-ui-usercard@everything-registry/sub-chunk-557
0.0.16

6 years ago

0.0.14

6 years ago

0.0.11

6 years ago

0.0.10

6 years ago

0.0.9

6 years ago

0.0.8

6 years ago