t

router.browser

RoutingConfig

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]
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. RoutingConfig
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. sealed trait Action extends Product with Serializable

    Take some action as the result of processing a rule.

  2. abstract type Config <: ConfigLike
  3. 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.

  4. abstract type Control <: ControlLike
  5. 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.

  6. type Navigator = (To, Redirect) => Unit
  7. 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.

  8. 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!

  9. type Rules = (Info) => Action

    If your rule needs a Control for rendering a ReactNode, the Render action takes a Control => ReactNode so essentially you have, for rendering, a Info => Control => ReactNode.

    If your rule needs a Control for rendering a ReactNode, the Render action takes a Control => ReactNode so essentially you have, for rendering, a Info => Control => ReactNode. Note that action does not return an effectful action e.g. Action is not wrapped in a F context.

  10. 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

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def always(always: => Action): Rules

    Create a rule that ignores the Info inpt.

    Create a rule that ignores the Info inpt. Provides semantic gesture.

  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  9. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  10. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. val noop: () => Unit
  14. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  15. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  16. def performRoutingAction(routing: RoutingSource[Info, To], config: Config, to: To, method: Redirect): Unit

    Override to extend.

    Override to extend.

    Attributes
    protected
  17. 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.

  18. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  19. def toString(): String
    Definition Classes
    AnyRef → Any
  20. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  21. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  22. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated @deprecated
    Deprecated

    (Since version ) see corresponding Javadoc for more information.

Inherited from AnyRef

Inherited from Any

Ungrouped