Use AsyncView in BugReportView
This commit is contained in:
parent
044b6ac018
commit
ed4363c5c6
1 changed files with 11 additions and 25 deletions
|
|
@ -23,7 +23,6 @@ import androidx.compose.foundation.layout.height
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.text.KeyboardOptions
|
import androidx.compose.foundation.text.KeyboardOptions
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.runtime.setValue
|
import androidx.compose.runtime.setValue
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
|
|
@ -39,16 +38,15 @@ import coil.compose.AsyncImage
|
||||||
import coil.request.ImageRequest
|
import coil.request.ImageRequest
|
||||||
import io.element.android.features.rageshake.impl.R
|
import io.element.android.features.rageshake.impl.R
|
||||||
import io.element.android.libraries.architecture.Async
|
import io.element.android.libraries.architecture.Async
|
||||||
import io.element.android.libraries.designsystem.components.dialogs.ErrorDialog
|
import io.element.android.libraries.designsystem.components.async.AsyncView
|
||||||
import io.element.android.libraries.designsystem.components.form.textFieldState
|
import io.element.android.libraries.designsystem.components.form.textFieldState
|
||||||
|
import io.element.android.libraries.designsystem.components.preferences.PreferencePage
|
||||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceRow
|
import io.element.android.libraries.designsystem.components.preferences.PreferenceRow
|
||||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceSwitch
|
import io.element.android.libraries.designsystem.components.preferences.PreferenceSwitch
|
||||||
import io.element.android.libraries.designsystem.components.preferences.PreferencePage
|
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
import io.element.android.libraries.designsystem.preview.debugPlaceholderBackground
|
import io.element.android.libraries.designsystem.preview.debugPlaceholderBackground
|
||||||
import io.element.android.libraries.designsystem.theme.components.Button
|
import io.element.android.libraries.designsystem.theme.components.Button
|
||||||
import io.element.android.libraries.designsystem.theme.components.CircularProgressIndicator
|
|
||||||
import io.element.android.libraries.designsystem.theme.components.OutlinedTextField
|
import io.element.android.libraries.designsystem.theme.components.OutlinedTextField
|
||||||
import io.element.android.libraries.designsystem.theme.components.Text
|
import io.element.android.libraries.designsystem.theme.components.Text
|
||||||
import io.element.android.libraries.designsystem.utils.LogCompositions
|
import io.element.android.libraries.designsystem.utils.LogCompositions
|
||||||
|
|
@ -63,13 +61,6 @@ fun BugReportView(
|
||||||
) {
|
) {
|
||||||
LogCompositions(tag = "Rageshake", msg = "Root")
|
LogCompositions(tag = "Rageshake", msg = "Root")
|
||||||
val eventSink = state.eventSink
|
val eventSink = state.eventSink
|
||||||
if (state.sending is Async.Success) {
|
|
||||||
LaunchedEffect(state.sending) {
|
|
||||||
eventSink(BugReportEvents.ResetAll)
|
|
||||||
onDone()
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
Box(modifier = modifier) {
|
Box(modifier = modifier) {
|
||||||
PreferencePage(
|
PreferencePage(
|
||||||
|
|
@ -158,19 +149,14 @@ fun BugReportView(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
when (state.sending) {
|
AsyncView(
|
||||||
is Async.Loading -> {
|
async = state.sending,
|
||||||
// Indeterminate indicator, to avoid the freeze effect if the connection takes time to initialize.
|
onSuccess = {
|
||||||
CircularProgressIndicator(
|
eventSink(BugReportEvents.ResetAll)
|
||||||
modifier = Modifier.align(Alignment.Center)
|
onDone()
|
||||||
)
|
},
|
||||||
}
|
onErrorDismiss = { eventSink(BugReportEvents.ClearError) },
|
||||||
is Async.Failure -> ErrorDialog(
|
)
|
||||||
content = state.sending.error.toString(),
|
|
||||||
onDismiss = { state.eventSink(BugReportEvents.ClearError) }
|
|
||||||
)
|
|
||||||
else -> Unit
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue