diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt
index a76a38bb..8f3c187e 100644
--- a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt
+++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt
@@ -87,6 +87,7 @@ fun LobstersApp(
label = "Hottest",
route = Destinations.Hottest.getRoute(),
icon = ClawIcons.Flame,
+ selectedIcon = ClawIcons.FlameFilled,
) {
coroutineScope.launch { hottestListState.animateScrollToItem(index = 0) }
},
@@ -94,6 +95,7 @@ fun LobstersApp(
label = "Newest",
route = Destinations.Newest.getRoute(),
icon = ClawIcons.New,
+ selectedIcon = ClawIcons.NewFilled,
) {
coroutineScope.launch { newestListState.animateScrollToItem(index = 0) }
},
@@ -101,6 +103,7 @@ fun LobstersApp(
label = "Saved",
route = Destinations.Saved.getRoute(),
icon = ClawIcons.HeartBorder,
+ selectedIcon = ClawIcons.Heart,
) {
coroutineScope.launch { savedListState.animateScrollToItem(index = 0) }
},
diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawNavigationBar.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawNavigationBar.kt
index 09525450..e688d9d2 100644
--- a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawNavigationBar.kt
+++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawNavigationBar.kt
@@ -1,6 +1,7 @@
package dev.msfjarvis.claw.android.ui.decorations
import androidx.compose.animation.AnimatedVisibility
+import androidx.compose.animation.Crossfade
import androidx.compose.material3.Icon
import androidx.compose.material3.NavigationBar
import androidx.compose.material3.NavigationBarItem
@@ -28,12 +29,20 @@ fun ClawNavigationBar(
) {
NavigationBar(modifier = modifier) {
items.forEach { navItem ->
+ val isCurrentDestination = navController.currentDestination?.route == navItem.route
NavigationBarItem(
- icon = { Icon(painter = navItem.icon, contentDescription = navItem.label.uppercase()) },
+ icon = {
+ Crossfade(isCurrentDestination) {
+ Icon(
+ painter = if (it) navItem.selectedIcon else navItem.icon,
+ contentDescription = navItem.label.uppercase()
+ )
+ }
+ },
label = { Text(text = navItem.label) },
- selected = navController.currentDestination?.route == navItem.route,
+ selected = isCurrentDestination,
onClick = {
- if (navController.currentDestination?.route == navItem.route) {
+ if (isCurrentDestination) {
navItem.listStateResetCallback()
return@NavigationBarItem
}
@@ -52,5 +61,6 @@ class NavigationItem(
val label: String,
val route: String,
val icon: Painter,
+ val selectedIcon: Painter,
val listStateResetCallback: () -> Unit,
)
diff --git a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/ClawIcons.kt b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/ClawIcons.kt
index b7d212d0..b6bcec73 100644
--- a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/ClawIcons.kt
+++ b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/res/ClawIcons.kt
@@ -5,8 +5,10 @@ import dev.msfjarvis.claw.common.res.clawicons.comment_black_24dp
import dev.msfjarvis.claw.common.res.clawicons.favorite_black_24dp
import dev.msfjarvis.claw.common.res.clawicons.favorite_border_black_24dp
import dev.msfjarvis.claw.common.res.clawicons.new_releases_black_24dp
+import dev.msfjarvis.claw.common.res.clawicons.new_releases_filled_black_24dp
import dev.msfjarvis.claw.common.res.clawicons.public_black_24dp
import dev.msfjarvis.claw.common.res.clawicons.whatshot_black_24dp
+import dev.msfjarvis.claw.common.res.clawicons.whatshot_filled_black_24dp
object ClawIcons {
@@ -16,11 +18,15 @@ object ClawIcons {
val Flame = whatshot_black_24dp()
+ val FlameFilled = whatshot_filled_black_24dp()
+
val Heart = favorite_black_24dp()
val HeartBorder = favorite_border_black_24dp()
val New = new_releases_black_24dp()
+ val NewFilled = new_releases_filled_black_24dp()
+
val Web = public_black_24dp()
}
diff --git a/common/src/commonMain/svgs/new_releases_filled_black_24dp.svg b/common/src/commonMain/svgs/new_releases_filled_black_24dp.svg
new file mode 100644
index 00000000..c66063fe
--- /dev/null
+++ b/common/src/commonMain/svgs/new_releases_filled_black_24dp.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/common/src/commonMain/svgs/whatshot_filled_black_24dp.svg b/common/src/commonMain/svgs/whatshot_filled_black_24dp.svg
new file mode 100644
index 00000000..8b4e7a8a
--- /dev/null
+++ b/common/src/commonMain/svgs/whatshot_filled_black_24dp.svg
@@ -0,0 +1 @@
+
\ No newline at end of file