Use context parameter for the parentNode
This commit is contained in:
committed by
Benoit Marty
parent
566515ca88
commit
05c5f3c914
@@ -18,5 +18,6 @@ interface CreatePollEntryPoint : FeatureEntryPoint {
|
||||
val mode: CreatePollMode,
|
||||
)
|
||||
|
||||
fun createNode(parentNode: Node, buildContext: BuildContext, params: Params): Node
|
||||
context(parentNode: Node)
|
||||
fun createNode(buildContext: BuildContext, params: Params): Node
|
||||
}
|
||||
|
||||
@@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode
|
||||
|
||||
@ContributesBinding(AppScope::class)
|
||||
class DefaultCreatePollEntryPoint : CreatePollEntryPoint {
|
||||
override fun createNode(parentNode: Node, buildContext: BuildContext, params: CreatePollEntryPoint.Params): Node {
|
||||
context(parentNode: Node)
|
||||
override fun createNode(buildContext: BuildContext, params: CreatePollEntryPoint.Params): Node {
|
||||
return parentNode.createNode<CreatePollNode>(
|
||||
buildContext = buildContext,
|
||||
plugins = listOf(CreatePollNode.Inputs(timelineMode = params.timelineMode, mode = params.mode))
|
||||
|
||||
@@ -16,7 +16,8 @@ import io.element.android.libraries.architecture.createNode
|
||||
|
||||
@ContributesBinding(AppScope::class)
|
||||
class DefaultPollHistoryEntryPoint : PollHistoryEntryPoint {
|
||||
override fun createNode(parentNode: Node, buildContext: BuildContext): Node {
|
||||
context(parentNode: Node)
|
||||
override fun createNode(buildContext: BuildContext): Node {
|
||||
return parentNode.createNode<PollHistoryFlowNode>(buildContext)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,7 +54,6 @@ class PollHistoryFlowNode(
|
||||
return when (navTarget) {
|
||||
is NavTarget.EditPoll -> {
|
||||
createPollEntryPoint.createNode(
|
||||
parentNode = this,
|
||||
buildContext = buildContext,
|
||||
params = CreatePollEntryPoint.Params(
|
||||
timelineMode = Timeline.Mode.Live,
|
||||
|
||||
@@ -53,11 +53,12 @@ class DefaultCreatePollEntryPointTest {
|
||||
timelineMode = Timeline.Mode.Live,
|
||||
mode = CreatePollMode.NewPoll,
|
||||
)
|
||||
val result = entryPoint.createNode(
|
||||
parentNode = parentNode,
|
||||
buildContext = BuildContext.root(null),
|
||||
params = params,
|
||||
)
|
||||
val result = with(parentNode) {
|
||||
entryPoint.createNode(
|
||||
buildContext = BuildContext.root(null),
|
||||
params = params,
|
||||
)
|
||||
}
|
||||
assertThat(result).isInstanceOf(CreatePollNode::class.java)
|
||||
assertThat(result.plugins).contains(CreatePollNode.Inputs(timelineMode = params.timelineMode, mode = params.mode))
|
||||
}
|
||||
|
||||
@@ -34,15 +34,17 @@ class DefaultPollHistoryEntryPointTest {
|
||||
buildContext = buildContext,
|
||||
plugins = plugins,
|
||||
createPollEntryPoint = object : CreatePollEntryPoint {
|
||||
context(parentNode: Node)
|
||||
override fun createNode(
|
||||
parentNode: Node,
|
||||
buildContext: BuildContext,
|
||||
params: CreatePollEntryPoint.Params,
|
||||
) = lambdaError()
|
||||
}
|
||||
)
|
||||
}
|
||||
val result = entryPoint.createNode(parentNode, BuildContext.root(null))
|
||||
val result = with(parentNode) {
|
||||
entryPoint.createNode(BuildContext.root(null))
|
||||
}
|
||||
assertThat(result).isInstanceOf(PollHistoryFlowNode::class.java)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user