Skip to content

Commit 0666d6d

Browse files
committed
feat: implement loading animation for projects
1 parent 575763f commit 0666d6d

File tree

2 files changed

+22
-9
lines changed

2 files changed

+22
-9
lines changed

composeApp/src/wasmJsMain/kotlin/org/nsh07/nsh07/ui/homeScreen/AppHomeScreen.kt

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,9 @@ import androidx.compose.foundation.lazy.items
77
import androidx.compose.foundation.lazy.rememberLazyListState
88
import androidx.compose.foundation.rememberScrollState
99
import androidx.compose.foundation.verticalScroll
10-
import androidx.compose.material3.Icon
11-
import androidx.compose.material3.IconButton
10+
import androidx.compose.material3.*
1211
import androidx.compose.material3.MaterialTheme.colorScheme
1312
import androidx.compose.material3.MaterialTheme.typography
14-
import androidx.compose.material3.Text
1513
import androidx.compose.runtime.*
1614
import androidx.compose.ui.Alignment
1715
import androidx.compose.ui.Modifier
@@ -24,6 +22,7 @@ import kotlinx.coroutines.launch
2422
import nsh07.composeapp.generated.resources.*
2523
import org.jetbrains.compose.resources.painterResource
2624

25+
@OptIn(ExperimentalMaterial3ExpressiveApi::class)
2726
@Composable
2827
fun AppHomeScreen(
2928
projectState: ProjectsState,
@@ -189,11 +188,17 @@ fun AppHomeScreen(
189188
}
190189
Spacer(Modifier.height(112.dp))
191190
}
192-
items(projectState.projects, key = { it.id }) {
193-
ProjectCard(
194-
project = it,
195-
cardPadding = cardPadding,
196-
modifier = Modifier.padding(bottom = 32.dp)
191+
if (!projectState.isLoading)
192+
items(projectState.projects, key = { it.id }) {
193+
ProjectCard(
194+
project = it,
195+
cardPadding = cardPadding,
196+
modifier = Modifier.padding(bottom = 32.dp)
197+
)
198+
}
199+
else item {
200+
LinearWavyProgressIndicator(
201+
Modifier.fillMaxWidth().padding(cardPadding).padding(bottom = 32.dp)
197202
)
198203
}
199204
item("github link text") {

composeApp/src/wasmJsMain/kotlin/org/nsh07/nsh07/ui/homeScreen/ExperienceCard.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import nsh07.composeapp.generated.resources.open_in_browser
2727
import org.jetbrains.compose.resources.painterResource
2828
import kotlin.text.Typography.bullet
2929
import kotlin.text.Typography.mdash
30+
import kotlin.text.Typography.nbsp
3031

3132
@OptIn(ExperimentalMaterial3ExpressiveApi::class)
3233
@Composable
@@ -45,7 +46,14 @@ fun ExperienceCard(
4546
) {
4647
Row(Modifier.fillMaxWidth().padding(cardPadding)) {
4748
Text(
48-
remember { "${experience.start} $mdash ${experience.end}".toUpperCase(Locale.current) },
49+
remember {
50+
"${experience.start.replace(' ', nbsp)} $mdash ${
51+
experience.end.replace(
52+
' ',
53+
nbsp
54+
)
55+
}".toUpperCase(Locale.current)
56+
},
4957
style = typography.labelMedium,
5058
color = colorScheme.outline,
5159
modifier = Modifier.padding(top = 4.dp, end = 16.dp).weight(1f)

0 commit comments

Comments
 (0)