feat(common-ui): translate image loading error

This commit is contained in:
Diego Beraldin 2023-09-20 08:19:09 +02:00
parent 5d2ce2d836
commit 443a9f480a
7 changed files with 32 additions and 6 deletions

View File

@ -7,8 +7,11 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.blur import androidx.compose.ui.draw.blur
import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import com.github.diegoberaldin.racconforlemmy.core.utils.onClick import com.github.diegoberaldin.racconforlemmy.core.utils.onClick
import com.github.diegoberaldin.raccoonforlemmy.resources.MR
import dev.icerock.moko.resources.compose.stringResource
import io.kamel.image.KamelImage import io.kamel.image.KamelImage
import io.kamel.image.asyncPainterResource import io.kamel.image.asyncPainterResource
@ -32,7 +35,11 @@ fun PostCardImage(
contentDescription = null, contentDescription = null,
contentScale = ContentScale.FillWidth, contentScale = ContentScale.FillWidth,
onFailure = { onFailure = {
Text(text = "⚠️ Image loading error") Text(
modifier = Modifier.fillMaxWidth(),
textAlign = TextAlign.Center,
text = stringResource(MR.strings.message_image_loading_error)
)
}, },
) )
} }

View File

@ -4,6 +4,7 @@ import androidx.compose.foundation.background
import androidx.compose.foundation.gestures.detectTransformGestures import androidx.compose.foundation.gestures.detectTransformGestures
import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
@ -17,6 +18,9 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.RectangleShape import androidx.compose.ui.graphics.RectangleShape
import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.graphics.graphicsLayer
import androidx.compose.ui.input.pointer.pointerInput import androidx.compose.ui.input.pointer.pointerInput
import androidx.compose.ui.text.style.TextAlign
import com.github.diegoberaldin.raccoonforlemmy.resources.MR
import dev.icerock.moko.resources.compose.stringResource
import io.kamel.image.KamelImage import io.kamel.image.KamelImage
import io.kamel.image.asyncPainterResource import io.kamel.image.asyncPainterResource
@ -54,7 +58,11 @@ fun ZoomableImage(
resource = painterResource, resource = painterResource,
contentDescription = null, contentDescription = null,
onFailure = { onFailure = {
Text(text = "⚠️ Image loading error") Text(
modifier = Modifier.fillMaxWidth(),
textAlign = TextAlign.Center,
text = stringResource(MR.strings.message_image_loading_error)
)
}, },
) )
} }

View File

@ -40,6 +40,7 @@ kotlin {
api(libs.markdown) api(libs.markdown)
implementation(libs.kamel) implementation(libs.kamel)
implementation(projects.resources)
} }
} }
val commonTest by getting { val commonTest by getting {

View File

@ -15,6 +15,9 @@ import androidx.compose.ui.text.Placeholder
import androidx.compose.ui.text.PlaceholderVerticalAlign import androidx.compose.ui.text.PlaceholderVerticalAlign
import androidx.compose.ui.text.TextLayoutResult import androidx.compose.ui.text.TextLayoutResult
import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.style.TextAlign
import com.github.diegoberaldin.raccoonforlemmy.resources.MR
import dev.icerock.moko.resources.compose.stringResource
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import com.github.diegoberaldin.raccoonforlemmy.core.markdown.compose.LocalMarkdownColors import com.github.diegoberaldin.raccoonforlemmy.core.markdown.compose.LocalMarkdownColors
import com.github.diegoberaldin.raccoonforlemmy.core.markdown.compose.LocalMarkdownTypography import com.github.diegoberaldin.raccoonforlemmy.core.markdown.compose.LocalMarkdownTypography
@ -82,7 +85,11 @@ internal fun MarkdownText(
contentScale = ContentScale.FillWidth, contentScale = ContentScale.FillWidth,
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
onFailure = { onFailure = {
Text(text = "⚠️ Image loading error") Text(
modifier = Modifier.fillMaxWidth(),
textAlign = TextAlign.Center,
text = stringResource(MR.strings.message_image_loading_error)
)
}, },
) )
}, },

View File

@ -70,6 +70,7 @@ class LoginBottomSheet : Screen {
val snackbarHostState = remember { SnackbarHostState() } val snackbarHostState = remember { SnackbarHostState() }
val genericError = stringResource(MR.strings.message_generic_error) val genericError = stringResource(MR.strings.message_generic_error)
val bottomSheetNavigator = LocalBottomSheetNavigator.current val bottomSheetNavigator = LocalBottomSheetNavigator.current
val successfulLoginMessage = stringResource(MR.strings.message_login_successful)
LaunchedEffect(model) { LaunchedEffect(model) {
model.effects.onEach { model.effects.onEach {
@ -81,9 +82,7 @@ class LoginBottomSheet : Screen {
} }
LoginBottomSheetMviModel.Effect.LoginSuccess -> { LoginBottomSheetMviModel.Effect.LoginSuccess -> {
snackbarHostState.showSnackbar( snackbarHostState.showSnackbar(message = successfulLoginMessage)
message = "Successfully logged in! \uD83C\uDF89\uD83C\uDF89\uD83C\uDF89",
)
bottomSheetNavigator.hide() bottomSheetNavigator.hide()
} }
} }

View File

@ -14,6 +14,8 @@
<string name="message_generic_error">Generic error</string> <string name="message_generic_error">Generic error</string>
<string name="message_missing_field">Missing field</string> <string name="message_missing_field">Missing field</string>
<string name="message_invalid_field">Invalid field</string> <string name="message_invalid_field">Invalid field</string>
<string name="message_image_loading_error">⚠️ Image loading error ⚠️</string>
<string name="message_login_successful">🎉 Login successful! 🎉</string>
<string name="button_confirm">Confirm</string> <string name="button_confirm">Confirm</string>

View File

@ -11,6 +11,8 @@
<string name="message_generic_error">Errore generico</string> <string name="message_generic_error">Errore generico</string>
<string name="message_missing_field">Campo obbligatorio</string> <string name="message_missing_field">Campo obbligatorio</string>
<string name="message_invalid_field">Campo non valido</string> <string name="message_invalid_field">Campo non valido</string>
<string name="message_image_loading_error">⚠️ Errore caricamento immagine ⚠️</string>
<string name="message_login_successful">🎉 Login effettuato con successo! 🎉</string>
<string name="button_confirm">Conferma</string> <string name="button_confirm">Conferma</string>