diff --git a/wolfskin-design/src/main/java/org/justinvisser/wolfskin/design/LibraryScreen.kt b/wolfskin-design/src/main/java/org/justinvisser/wolfskin/design/LibraryScreen.kt index d72e9866..cdeb4d85 100644 --- a/wolfskin-design/src/main/java/org/justinvisser/wolfskin/design/LibraryScreen.kt +++ b/wolfskin-design/src/main/java/org/justinvisser/wolfskin/design/LibraryScreen.kt @@ -194,19 +194,24 @@ private fun LibraryToolbar(grid: LibraryGridState, active: Boolean) { @Composable private fun LibraryRecovery(grid: LibraryGridState, focused: Boolean) { + val lineBoxes = androidx.compose.ui.text.style.LineHeightStyle( + androidx.compose.ui.text.style.LineHeightStyle.Alignment.Center, + androidx.compose.ui.text.style.LineHeightStyle.Trim.None, + ) val unavailable = grid.status == LibraryStatus.Unavailable val title = if (unavailable) "Couldn’t reach your library" else if (grid.unwatched) "Nothing unwatched in ${grid.title}" else "Nothing in ${grid.title} yet" val text = if (unavailable) "Jellyfin isn’t answering. Nothing here is lost; try again in a moment." else if (grid.unwatched) "Everything here has been watched." else "Titles you or others request for you land here." val button = if (unavailable) "Try again" else if (grid.unwatched) "Show all" else "Open Discover" Box(Modifier.fillMaxWidth().height(L.row_state).padding(start = L.safeSide, top = G.panelTop)) { Column(Modifier.width(L.stateWidth).background(C.surface, RoundedCornerShape(WolfskinTokens.Radius.panel)) - .border(G.borderWidth, C.border, RoundedCornerShape(WolfskinTokens.Radius.panel)).padding(horizontal = G.panelPaddingX, vertical = G.panelPaddingY)) { + .border(G.borderWidth, C.border, RoundedCornerShape(WolfskinTokens.Radius.panel)).padding(G.borderWidth) + .padding(horizontal = G.panelPaddingX, vertical = G.panelPaddingY)) { Row(horizontalArrangement = Arrangement.spacedBy(G.panelIconGap), verticalAlignment = Alignment.CenterVertically) { Glyph(if (unavailable) "alert" else if (grid.title == "Movies") "film" else "nextup", if (unavailable) C.warn else C.accentText, Modifier.size(WolfskinTokens.Shell.panelIcon)) - Text(title, color = C.fg, style = WolfskinTokens.Type.stateTitle.copy(fontWeight = FontWeight.Bold)) + Text(title, color = C.fg, style = WolfskinTokens.Type.stateTitle.copy(fontWeight = FontWeight.Bold, lineHeightStyle = lineBoxes)) } Spacer(Modifier.height(G.panelTitleGap)) - Text(text, color = C.muted, style = WolfskinTokens.Type.body) + Text(text, color = C.muted, style = WolfskinTokens.Type.body.copy(lineHeightStyle = lineBoxes)) Spacer(Modifier.height(G.panelTextGap)) PickerButton(button, focused, !unavailable) { grid.key(ShellKey.Ok) } }