Skip to content

Commit 5586ad8

Browse files
authored
Merge pull request #67 from MohamedRejeb/0.5.x
sample: add Kanban Board demo with drag-and-drop functionality for cross-column card transfers
2 parents b4f5879 + 6058c10 commit 5586ad8

4 files changed

Lines changed: 491 additions & 0 deletions

File tree

sample/common/src/commonMain/kotlin/App.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import androidx.navigation.compose.composable
2222
import androidx.navigation.compose.rememberNavController
2323
import navigation.AutoScrollDemoRoute
2424
import navigation.AxisLockedDragRoute
25+
import navigation.KanbanBoardRoute
2526
import navigation.ConditionalDropRoute
2627
import navigation.DragHandleReorderRoute
2728
import navigation.DropStrategiesPlaygroundRoute
@@ -34,6 +35,7 @@ import navigation.ReorderListRoute
3435
import theme.AppTheme
3536
import ui.AutoScrollDemoScreen
3637
import ui.AxisLockedDragScreen
38+
import ui.KanbanBoardScreen
3739
import ui.ConditionalDropScreen
3840
import ui.DragHandleReorderScreen
3941
import ui.DropStrategiesPlaygroundScreen
@@ -89,6 +91,9 @@ fun App() {
8991
onNavigateToAutoScrollDemo = {
9092
navController.navigate(AutoScrollDemoRoute)
9193
},
94+
onNavigateToKanbanBoard = {
95+
navController.navigate(KanbanBoardRoute)
96+
},
9297
)
9398
}
9499
composable<ItemToItemOneDirectionRoute> {
@@ -141,6 +146,11 @@ fun App() {
141146
onBack = { navController.popBackStack() },
142147
)
143148
}
149+
composable<KanbanBoardRoute> {
150+
KanbanBoardScreen(
151+
onBack = { navController.popBackStack() },
152+
)
153+
}
144154
}
145155
}
146156
}

sample/common/src/commonMain/kotlin/navigation/Screen.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,6 @@ data object ConditionalDropRoute
4949

5050
@Serializable
5151
data object AutoScrollDemoRoute
52+
53+
@Serializable
54+
data object KanbanBoardRoute

sample/common/src/commonMain/kotlin/ui/HomeScreen.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ fun HomeScreen(
6464
onNavigateToAxisLockedDrag: () -> Unit,
6565
onNavigateToConditionalDrop: () -> Unit,
6666
onNavigateToAutoScrollDemo: () -> Unit,
67+
onNavigateToKanbanBoard: () -> Unit,
6768
) {
6869
val scrollBehavior = TopAppBarDefaults.exitUntilCollapsedScrollBehavior()
6970

@@ -148,6 +149,12 @@ fun HomeScreen(
148149
// -- Advanced Features --
149150
SectionHeader(title = "Advanced Features")
150151

152+
DemoListItem(
153+
title = "Kanban Board",
154+
description = "Cross-column card transfer with nested scroll",
155+
icon = Icons.Rounded.GridView,
156+
onClick = onNavigateToKanbanBoard,
157+
)
151158
DemoListItem(
152159
title = "Auto-Scroll Demo",
153160
description = "Row, Grid, and ScrollState auto-scroll while dragging",

0 commit comments

Comments
 (0)