🚨 Shai-Hulud Strikes Again:834 Packages Compromised.Technical Analysis →
Socket
Book a DemoInstallSign in
Socket

mobx-react-router-utils

Package Overview
Dependencies
Maintainers
2
Versions
63
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mobx-react-router-utils

Routing utils to use with RouterStore (from `mobx-react-router`) on your MobX stores.

latest
Source
npmnpm
Version
4.2.0
Version published
Maintainers
2
Created
Source

MobX React Router Utils

Routing utils to use with RouterStore (from mobx-react-router) on your MobX stores.

Install it

yarn add mobx-react-router-utils

Use it

import { computedRouteParam, setRoutingStore } from 'mobx-react-router-utils'

// Set the reference to your routing store before any usage
// You ony need to this once in your application 
setRoutingStore(routingStore)

const routes = {
  search: '/search',
  citySearch: '/cities/:city'
}

class DemoSearchStore {
    city = computedRouteParam('city', {
      patterns: [routes.citySearch],
    })
    
    // this one will come from the query string
    checkIn = computedRouteParam('checkIn', {
      // Define the route patterns for which this one is valid
      patterns: [routes.search, routes.citySearch],
      
      // Set a parsing fn to transform from string
      parse: _parseDate,
      
      // Set a formatting fn to transform into string
      format: _formatDate, 

      // It'll return the default value in case it's 
      // not present on the route or with an empty value
      defaultValue: 'temecula'
    })
    
    checkOut = computedRouteParam('checkOut', {
      patterns: [routes.search, routes.citySearch],
      parse: _parseDate,
      format: _formatDate,
    })
    
    setCity = (city: Maybe<string>) => {
      // For updating the current route, push() and replace() methods are available:
      // - push: will add the new url to the browsing history
      // - replace: will replace the current url on the browsing history
      this.city.push(city, {
        // enforce a route pattern if needed, otherwise, it will use the 
        // current location (if matches the config) or first pattern available
        pattern: !city && routes.search,
        
        // cleanup all other params (default: false)
        cleanParams: true,  
              
        // OR cleanup only selected params
        cleanParams: [   
          this.checkIn, 
          this.checkOut
        ]
      })
    }
    
    setPeriod = (checkIn: Maybe<Date>, checkOut: Maybe<Date>) => {
      this.checkIn.push(checkIn)
      this.checkOut.replace(checkOut)
    }

    // ...
}

FAQs

Package last updated on 25 Apr 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts