From 39d09e96222fafde502fd6a7b5284ba272f20b11 Mon Sep 17 00:00:00 2001 From: Arkadii Ivanov Date: Thu, 21 Nov 2024 22:07:18 +0000 Subject: [PATCH] Added placeholders for ChildPanels --- .../extensions-compose-experimental.api | 24 ++++++--- .../extensions-compose-experimental.klib.api | 8 +-- .../jvm/extensions-compose-experimental.api | 24 ++++++--- .../experimental/panels/ChildPanels.kt | 50 ++++++++++++++----- .../shared/multipane/MultiPaneContent.kt | 10 ++++ 5 files changed, 88 insertions(+), 28 deletions(-) diff --git a/extensions-compose-experimental/api/android/extensions-compose-experimental.api b/extensions-compose-experimental/api/android/extensions-compose-experimental.api index 16f85094..7cb9ebf5 100644 --- a/extensions-compose-experimental/api/android/extensions-compose-experimental.api +++ b/extensions-compose-experimental/api/android/extensions-compose-experimental.api @@ -9,10 +9,10 @@ public final class com/arkivanov/decompose/extensions/compose/experimental/panel } public final class com/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsKt { - public static final fun ChildPanels (Lcom/arkivanov/decompose/router/panels/ChildPanels;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Landroidx/compose/ui/Modifier;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsLayout;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsAnimators;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)V - public static final fun ChildPanels (Lcom/arkivanov/decompose/router/panels/ChildPanels;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Landroidx/compose/ui/Modifier;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsLayout;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsAnimators;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)V - public static final fun ChildPanels (Lcom/arkivanov/decompose/value/Value;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Landroidx/compose/ui/Modifier;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsLayout;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsAnimators;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)V - public static final fun ChildPanels (Lcom/arkivanov/decompose/value/Value;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Landroidx/compose/ui/Modifier;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsLayout;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsAnimators;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)V + public static final fun ChildPanels (Lcom/arkivanov/decompose/router/panels/ChildPanels;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsLayout;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsAnimators;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)V + public static final fun ChildPanels (Lcom/arkivanov/decompose/router/panels/ChildPanels;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsLayout;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsAnimators;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)V + public static final fun ChildPanels (Lcom/arkivanov/decompose/value/Value;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsLayout;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsAnimators;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)V + public static final fun ChildPanels (Lcom/arkivanov/decompose/value/Value;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsLayout;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsAnimators;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)V } public abstract interface class com/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsLayout { @@ -21,11 +21,23 @@ public abstract interface class com/arkivanov/decompose/extensions/compose/exper public final class com/arkivanov/decompose/extensions/compose/experimental/panels/ComposableSingletons$ChildPanelsKt { public static final field INSTANCE Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ComposableSingletons$ChildPanelsKt; - public static field lambda-1 Lkotlin/jvm/functions/Function3; + public static field lambda-1 Lkotlin/jvm/functions/Function2; public static field lambda-2 Lkotlin/jvm/functions/Function3; + public static field lambda-3 Lkotlin/jvm/functions/Function2; + public static field lambda-4 Lkotlin/jvm/functions/Function3; + public static field lambda-5 Lkotlin/jvm/functions/Function2; + public static field lambda-6 Lkotlin/jvm/functions/Function2; + public static field lambda-7 Lkotlin/jvm/functions/Function2; + public static field lambda-8 Lkotlin/jvm/functions/Function2; public fun ()V - public final fun getLambda-1$extensions_compose_experimental_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-1$extensions_compose_experimental_release ()Lkotlin/jvm/functions/Function2; public final fun getLambda-2$extensions_compose_experimental_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-3$extensions_compose_experimental_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-4$extensions_compose_experimental_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-5$extensions_compose_experimental_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-6$extensions_compose_experimental_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-7$extensions_compose_experimental_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-8$extensions_compose_experimental_release ()Lkotlin/jvm/functions/Function2; } public final class com/arkivanov/decompose/extensions/compose/experimental/panels/HorizontalChildPanelsLayout : com/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsLayout { diff --git a/extensions-compose-experimental/api/extensions-compose-experimental.klib.api b/extensions-compose-experimental/api/extensions-compose-experimental.klib.api index c7e04401..b30a935e 100644 --- a/extensions-compose-experimental/api/extensions-compose-experimental.klib.api +++ b/extensions-compose-experimental/api/extensions-compose-experimental.klib.api @@ -62,10 +62,10 @@ final val com.arkivanov.decompose.extensions.compose.experimental.stack.animatio final val com.arkivanov.decompose.extensions.compose.experimental/com_arkivanov_decompose_extensions_compose_experimental_BroadcastBackHandler$stableprop // com.arkivanov.decompose.extensions.compose.experimental/com_arkivanov_decompose_extensions_compose_experimental_BroadcastBackHandler$stableprop|#static{}com_arkivanov_decompose_extensions_compose_experimental_BroadcastBackHandler$stableprop[0] final fun (com.arkivanov.decompose.extensions.compose.experimental.stack.animation/StackAnimator).com.arkivanov.decompose.extensions.compose.experimental.stack.animation/plus(com.arkivanov.decompose.extensions.compose.experimental.stack.animation/StackAnimator): com.arkivanov.decompose.extensions.compose.experimental.stack.animation/StackAnimator // com.arkivanov.decompose.extensions.compose.experimental.stack.animation/plus|plus@com.arkivanov.decompose.extensions.compose.experimental.stack.animation.StackAnimator(com.arkivanov.decompose.extensions.compose.experimental.stack.animation.StackAnimator){}[0] -final fun <#A: kotlin/Any, #B: kotlin/Any, #C: kotlin/Any, #D: kotlin/Any, #E: kotlin/Any, #F: kotlin/Any> com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanels(com.arkivanov.decompose.router.panels/ChildPanels<#A, #B, #C, #D, #E, #F>, kotlin/Function3, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, kotlin/Function3, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, kotlin/Function3, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, androidx.compose.ui/Modifier?, com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanelsLayout?, com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanelsAnimators?, kotlin/Function1, com.arkivanov.decompose.extensions.compose.experimental.stack.animation/PredictiveBackParams?>?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanels|ChildPanels(com.arkivanov.decompose.router.panels.ChildPanels<0:0,0:1,0:2,0:3,0:4,0:5>;kotlin.Function3,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;kotlin.Function3,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;kotlin.Function3,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.ui.Modifier?;com.arkivanov.decompose.extensions.compose.experimental.panels.ChildPanelsLayout?;com.arkivanov.decompose.extensions.compose.experimental.panels.ChildPanelsAnimators?;kotlin.Function1,com.arkivanov.decompose.extensions.compose.experimental.stack.animation.PredictiveBackParams?>?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){0§;1§;2§;3§;4§;5§}[0] -final fun <#A: kotlin/Any, #B: kotlin/Any, #C: kotlin/Any, #D: kotlin/Any, #E: kotlin/Any, #F: kotlin/Any> com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanels(com.arkivanov.decompose.value/Value>, kotlin/Function3, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, kotlin/Function3, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, kotlin/Function3, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, androidx.compose.ui/Modifier?, com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanelsLayout?, com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanelsAnimators?, kotlin/Function1, com.arkivanov.decompose.extensions.compose.experimental.stack.animation/PredictiveBackParams?>?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanels|ChildPanels(com.arkivanov.decompose.value.Value>;kotlin.Function3,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;kotlin.Function3,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;kotlin.Function3,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.ui.Modifier?;com.arkivanov.decompose.extensions.compose.experimental.panels.ChildPanelsLayout?;com.arkivanov.decompose.extensions.compose.experimental.panels.ChildPanelsAnimators?;kotlin.Function1,com.arkivanov.decompose.extensions.compose.experimental.stack.animation.PredictiveBackParams?>?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){0§;1§;2§;3§;4§;5§}[0] -final fun <#A: kotlin/Any, #B: kotlin/Any, #C: kotlin/Any, #D: kotlin/Any> com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanels(com.arkivanov.decompose.router.panels/ChildPanels<#A, #B, #C, #D, *, *>, kotlin/Function3, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, kotlin/Function3, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, androidx.compose.ui/Modifier?, com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanelsLayout?, com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanelsAnimators?, kotlin/Function1, com.arkivanov.decompose.extensions.compose.experimental.stack.animation/PredictiveBackParams?>?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanels|ChildPanels(com.arkivanov.decompose.router.panels.ChildPanels<0:0,0:1,0:2,0:3,*,*>;kotlin.Function3,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;kotlin.Function3,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.ui.Modifier?;com.arkivanov.decompose.extensions.compose.experimental.panels.ChildPanelsLayout?;com.arkivanov.decompose.extensions.compose.experimental.panels.ChildPanelsAnimators?;kotlin.Function1,com.arkivanov.decompose.extensions.compose.experimental.stack.animation.PredictiveBackParams?>?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){0§;1§;2§;3§}[0] -final fun <#A: kotlin/Any, #B: kotlin/Any, #C: kotlin/Any, #D: kotlin/Any> com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanels(com.arkivanov.decompose.value/Value>, kotlin/Function3, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, kotlin/Function3, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, androidx.compose.ui/Modifier?, com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanelsLayout?, com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanelsAnimators?, kotlin/Function1, com.arkivanov.decompose.extensions.compose.experimental.stack.animation/PredictiveBackParams?>?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanels|ChildPanels(com.arkivanov.decompose.value.Value>;kotlin.Function3,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;kotlin.Function3,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.ui.Modifier?;com.arkivanov.decompose.extensions.compose.experimental.panels.ChildPanelsLayout?;com.arkivanov.decompose.extensions.compose.experimental.panels.ChildPanelsAnimators?;kotlin.Function1,com.arkivanov.decompose.extensions.compose.experimental.stack.animation.PredictiveBackParams?>?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){0§;1§;2§;3§}[0] +final fun <#A: kotlin/Any, #B: kotlin/Any, #C: kotlin/Any, #D: kotlin/Any, #E: kotlin/Any, #F: kotlin/Any> com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanels(com.arkivanov.decompose.router.panels/ChildPanels<#A, #B, #C, #D, #E, #F>, kotlin/Function3, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, kotlin/Function3, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, kotlin/Function3, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, androidx.compose.ui/Modifier?, kotlin/Function2?, kotlin/Function2?, com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanelsLayout?, com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanelsAnimators?, kotlin/Function1, com.arkivanov.decompose.extensions.compose.experimental.stack.animation/PredictiveBackParams?>?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanels|ChildPanels(com.arkivanov.decompose.router.panels.ChildPanels<0:0,0:1,0:2,0:3,0:4,0:5>;kotlin.Function3,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;kotlin.Function3,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;kotlin.Function3,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.ui.Modifier?;kotlin.Function2?;kotlin.Function2?;com.arkivanov.decompose.extensions.compose.experimental.panels.ChildPanelsLayout?;com.arkivanov.decompose.extensions.compose.experimental.panels.ChildPanelsAnimators?;kotlin.Function1,com.arkivanov.decompose.extensions.compose.experimental.stack.animation.PredictiveBackParams?>?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){0§;1§;2§;3§;4§;5§}[0] +final fun <#A: kotlin/Any, #B: kotlin/Any, #C: kotlin/Any, #D: kotlin/Any, #E: kotlin/Any, #F: kotlin/Any> com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanels(com.arkivanov.decompose.value/Value>, kotlin/Function3, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, kotlin/Function3, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, kotlin/Function3, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, androidx.compose.ui/Modifier?, kotlin/Function2?, kotlin/Function2?, com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanelsLayout?, com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanelsAnimators?, kotlin/Function1, com.arkivanov.decompose.extensions.compose.experimental.stack.animation/PredictiveBackParams?>?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanels|ChildPanels(com.arkivanov.decompose.value.Value>;kotlin.Function3,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;kotlin.Function3,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;kotlin.Function3,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.ui.Modifier?;kotlin.Function2?;kotlin.Function2?;com.arkivanov.decompose.extensions.compose.experimental.panels.ChildPanelsLayout?;com.arkivanov.decompose.extensions.compose.experimental.panels.ChildPanelsAnimators?;kotlin.Function1,com.arkivanov.decompose.extensions.compose.experimental.stack.animation.PredictiveBackParams?>?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){0§;1§;2§;3§;4§;5§}[0] +final fun <#A: kotlin/Any, #B: kotlin/Any, #C: kotlin/Any, #D: kotlin/Any> com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanels(com.arkivanov.decompose.router.panels/ChildPanels<#A, #B, #C, #D, *, *>, kotlin/Function3, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, kotlin/Function3, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, androidx.compose.ui/Modifier?, kotlin/Function2?, com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanelsLayout?, com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanelsAnimators?, kotlin/Function1, com.arkivanov.decompose.extensions.compose.experimental.stack.animation/PredictiveBackParams?>?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanels|ChildPanels(com.arkivanov.decompose.router.panels.ChildPanels<0:0,0:1,0:2,0:3,*,*>;kotlin.Function3,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;kotlin.Function3,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.ui.Modifier?;kotlin.Function2?;com.arkivanov.decompose.extensions.compose.experimental.panels.ChildPanelsLayout?;com.arkivanov.decompose.extensions.compose.experimental.panels.ChildPanelsAnimators?;kotlin.Function1,com.arkivanov.decompose.extensions.compose.experimental.stack.animation.PredictiveBackParams?>?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){0§;1§;2§;3§}[0] +final fun <#A: kotlin/Any, #B: kotlin/Any, #C: kotlin/Any, #D: kotlin/Any> com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanels(com.arkivanov.decompose.value/Value>, kotlin/Function3, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, kotlin/Function3, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, androidx.compose.ui/Modifier?, kotlin/Function2?, com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanelsLayout?, com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanelsAnimators?, kotlin/Function1, com.arkivanov.decompose.extensions.compose.experimental.stack.animation/PredictiveBackParams?>?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // com.arkivanov.decompose.extensions.compose.experimental.panels/ChildPanels|ChildPanels(com.arkivanov.decompose.value.Value>;kotlin.Function3,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;kotlin.Function3,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.ui.Modifier?;kotlin.Function2?;com.arkivanov.decompose.extensions.compose.experimental.panels.ChildPanelsLayout?;com.arkivanov.decompose.extensions.compose.experimental.panels.ChildPanelsAnimators?;kotlin.Function1,com.arkivanov.decompose.extensions.compose.experimental.stack.animation.PredictiveBackParams?>?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){0§;1§;2§;3§}[0] final fun <#A: kotlin/Any, #B: kotlin/Any> com.arkivanov.decompose.extensions.compose.experimental.stack.animation/stackAnimation(com.arkivanov.decompose.extensions.compose.experimental.stack.animation/StackAnimator? = ..., kotlin/Boolean = ..., kotlin/Function1, com.arkivanov.decompose.extensions.compose.experimental.stack.animation/PredictiveBackParams?> = ...): com.arkivanov.decompose.extensions.compose.experimental.stack.animation/StackAnimation<#A, #B> // com.arkivanov.decompose.extensions.compose.experimental.stack.animation/stackAnimation|stackAnimation(com.arkivanov.decompose.extensions.compose.experimental.stack.animation.StackAnimator?;kotlin.Boolean;kotlin.Function1,com.arkivanov.decompose.extensions.compose.experimental.stack.animation.PredictiveBackParams?>){0§;1§}[0] final fun <#A: kotlin/Any, #B: kotlin/Any> com.arkivanov.decompose.extensions.compose.experimental.stack.animation/stackAnimation(kotlin/Boolean = ..., kotlin/Function1, com.arkivanov.decompose.extensions.compose.experimental.stack.animation/PredictiveBackParams?> = ..., kotlin/Function3, com.arkivanov.decompose/Child.Created<#A, #B>, com.arkivanov.decompose.extensions.compose.stack.animation/Direction, com.arkivanov.decompose.extensions.compose.experimental.stack.animation/StackAnimator?>): com.arkivanov.decompose.extensions.compose.experimental.stack.animation/StackAnimation<#A, #B> // com.arkivanov.decompose.extensions.compose.experimental.stack.animation/stackAnimation|stackAnimation(kotlin.Boolean;kotlin.Function1,com.arkivanov.decompose.extensions.compose.experimental.stack.animation.PredictiveBackParams?>;kotlin.Function3,com.arkivanov.decompose.Child.Created<0:0,0:1>,com.arkivanov.decompose.extensions.compose.stack.animation.Direction,com.arkivanov.decompose.extensions.compose.experimental.stack.animation.StackAnimator?>){0§;1§}[0] final fun <#A: kotlin/Any, #B: kotlin/Any> com.arkivanov.decompose.extensions.compose.experimental.stack/ChildStack(com.arkivanov.decompose.router.stack/ChildStack<#A, #B>, androidx.compose.ui/Modifier?, com.arkivanov.decompose.extensions.compose.experimental.stack.animation/StackAnimation<#A, #B>?, kotlin/Function4, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // com.arkivanov.decompose.extensions.compose.experimental.stack/ChildStack|ChildStack(com.arkivanov.decompose.router.stack.ChildStack<0:0,0:1>;androidx.compose.ui.Modifier?;com.arkivanov.decompose.extensions.compose.experimental.stack.animation.StackAnimation<0:0,0:1>?;kotlin.Function4,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){0§;1§}[0] diff --git a/extensions-compose-experimental/api/jvm/extensions-compose-experimental.api b/extensions-compose-experimental/api/jvm/extensions-compose-experimental.api index 1c3ec111..a49ea182 100644 --- a/extensions-compose-experimental/api/jvm/extensions-compose-experimental.api +++ b/extensions-compose-experimental/api/jvm/extensions-compose-experimental.api @@ -9,10 +9,10 @@ public final class com/arkivanov/decompose/extensions/compose/experimental/panel } public final class com/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsKt { - public static final fun ChildPanels (Lcom/arkivanov/decompose/router/panels/ChildPanels;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Landroidx/compose/ui/Modifier;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsLayout;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsAnimators;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)V - public static final fun ChildPanels (Lcom/arkivanov/decompose/router/panels/ChildPanels;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Landroidx/compose/ui/Modifier;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsLayout;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsAnimators;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)V - public static final fun ChildPanels (Lcom/arkivanov/decompose/value/Value;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Landroidx/compose/ui/Modifier;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsLayout;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsAnimators;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)V - public static final fun ChildPanels (Lcom/arkivanov/decompose/value/Value;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Landroidx/compose/ui/Modifier;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsLayout;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsAnimators;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)V + public static final fun ChildPanels (Lcom/arkivanov/decompose/router/panels/ChildPanels;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsLayout;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsAnimators;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)V + public static final fun ChildPanels (Lcom/arkivanov/decompose/router/panels/ChildPanels;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsLayout;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsAnimators;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)V + public static final fun ChildPanels (Lcom/arkivanov/decompose/value/Value;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsLayout;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsAnimators;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)V + public static final fun ChildPanels (Lcom/arkivanov/decompose/value/Value;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsLayout;Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsAnimators;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)V } public abstract interface class com/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsLayout { @@ -21,11 +21,23 @@ public abstract interface class com/arkivanov/decompose/extensions/compose/exper public final class com/arkivanov/decompose/extensions/compose/experimental/panels/ComposableSingletons$ChildPanelsKt { public static final field INSTANCE Lcom/arkivanov/decompose/extensions/compose/experimental/panels/ComposableSingletons$ChildPanelsKt; - public static field lambda-1 Lkotlin/jvm/functions/Function3; + public static field lambda-1 Lkotlin/jvm/functions/Function2; public static field lambda-2 Lkotlin/jvm/functions/Function3; + public static field lambda-3 Lkotlin/jvm/functions/Function2; + public static field lambda-4 Lkotlin/jvm/functions/Function3; + public static field lambda-5 Lkotlin/jvm/functions/Function2; + public static field lambda-6 Lkotlin/jvm/functions/Function2; + public static field lambda-7 Lkotlin/jvm/functions/Function2; + public static field lambda-8 Lkotlin/jvm/functions/Function2; public fun ()V - public final fun getLambda-1$extensions_compose_experimental ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-1$extensions_compose_experimental ()Lkotlin/jvm/functions/Function2; public final fun getLambda-2$extensions_compose_experimental ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-3$extensions_compose_experimental ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-4$extensions_compose_experimental ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-5$extensions_compose_experimental ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-6$extensions_compose_experimental ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-7$extensions_compose_experimental ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-8$extensions_compose_experimental ()Lkotlin/jvm/functions/Function2; } public final class com/arkivanov/decompose/extensions/compose/experimental/panels/HorizontalChildPanelsLayout : com/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsLayout { diff --git a/extensions-compose-experimental/src/commonMain/kotlin/com/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanels.kt b/extensions-compose-experimental/src/commonMain/kotlin/com/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanels.kt index b26523bf..63ee9029 100644 --- a/extensions-compose-experimental/src/commonMain/kotlin/com/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanels.kt +++ b/extensions-compose-experimental/src/commonMain/kotlin/com/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanels.kt @@ -29,11 +29,13 @@ import com.arkivanov.decompose.value.Value * [List-Details Layout](https://developer.android.com/develop/ui/compose/layouts/adaptive/list-detail). * * @param panels an observable [ChildPanels] to be displayed. - * @param mainChild a `Composable` function that displays the provided Main component. - * @param detailsChild a `Composable` function that displays the provided Details component. + * @param mainChild a `Composable` function that displays the provided [ChildPanels.main] component. + * @param detailsChild a `Composable` function that displays the provided [ChildPanels.details] component. * @param modifier a [Modifier] to applied to a wrapping container. * @param layout an implementation of [ChildPanelsLayout] responsible for laying out panels. * The default layout is [HorizontalChildPanelsLayout]. + * @param secondPanelPlaceholder a `Composable` function that displays a placeholder when there is nothing to + * display in the second panel. * @param animators a [ChildPanelsAnimators] containing panel animators for different * kinds of layouts. * @param predictiveBackParams a function that returns [PredictiveBackParams] for the specified [ChildPanels], @@ -48,6 +50,7 @@ fun ChildPanels( mainChild: @Composable (Child.Created) -> Unit, detailsChild: @Composable (Child.Created) -> Unit, modifier: Modifier = Modifier, + secondPanelPlaceholder: @Composable () -> Unit = {}, layout: ChildPanelsLayout = remember { HorizontalChildPanelsLayout() }, animators: ChildPanelsAnimators = remember { ChildPanelsAnimators() }, predictiveBackParams: (ChildPanels) -> PredictiveBackParams? = { null }, @@ -58,6 +61,7 @@ fun ChildPanels( detailsChild = detailsChild, extraChild = {}, modifier = modifier, + secondPanelPlaceholder = secondPanelPlaceholder, layout = layout, animators = animators, predictiveBackParams = predictiveBackParams, @@ -72,10 +76,12 @@ fun ChildPanels( * [List-Details Layout](https://developer.android.com/develop/ui/compose/layouts/adaptive/list-detail). * * @param panels a [ChildPanels] to be displayed. - * @param mainChild a `Composable` function that displays the provided Main component. - * @param detailsChild a `Composable` function that displays the provided Details component. + * @param mainChild a `Composable` function that displays the provided [ChildPanels.main] component. + * @param detailsChild a `Composable` function that displays the provided [ChildPanels.details] component. * @param modifier a [Modifier] to applied to a wrapping container. * @param layout an implementation of [ChildPanelsLayout] responsible for laying out panels. + * @param secondPanelPlaceholder a `Composable` function that displays a placeholder when there is nothing to + * display in the second panel. * @param animators a [ChildPanelsAnimators] containing panel animators for different * kinds of layouts. * @param predictiveBackParams a function that returns [PredictiveBackParams] for the specified [ChildPanels], @@ -90,6 +96,7 @@ fun ChildPanels( mainChild: @Composable (Child.Created) -> Unit, detailsChild: @Composable (Child.Created) -> Unit, modifier: Modifier = Modifier, + secondPanelPlaceholder: @Composable () -> Unit = {}, layout: ChildPanelsLayout = remember { HorizontalChildPanelsLayout() }, animators: ChildPanelsAnimators = remember { ChildPanelsAnimators() }, predictiveBackParams: (ChildPanels) -> PredictiveBackParams? = { null }, @@ -100,6 +107,7 @@ fun ChildPanels( detailsChild = detailsChild, extraChild = {}, modifier = modifier, + secondPanelPlaceholder = secondPanelPlaceholder, layout = layout, animators = animators, predictiveBackParams = predictiveBackParams, @@ -114,11 +122,15 @@ fun ChildPanels( * [List-Details Layout](https://developer.android.com/develop/ui/compose/layouts/adaptive/list-detail). * * @param panels an observable [ChildPanels] to be displayed. - * @param mainChild a `Composable` function that displays the provided Main component. - * @param detailsChild a `Composable` function that displays the provided Details component. - * @param extraChild a `Composable` function that displays the provided Extra component. + * @param mainChild a `Composable` function that displays the provided [ChildPanels.main] component. + * @param detailsChild a `Composable` function that displays the provided [ChildPanels.details] component. + * @param extraChild a `Composable` function that displays the provided [ChildPanels.extra] component. * @param modifier a [Modifier] to be applied to a wrapping container. * @param layout an implementation of [ChildPanelsLayout] responsible for laying out panels. + * @param secondPanelPlaceholder a `Composable` function that displays a placeholder when there is nothing to + * display in the second panel. + * @param thirdPanelPlaceholder a `Composable` function that displays a placeholder when there is nothing to + * display in the third panel. * @param animators a [ChildPanelsAnimators] containing panel animators for different * kinds of layouts. * @param predictiveBackParams a function that returns [PredictiveBackParams] for the specified [ChildPanels], @@ -134,6 +146,8 @@ fun ChildPanels( detailsChild: @Composable (Child.Created) -> Unit, extraChild: @Composable (Child.Created) -> Unit, modifier: Modifier = Modifier, + secondPanelPlaceholder: @Composable () -> Unit = {}, + thirdPanelPlaceholder: @Composable () -> Unit = {}, layout: ChildPanelsLayout = remember { HorizontalChildPanelsLayout() }, animators: ChildPanelsAnimators = remember { ChildPanelsAnimators() }, predictiveBackParams: (ChildPanels) -> PredictiveBackParams? = { null }, @@ -146,6 +160,8 @@ fun ChildPanels( detailsChild = detailsChild, extraChild = extraChild, modifier = modifier, + secondPanelPlaceholder = secondPanelPlaceholder, + thirdPanelPlaceholder = thirdPanelPlaceholder, layout = layout, animators = animators, predictiveBackParams = predictiveBackParams, @@ -160,11 +176,15 @@ fun ChildPanels( * [List-Details Layout](https://developer.android.com/develop/ui/compose/layouts/adaptive/list-detail). * * @param panels a [ChildPanels] to be displayed. - * @param mainChild a `Composable` function that displays the provided Main component. - * @param detailsChild a `Composable` function that displays the provided Details component. - * @param extraChild a `Composable` function that displays the provided Extra component. + * @param mainChild a `Composable` function that displays the provided [ChildPanels.main] component. + * @param detailsChild a `Composable` function that displays the provided [ChildPanels.details] component. + * @param extraChild a `Composable` function that displays the provided [ChildPanels.extra] component. * @param modifier a [Modifier] to applied to a wrapping container. * @param layout an implementation of [ChildPanelsLayout] responsible for laying out panels. + * @param secondPanelPlaceholder a `Composable` function that displays a placeholder when there is nothing to + * display in the second panel. + * @param thirdPanelPlaceholder a `Composable` function that displays a placeholder when there is nothing to + * display in the third panel. * @param animators a [ChildPanelsAnimators] containing panel animators for different * kinds of layouts. * @param predictiveBackParams a function that returns [PredictiveBackParams] for the specified [ChildPanels], @@ -180,6 +200,8 @@ fun ChildPanels( detailsChild: @Composable (Child.Created) -> Unit, extraChild: @Composable (Child.Created) -> Unit, modifier: Modifier = Modifier, + secondPanelPlaceholder: @Composable () -> Unit = {}, + thirdPanelPlaceholder: @Composable () -> Unit = {}, layout: ChildPanelsLayout = remember { HorizontalChildPanelsLayout() }, animators: ChildPanelsAnimators = remember { ChildPanelsAnimators() }, predictiveBackParams: (ChildPanels) -> PredictiveBackParams? = { null }, @@ -212,6 +234,7 @@ fun ChildPanels( animators = animators, predictiveBackParams = broadcastPredictiveBackParams, content = detailsChild, + placeholder = secondPanelPlaceholder, ) }, extra = { @@ -221,6 +244,7 @@ fun ChildPanels( animators = animators, predictiveBackParams = broadcastPredictiveBackParams, content = extraChild, + placeholder = thirdPanelPlaceholder, ) }, ) @@ -270,6 +294,7 @@ private fun DetailsPanel( animators: ChildPanelsAnimators, predictiveBackParams: Lazy, content: @Composable (Child.Created) -> Unit, + placeholder: @Composable () -> Unit, ) { ChildStack( stack = when (mode) { @@ -295,7 +320,7 @@ private fun DetailsPanel( ) { when (val child = it.instance) { is PanelChild.Panel -> content(child.child) - is PanelChild.Empty -> Unit // no-op + is PanelChild.Empty -> placeholder() } } } @@ -308,6 +333,7 @@ private fun ExtraPanel( animators: ChildPanelsAnimators, predictiveBackParams: Lazy, content: @Composable (Child.Created) -> Unit, + placeholder: @Composable () -> Unit, ) { ChildStack( stack = stackOfNotNull(if (mode == SINGLE) EmptyChild1 else EmptyChild2, extra), @@ -323,7 +349,7 @@ private fun ExtraPanel( ) { when (val child = it.instance) { is PanelChild.Panel -> content(child.child) - is PanelChild.Empty -> Unit // no-op + is PanelChild.Empty -> placeholder() } } } diff --git a/sample/shared/compose/src/commonMain/kotlin/com/arkivanov/sample/shared/multipane/MultiPaneContent.kt b/sample/shared/compose/src/commonMain/kotlin/com/arkivanov/sample/shared/multipane/MultiPaneContent.kt index 8d2fadb4..4867aa2d 100644 --- a/sample/shared/compose/src/commonMain/kotlin/com/arkivanov/sample/shared/multipane/MultiPaneContent.kt +++ b/sample/shared/compose/src/commonMain/kotlin/com/arkivanov/sample/shared/multipane/MultiPaneContent.kt @@ -1,13 +1,16 @@ package com.arkivanov.sample.shared.multipane +import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.BoxWithConstraints import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.material.MaterialTheme import androidx.compose.material.Surface +import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.getValue +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import com.arkivanov.decompose.ExperimentalDecomposeApi @@ -68,6 +71,13 @@ internal fun MultiPaneContent(component: MultiPaneComponent, modifier: Modifier dualWeights = Pair(first = 0.3F, second = 0.7F), tripleWeights = Triple(first = 0.3F, second = 0.4F, third = 0.3F), ), + secondPanelPlaceholder = { + Surface(modifier = Modifier.fillMaxSize(), color = MaterialTheme.colors.background) { + Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) { + Text(text = "Select an article", style = MaterialTheme.typography.subtitle1) + } + } + }, animators = ChildPanelsAnimators(single = fade() + scale(), dual = fade() to fade()), predictiveBackParams = { PredictiveBackParams(