@@ -13,6 +13,7 @@ import androidx.compose.foundation.layout.size
13
13
import androidx.compose.material3.CircularProgressIndicator
14
14
import androidx.compose.material3.FilledTonalButton
15
15
import androidx.compose.material3.MaterialTheme
16
+ import androidx.compose.material3.Surface
16
17
import androidx.compose.material3.Text
17
18
import androidx.compose.runtime.Composable
18
19
import androidx.compose.runtime.LaunchedEffect
@@ -74,25 +75,28 @@ private fun LoadingContent(
74
75
config : IStateLayoutConfig ,
75
76
modifier : Modifier = Modifier ,
76
77
) {
77
- Column (
78
- modifier = modifier,
79
- verticalArrangement = Arrangement .Center ,
80
- horizontalAlignment = Alignment .CenterHorizontally
81
- ) {
82
- ContentImage (drawableResource = config.loadingDrawable)
83
- Spacer (modifier = Modifier .height(8 .dp))
84
- Row (
85
- horizontalArrangement = Arrangement .spacedBy(16 .dp),
86
- verticalAlignment = Alignment .CenterVertically ,
78
+ Surface {
79
+ Column (
80
+ modifier = modifier,
81
+ verticalArrangement = Arrangement .Center ,
82
+ horizontalAlignment = Alignment .CenterHorizontally
87
83
) {
88
- CircularProgressIndicator (
89
- modifier = Modifier .size(24 .dp).align(alignment = Alignment .CenterVertically ),
90
- color = MaterialTheme .colorScheme.surfaceVariant,
91
- strokeWidth = 4 .dp,
92
- trackColor = MaterialTheme .colorScheme.secondary,
93
- )
94
- config.loadingMessage?.also {
95
- ContentText (text = stringResource(it))
84
+ ContentImage (drawableResource = config.loadingDrawable)
85
+ Spacer (modifier = Modifier .height(8 .dp))
86
+ Row (
87
+ horizontalArrangement = Arrangement .spacedBy(8 .dp),
88
+ verticalAlignment = Alignment .CenterVertically ,
89
+ ) {
90
+ CircularProgressIndicator (
91
+ modifier = Modifier .size(16 .dp)
92
+ .align(alignment = Alignment .CenterVertically ),
93
+ color = MaterialTheme .colorScheme.surfaceVariant,
94
+ strokeWidth = 2 .dp,
95
+ trackColor = MaterialTheme .colorScheme.secondary,
96
+ )
97
+ config.loadingMessage?.also {
98
+ ContentText (text = stringResource(it))
99
+ }
96
100
}
97
101
}
98
102
}
@@ -106,22 +110,24 @@ private fun ErrorContent(
106
110
onClick : suspend () -> Unit ,
107
111
) {
108
112
val scope = rememberCoroutineScope()
109
- Column (
110
- modifier = modifier,
111
- verticalArrangement = Arrangement .Center ,
112
- horizontalAlignment = Alignment .CenterHorizontally
113
- ) {
114
- ContentImage (drawableResource = config.errorDrawable)
115
- Spacer (modifier = Modifier .height(16 .dp))
116
- state.details.message?.also {
117
- ContentText (text = it)
118
- }
119
- config.retryAction?.also {
113
+ Surface {
114
+ Column (
115
+ modifier = modifier,
116
+ verticalArrangement = Arrangement .Center ,
117
+ horizontalAlignment = Alignment .CenterHorizontally
118
+ ) {
119
+ ContentImage (drawableResource = config.errorDrawable)
120
120
Spacer (modifier = Modifier .height(16 .dp))
121
- FilledTonalButton (
122
- onClick = { scope.launch { onClick() } },
123
- ) {
124
- Text (text = stringResource(it))
121
+ state.details.message?.also {
122
+ ContentText (text = it)
123
+ }
124
+ config.retryAction?.also {
125
+ Spacer (modifier = Modifier .height(16 .dp))
126
+ FilledTonalButton (
127
+ onClick = { scope.launch { onClick() } },
128
+ ) {
129
+ Text (text = stringResource(it))
130
+ }
125
131
}
126
132
}
127
133
}
@@ -174,7 +180,8 @@ fun <P: IParam> ContentWrapper(
174
180
}
175
181
176
182
177
- @AniTrendPreview.Mobile
183
+ @AniTrendPreview.Light
184
+ @AniTrendPreview.Dark
178
185
@Composable
179
186
private fun ContentWrapperPreview (
180
187
@PreviewParameter(provider = ContentWrapperPreviewParameter ::class ) loadState : LoadState
@@ -187,7 +194,7 @@ private fun ContentWrapperPreview(
187
194
defaultMessage = co.anitrend.core.android.R .string.app_controller_message_missing_param,
188
195
retryAction = co.anitrend.core.android.R .string.action_share
189
196
)
190
- PreviewTheme (wrapInSurface = true ) {
197
+ PreviewTheme {
191
198
when (loadState) {
192
199
is LoadState .Error -> ErrorContent (
193
200
config = config,
0 commit comments