11package com.paulcoding.hviewer.ui.page.sites
22
33import androidx.compose.foundation.clickable
4+ import androidx.compose.foundation.layout.Arrangement
45import androidx.compose.foundation.layout.Box
56import androidx.compose.foundation.layout.Column
7+ import androidx.compose.foundation.layout.Row
68import androidx.compose.foundation.layout.Spacer
79import androidx.compose.foundation.layout.fillMaxSize
810import androidx.compose.foundation.layout.height
@@ -33,6 +35,7 @@ import com.airbnb.lottie.compose.LottieCompositionSpec
3335import com.airbnb.lottie.compose.animateLottieCompositionAsState
3436import com.airbnb.lottie.compose.rememberLottieComposition
3537import com.paulcoding.hviewer.R
38+ import com.paulcoding.hviewer.model.SiteConfig
3639import com.paulcoding.hviewer.model.SiteConfigs
3740import com.paulcoding.hviewer.ui.icon.SettingsIcon
3841import kotlinx.coroutines.delay
@@ -85,7 +88,6 @@ fun SitesPage(
8588 ) {}
8689 Column (
8790 modifier = Modifier
88- .padding(16 .dp)
8991 .fillMaxSize()
9092 .verticalScroll(rememberScrollState())
9193 ) {
@@ -96,15 +98,31 @@ fun SitesPage(
9698 Box (modifier = Modifier .clickable {
9799 navToTopics(site)
98100 }) {
99- Text (site)
101+ siteConfigs.sites[site]?.let { siteConfig ->
102+ Site (
103+ key = site,
104+ site = siteConfig
105+ )
106+ }
100107 }
101108 }
102-
103109 }
104110 }
105111 }
106112}
107113
114+ @Composable
115+ fun Site (site : SiteConfig , key : String ) {
116+ Row (
117+ modifier = Modifier .padding(horizontal = 16 .dp, vertical = 12 .dp),
118+ verticalAlignment = Alignment .CenterVertically ,
119+ horizontalArrangement = Arrangement .spacedBy(8 .dp)
120+ ) {
121+ site.SiteIcon ()
122+ Text (key)
123+ }
124+ }
125+
108126@Composable
109127private fun Empty (navToSettings : () -> Unit ) {
110128 val composition by rememberLottieComposition(LottieCompositionSpec .RawRes (R .raw.empty))
0 commit comments