Module

React.Router.Types

Package
purescript-cofree-react-router
Repository
coot/purescript-cofree-react-router

#RouterConfig Source

newtype RouterConfig

Constructors

Instances

#IndexRoute Source

data IndexRoute props arg

IndexRoute type The first parameter is the id property.

Constructors

#Route Source

data Route props arg

Route type The first parameter is an identifier.

Constructors

Instances

#RouteClass Source

type RouteClass props arg = RoutePropsClass props arg => ReactClass (props arg)

React component which will be mounted at matching node It recieves array of all matching routes.

#RouteProps Source

newtype RouteProps arg

RouteProps type keeps track route related data: id, currently matched argument and array of arguments - if the route is nested this will hold list of all parent arguments.

Constructors

Instances

#Router Source

type Router props arg = RoutePropsClass props arg => Cofree List (Tuple (Route props arg) (Maybe (IndexRoute props arg)))

Router

router :: Router RouteProps Unit
router =
  Route "main" (unit <$ lit "") mainClass :+
    (Route "home" (unit <$ lit "home") homeClass :+ Nil)
    : (Tuple (Route "user" (unit <$ (lit "user" *> int)) userClass) (Just $ IndexRoute "user-index" userIndexClass) :<
        (Route "book" (unit <$ (lit "books" *> int)) bookClass :+
          (Route "pages" (unit <$ lit "pages") pagesClass :+
            (Route "page" (unit <$ int) pageClass :+ Nil)
            : Nil)
          : Nil)
        : Nil)
    : (Route "user-settings" (unit <$ (lit "user" *> int *> lit "settings")) settingsClass :+ Nil)
    : Nil

#withoutIndex Source

withoutIndex :: forall arg props. RoutePropsClass props arg => Route props arg -> List (Cofree List (Tuple (Route props arg) (Maybe (IndexRoute props arg)))) -> Cofree List (Tuple (Route props arg) (Maybe (IndexRoute props arg)))

#(:+) Source

Operator alias for React.Router.Types.withoutIndex (right-associative / precedence 5)

:+ lets define routes without index route

#urlLens Source

urlLens :: forall arg props. RoutePropsClass props arg => Lens' (Route props arg) (Match arg)