ok, more realistic example. remote call can be eit...
# announcements
v
ok, more realistic example. remote call can be either successful or not:
Copy code
sealed class ZimbabweResponse<T> {
    class Hunky<T>(val meat: T): ZimbabweResponse<T>()
    class Shitty<T>(val error: String, val fieldErrors: Iterable<FieldError>): ZimbabweResponse<T>()
}
i have a function that makes remote call and returns either
null
, if it was ok, or error, if not so:
Copy code
override fun load(): Promise<ZimbabweResponse.Shitty<*>?> = async {
            val filesTabURLQuery = typeSafeURLQuery(world){FilesTabURLQuery()}
            ordering = relaxedStringToEnum(filesTabURLQuery.ordering, Ordering.values(), default = Ordering.DESC)
            filter = relaxedStringToEnum(filesTabURLQuery.filter, CustomerFileFilter.values(), default = CustomerFileFilter.ALL)
            search = (filesTabURLQuery.search ?: "").trim()

            val res = await(requestChunk(null))
            when (res) {
                is ZimbabweResponse.Shitty -> return@async res
                is ZimbabweResponse.Hunky -> {
                    meat = res.meat
                    stripContent = StripContent()

                    plusFormContainer = Control2.from {kdiv{o->
                        o- ebafPlus.renderForm()
                    }}

                    content = ToReactElementable.from {kdiv{o->
                        o- plusFormContainer
                        o- renderItems(meat, noItemsMessage = true)
                    }}

                    return@async null
                }
            }
        }