Jacob Rhoda
09/20/2023, 8:55 PMsealed class FmisCropZonePickerState {
abstract val input: FmisCropZonePickerInput
data class Loading(override val input: FmisCropZonePickerInput) : FmisCropZonePickerState()
data class Error(
val cause: Throwable,
override val input: FmisCropZonePickerInput
) : FmisCropZonePickerState()
data class State(
override val input: FmisCropZonePickerInput,
val cropZones: List<FmisCropZone>,
val selectedCropZone: FmisCropZone?
) : FmisCropZonePickerState()
}
twisterrob
09/22/2023, 12:04 PMclass FmisCropZonePickerInput
class FmisCropZone
sealed class FmisCropZonePickerState(
val input: FmisCropZonePickerInput
) {
class Loading(
input: FmisCropZonePickerInput
) : FmisCropZonePickerState(input)
class Error(
val cause: Throwable,
input: FmisCropZonePickerInput
) : FmisCropZonePickerState(input)
class State(
input: FmisCropZonePickerInput,
val cropZones: List<FmisCropZone>,
val selectedCropZone: FmisCropZone?
) : FmisCropZonePickerState(input)
}
Jacob Rhoda
09/22/2023, 12:53 PMtwisterrob
09/22/2023, 1:17 PMdata
doesn't lose immutability, val
gives you that.val
.Jacob Rhoda
09/22/2023, 1:18 PMcopy
method, right?twisterrob
09/22/2023, 1:19 PMclass FmisCropZonePickerInput
class FmisCropZone
data class FmisCropZonePickerVMState(
val input: FmisCropZonePickerInput,
val state: FmisCropZonePickerState,
)
sealed class FmisCropZonePickerState {
data object Loading : FmisCropZonePickerState()
data class Error(
val cause: Throwable,
) : FmisCropZonePickerState()
data class State(
val cropZones: List<FmisCropZone>,
val selectedCropZone: FmisCropZone?
) : FmisCropZonePickerState()
}