Skip to content

Commit 13e4701

Browse files
committed
Implement HandlerNavigation
1 parent 0dfe3a9 commit 13e4701

File tree

2 files changed

+19
-8
lines changed
  • core
    • designsystem/src/main/kotlin/io/getstream/server/driven/core/designsystem/consumer
    • model/src/main/kotlin/io/getstream/server/driven/core/model

2 files changed

+19
-8
lines changed

core/designsystem/src/main/kotlin/io/getstream/server/driven/core/designsystem/consumer/ConsumeHandler.kt

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import androidx.compose.runtime.Composable
2020
import androidx.compose.ui.Modifier
2121
import io.getstream.server.driven.core.model.Handler
2222
import io.getstream.server.driven.core.model.HandlerAction
23+
import io.getstream.server.driven.core.model.HandlerNavigation
2324
import io.getstream.server.driven.core.model.HandlerType
2425

2526
@Composable
@@ -29,17 +30,23 @@ fun Modifier.consumeHandler(
2930
): Modifier {
3031
if (handler == null) return this
3132

32-
val action = if (handler.actions[HandlerAction.NAVIGATION.value] == "to") {
33-
{ navigator }
34-
} else {
35-
{}
36-
}
33+
handler.actions.forEach { element ->
34+
val action =
35+
if (element.key == HandlerAction.NAVIGATION.value &&
36+
element.value == HandlerNavigation.TO.value
37+
) {
38+
{ navigator }
39+
} else {
40+
{}
41+
}
3742

38-
return then(
39-
if (handler.type == HandlerType.CLICK.value) {
43+
val newModifier = if (handler.type == HandlerType.CLICK.value) {
4044
Modifier.clickable { action.invoke() }
4145
} else {
4246
Modifier
4347
}
44-
)
48+
49+
then(newModifier)
50+
}
51+
return this
4552
}

core/model/src/main/kotlin/io/getstream/server/driven/core/model/Handler.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,7 @@ enum class HandlerType(val value: String) {
3232
enum class HandlerAction(val value: String) {
3333
NAVIGATION("navigation")
3434
}
35+
36+
enum class HandlerNavigation(val value: String) {
37+
TO("to")
38+
}

0 commit comments

Comments
 (0)