trait RoutingConfig[Info <: AnyRef, To] extends AnyRef
A collection of routing config types so you can compose routing rules. The
rules do not prescribe a specific "Info" to "Action" matching model so you
are free to choose your own. You can use sparse.tech
[trail](https://github.com/sparsetech) or something like
[path-to-regexp](https://github.com/pillarjs/path-to-regexp). Also, look at
[You might not need React
Router](https://medium.freecodecamp.org/you-might-not-need-react-router-38673620f3d)
for ideas. That article uses an array of regexp to async functions vs a total
function descibed in Rules
below. Since the returned action is warpped in a
F
, any router using this trait will need to know how to run F
.
- Info
The request info pushed from the routing source.
- To
A value representing where to go to.
- Self Type
- RoutingConfig[Info, To]
- Alphabetic
- By Inheritance
- RoutingConfig
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- sealed trait Action extends Product with Serializable
Take some action as the result of processing a rule.
- abstract type Config <: ConfigLike
- trait ConfigLike extends AnyRef
Config holds the routing rules, an absolute function.
Config holds the routing rules, an absolute function. There is no deferral to a parent router but you can nest Router components with different configs. The RouterComponent is not dependent on a specific history management approach so it provides hooks to tie into the history mechanism of your choice using
RoutingSource
. - abstract type Control <: ControlLike
- trait ControlLike extends AnyRef
Callback arg used by components that hides router and navigation implementation details.
Callback arg used by components that hides router and navigation implementation details. Not async! When your action is render, you receive a Control as a parameter that you pass to your child component so they can perform navigation actions, such as render a link element. You can curry the navigate function so that components can be fed a simpler To => Unit callback.
- type Navigator = (To, Redirect) => Unit
- case class RedirectTo(to: To, method: Redirect, effect: () => Unit = noop) extends Action with Product with Serializable
Go to another page with a specific method to get there.
- case class Render(run: (Control) => ReactNode, effect: () => Unit = noop) extends Action with Product with Serializable
Render a node allowing that node to use Controls to create "links".
Render a node allowing that node to use Controls to create "links". Can render to null!
- type Rules = (Info) => Action
If your rule needs a Control for rendering a
ReactNode
, theRender
action takes aControl => ReactNode
so essentially you have, for rendering, aInfo => Control => ReactNode
.If your rule needs a Control for rendering a
ReactNode
, theRender
action takes aControl => ReactNode
so essentially you have, for rendering, aInfo => Control => ReactNode
. Note that action does not return an effectful action e.g. Action is not wrapped in a F context. - case class rule(run: (Info) => Option[Action]) extends Product with Serializable
Small rules DSL.
Small rules DSL. Create a rule that can return an optional action.
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def always(always: => Action): Rules
Create a rule that ignores the Info inpt.
Create a rule that ignores the Info inpt. Provides semantic gesture.
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- val noop: () => Unit
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def performRoutingAction(routing: RoutingSource[Info, To], config: Config, to: To, method: Redirect): Unit
Override to extend.
Override to extend.
- Attributes
- protected
- def rules(run: (Info) => Action): Rules
Create rules, you don't need to use this.
Create rules, you don't need to use this. Provides semantic gesture.
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])