Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit dc110a7a authored by Wolf-Martell Montwé's avatar Wolf-Martell Montwé
Browse files

Change ErrorView to make onRetry optional and update style

parent ab7d6801
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -26,7 +26,31 @@ fun LazyGridScope.stateItems() {
        ItemOutlined {
            ErrorView(
                title = "Error",
            )
        }
    }
    item {
        ItemOutlined {
            ErrorView(
                title = "Error with message",
                message = "Something went wrong",
            )
        }
    }
    item {
        ItemOutlined {
            ErrorView(
                title = "Error with retry",
                onRetry = {},
            )
        }
    }
    item {
        ItemOutlined {
            ErrorView(
                title = "Error with retry and message",
                message = "Something went wrong",
                onRetry = {},
            )
        }
    }
+59 −33
Original line number Diff line number Diff line
@@ -4,7 +4,9 @@ import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.material.Icon
import androidx.compose.runtime.Composable
@@ -26,7 +28,7 @@ fun ErrorView(
    title: String,
    modifier: Modifier = Modifier,
    message: String? = null,
    onRetry: () -> Unit = { },
    onRetry: (() -> Unit)? = null,
    contentAlignment: Alignment = Alignment.Center,
) {
    Box(
@@ -38,10 +40,10 @@ fun ErrorView(
        Column(
            modifier = Modifier
                .fillMaxWidth()
                .padding(
                    vertical = MainTheme.spacings.default,
                    horizontal = MainTheme.spacings.double,
                ),
                .padding(MainTheme.spacings.double),
        ) {
            Column(
                modifier = Modifier.fillMaxWidth(),
                horizontalAlignment = Alignment.CenterHorizontally,
                verticalArrangement = Arrangement.spacedBy(MainTheme.spacings.default),
            ) {
@@ -49,23 +51,23 @@ fun ErrorView(
                    imageVector = Icons.Filled.error,
                    contentDescription = null,
                    tint = MainTheme.colors.error,
                modifier = Modifier.padding(top = MainTheme.spacings.default),
                )
                TextSubtitle1(
                    text = title,
                modifier = Modifier.padding(bottom = MainTheme.spacings.default),
                )
            }

            if (message != null) {
                Spacer(modifier = Modifier.height(MainTheme.spacings.double))
                TextBody2(
                    text = message,
                    modifier = Modifier
                        .fillMaxWidth(),
                    modifier = Modifier.fillMaxWidth(),
                )
            }
            if (onRetry != null) {
                Spacer(modifier = Modifier.height(MainTheme.spacings.default))
                Row(
                modifier = Modifier
                    .fillMaxWidth(),
                verticalAlignment = Alignment.CenterVertically,
                    modifier = Modifier.fillMaxWidth(),
                    horizontalArrangement = Arrangement.End,
                ) {
                    ButtonText(
@@ -80,6 +82,7 @@ fun ErrorView(
            }
        }
    }
}

@Preview(showBackground = true)
@Composable
@@ -101,3 +104,26 @@ internal fun ErrorViewWithMessagePreview() {
        )
    }
}

@Preview(showBackground = true)
@Composable
internal fun ErrorViewWithRetryPreview() {
    PreviewWithThemes {
        ErrorView(
            title = "Error",
            onRetry = {},
        )
    }
}

@Preview(showBackground = true)
@Composable
internal fun ErrorViewWithRetryAndMessagePreview() {
    PreviewWithThemes {
        ErrorView(
            title = "Error",
            message = "Something went wrong.",
            onRetry = {},
        )
    }
}