5.0.2 • Published 15 days ago

@scaleway/use-query-params v5.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
15 days ago

@scaleway/use-query-params

A tiny hooks to handle use-query-params

Install

$ pnpm add @scaleway/use-query-params react-router-dom

Usage

import React from 'react'
import { render } from 'react-dom'
import { BrowserRouter as Router } from 'react-router-dom'
import useQueryParams from '@scaleway/use-query-params'

const App = () => {
  const { queryParams, setQueryParams } = useQueryParams()
  const { user } = queryParams
  const setUser = () => setQueryParams({ user: 'John' })
  // ?user=John

  return (
    <>
      <h1>User: {user}</h1>
      <button onClick={setUser}>Set User John</button>
    </>
  )
}

render(
  <Router>
    <App />
  </Router>,
  document.getElementById('react-root'),
)

Set query params

Merge current query params with the new ones passed in parameters.

// In this exemple we assume that we have an URL that include : `?company=Scaleway".
import React from 'react'
import useQueryParams from '@scaleway/use-query-params'

const Component = () => {
  const { queryParams, setQueryParams } = useQueryParams()
  const { user, company } = queryParams // user will be undefined and company will be "Scaleway"
  const setUser = () => setQueryParams({ user: 'John' }) // user will be "John" and company will be "Scaleway"
  // ?company=Scaleway&user=John

  return (
    <>
      <h1>User: {user}</h1>
      <h1>Company: {company}</h1>
      <button onClick={setUser}>Set User John</button>
    </>
  )
}

Replace query params

Erase current query params and replace by the new ones passed in parameters.

// In this exemple we assume that we have an URL that include : `?company=Scaleway".
import React from 'react'
import useQueryParams from '@scaleway/use-query-params'

const Component = () => {
  const { queryParams, replaceQueryParams } = useQueryParams()
  const { user, company } = queryParams // user will be undefined and company will be "Scaleway"
  const setUser = () => replaceQueryParams({ user: 'John' }) // user will be "John" and company will be undefined
  // ?user=John

  return (
    <>
      <h1>User: {user}</h1>
      <h1>Company: {company}</h1>
      <button onClick={setUser}>Set User John</button>
    </>
  )
}

Push onto the stack instead of replacing

To avoid mutating history

// In this exemple we assume that we have an URL that include : `?company=Scaleway".
import React from 'react'
import useQueryParams from '@scaleway/use-query-params'

const Component = () => {
  const { queryParams, replaceQueryParams } = useQueryParams()
  const { user, company } = queryParams // user will be undefined and company will be "Scaleway"
  const setUser = () => replaceQueryParams({ user: 'John' }, { push: true }) // user will be "John" and company will be undefined
  // ?user=John

  return (
    <>
      <h1>User: {user}</h1>
      <h1>Company: {company}</h1>
      <button onClick={setUser}>Set User John</button>
    </>
  )
}
5.0.2

15 days ago

5.0.1

2 months ago

5.0.0

2 months ago

4.0.23

3 months ago

4.0.22

4 months ago

4.0.21

4 months ago

4.0.20

5 months ago

4.0.19

5 months ago

4.0.16

8 months ago

4.0.15

8 months ago

4.0.18

6 months ago

4.0.17

7 months ago

4.0.14

10 months ago

4.0.13

10 months ago

4.0.12

10 months ago

4.0.10

11 months ago

4.0.11

11 months ago

4.0.9

1 year ago

4.0.7

1 year ago

4.0.6

1 year ago

4.0.8

1 year ago

4.0.5

1 year ago

4.0.4

1 year ago

4.0.3

1 year ago

3.3.9

1 year ago

3.3.8

1 year ago

3.3.7

1 year ago

3.3.6

1 year ago

4.0.1

1 year ago

4.0.0

1 year ago

4.0.2

1 year ago

3.3.10

1 year ago

3.3.11

1 year ago

3.3.5

1 year ago

3.3.4

1 year ago

3.3.3

2 years ago

3.3.2

2 years ago

2.1.6

2 years ago

2.1.5

2 years ago

2.1.7

2 years ago

3.3.1

2 years ago

3.3.0

2 years ago

3.2.1

2 years ago

3.2.0

2 years ago

3.1.5

2 years ago

2.1.4

2 years ago

3.1.3

2 years ago

3.1.2

2 years ago

3.1.4

2 years ago

3.0.9

2 years ago

3.1.1

2 years ago

3.1.0

2 years ago

3.0.4

2 years ago

3.0.7

2 years ago

3.0.6

2 years ago

3.0.5

2 years ago

3.0.3

2 years ago

3.0.2

2 years ago

3.0.1

2 years ago

3.0.0

2 years ago

2.1.2

3 years ago

2.1.1

3 years ago

2.1.3

3 years ago

2.1.0

3 years ago

2.0.0

3 years ago

1.3.2

3 years ago

1.3.1

3 years ago

1.3.0

3 years ago

1.2.3

3 years ago

1.2.2

3 years ago

1.2.1

3 years ago

1.2.0

3 years ago

1.1.5

3 years ago

1.1.4

3 years ago

1.1.3

3 years ago

1.1.2

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago