Skip to content

Commit

Permalink
add more type safety to register* APIs
Browse files Browse the repository at this point in the history
  • Loading branch information
chandu0101 committed May 1, 2017
1 parent a4154b5 commit 984eb0f
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 10 deletions.
2 changes: 1 addition & 1 deletion build.sbt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name := "navigation"

version := "2017.4.0-SNAPSHOT"
//version := "2017.4.0-SNAPSHOT"

enablePlugins(ScalaJSPlugin)

Expand Down
12 changes: 6 additions & 6 deletions src/main/scala/sri/navigation/navigators/package.scala
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,12 @@ package object navigators {
}

@inline
def StackNavigator(routes: (String, NavigationScreenRouteConfig)*) =
def StackNavigator(routes: (String, NavigationStackScreenRouteConfig)*) =
StackNavigatorJS(js.Dictionary(routes: _*))

@inline
def StackNavigator(stackConfig: StackNavigatorConfig,
routes: (String, NavigationScreenRouteConfig)*) =
routes: (String, NavigationStackScreenRouteConfig)*) =
StackNavigatorJS(js.Dictionary(routes: _*), stackConfig)

@ScalaJSDefined
Expand Down Expand Up @@ -93,12 +93,12 @@ package object navigators {
}

@inline
def TabNavigator(routes: (String, NavigationScreenRouteConfig)*) =
def TabNavigator(routes: (String, NavigationTabScreenRouteConfig)*) =
TabNavigatorJS(js.Dictionary(routes: _*))

@inline
def TabNavigator(tabConfig: TabNavigatorConfig,
routes: (String, NavigationScreenRouteConfig)*) =
routes: (String, NavigationTabScreenRouteConfig)*) =
TabNavigatorJS(js.Dictionary(routes: _*), tabConfig)

@ScalaJSDefined
Expand Down Expand Up @@ -138,11 +138,11 @@ package object navigators {
}

@inline
def DrawerNavigator(routes: (String, NavigationScreenRouteConfig)*) =
def DrawerNavigator(routes: (String, NavigationDrawerScreenRouteConfig)*) =
DrawerNavigatorJS(js.Dictionary(routes: _*))

@inline
def DrawerNavigator(tabConfig: DrawerNavigatorConfig,
routes: (String, NavigationScreenRouteConfig)*) =
routes: (String, NavigationDrawerScreenRouteConfig)*) =
DrawerNavigatorJS(js.Dictionary(routes: _*), tabConfig)
}
33 changes: 30 additions & 3 deletions src/main/scala/sri/navigation/package.scala
Original file line number Diff line number Diff line change
Expand Up @@ -113,16 +113,43 @@ package object navigation {
}

@inline
def registerNavigator(
def registerNavigatorAsDrawerScreen(
name: String,
navigator: NavigationNavigatorConstructor,
path: OptionalParam[String] = OptDefault,
navigationOptions: OptionalParam[NavigationScreenOptions] = OptDefault)
: (String, NavigationRouteConfig) =
navigationOptions: OptionalParam[NavigationDrawerScreenOptions] =
OptDefault): (String, NavigationDrawerScreenRouteConfig) =
registerRoute(name,
comp = navigator,
path = path,
navigationOptions = navigationOptions)
.asInstanceOf[(String, NavigationDrawerScreenRouteConfig)]

@inline
def registerNavigatorAsTabScreen(
name: String,
navigator: NavigationNavigatorConstructor,
path: OptionalParam[String] = OptDefault,
navigationOptions: OptionalParam[NavigationTabScreenOptions] = OptDefault)
: (String, NavigationTabScreenRouteConfig) =
registerRoute(name,
comp = navigator,
path = path,
navigationOptions = navigationOptions)
.asInstanceOf[(String, NavigationTabScreenRouteConfig)]

@inline
def registerNavigatorAsStackScreen(
name: String,
navigator: NavigationNavigatorConstructor,
path: OptionalParam[String] = OptDefault,
navigationOptions: OptionalParam[NavigationDrawerScreenOptions] =
OptDefault): (String, NavigationStackScreenRouteConfig) =
registerRoute(name,
comp = navigator,
path = path,
navigationOptions = navigationOptions)
.asInstanceOf[(String, NavigationStackScreenRouteConfig)]

@inline
private def registerRoute[T <: NavigationScreenOptions, C <: ScreenClass](
Expand Down

0 comments on commit 984eb0f

Please sign in to comment.