Skip to content

Latest commit

History

History
137 lines (94 loc) 路 5.22 KB

CHANGELOG.md

File metadata and controls

137 lines (94 loc) 路 5.22 KB

Change Log

0.3.0 - Mar 13, 2024

  • Fix an issue where a wrong host LifecycleOwner can be used (#62).
  • Rework internal implementation and refactor code (#62).
  • Handle startRoute changes properly (#62).

0.2.2 - Mar 9, 2024

Fixed

  • NavHost: handle the host LifecycleOwner properly to avoid memory leaks (#61).

0.2.1 - Mar 8, 2024

Fixed

  • Fix an issue where SaveableStateHolder would not be properly cleared when the destination is removed from the back stack after configuration changes on Android (#59).

0.2.0 - Mar 7, 2024

Update dependencies

Added

  • New: Add support for Kotlin/Wasm (wasmJs target) 馃帀.
  • New: Add LenientLifecycleRegistry, a LifecycleRegistry without the state checking, and has moveTo method to move to a specific state. This is a flexible version of LifecycleRegistry.
  • New: Add rememberWindowLifecycleOwner() for Desktop (JVM) platform.
  • New: Add SavedStateSupport.ProvideCompositionLocals and SavedStateSupport.ClearOnDispose for non-Android platforms.

Fixed

  • Fixed: an issue where LocalLifecycleOwner provided the wrong LifecycleOwner to the content of NavHost composable.

Sample

  • New: Add Solivagant Wasm Sample. You can open the web application by running the ./gradlew :samples:solivagant-wasm-sample:wasmJsBrowserDevelopmentRun Gradle task.

0.1.1 - Feb 25, 2024

Fixed

Example, docs and tests

0.1.0 - Feb 19, 2024

Update dependencies

Added

  • New: Add optional transitionAnimations parameter to NavHost @Composable functions. Animations can be overridden with NavHostDefaults.transitionAnimations or disabled with NavHostTransitionAnimations.noAnimations. Default animations are the same as default animations in AndroidX's NavHost.

Changed

  • Breaking: Add a Modifier parameter to content of NavDestination:

    @InternalNavigationApi
    public sealed interface ContentDestination<T : BaseRoute> : NavDestination {
      // other members...
      public val content: @Composable (route: T, modifier: Modifier) -> Unit
    }

    This change effects ScreenDestination and OverlayDestination as well. The modifier parameter should be passed to the content of NavDestination (a.k.a the root @Composable of the destination), for example:

    @Immutable
    @Parcelize
    data class DetailScreenRoute(val id: String) : NavRoute
    
    @JvmField
    val DetailScreenDestination = ScreenDestination<DetailScreenRoute> { route, modifier ->
      DetailScreen(modifier = modifier, route = route)
    }
    
    @Composable
    internal fun DetailScreen(modifier: Modifier, route: DetailScreenRoute) {
      Scaffold(
        modifier = modifier, // <--- Pass the modifier to the root @Composable
        topBar = { /* ... */ },
      ) {
        //* ... */
      }
    }

0.0.1 - Feb 7, 2024