Code Monkey home page Code Monkey logo

next-typed-search-params's Introduction

NextJS typed search params

Discover Next.js typesafe and shallow search params for your project.

Features

  • NextJS 13/14+ App router
  • Typesafe, supports type hints
  • Shallow routing support
  • Stateful
  • Supports customizable search string format, see: query-string
    • foo[]=1&foo[]=2&foo[]=3
    • foo[0]=1&foo[1]=2&foo[3]=3
    • foo=1,2,3
    • foo=1|2|3
    • foo[]=1|2|3&bar=fluffy&baz[]=4
    • foo=1&foo=2&foo=3
    • etc

What's inside

Get started

Installation

npm install next-typed-search-params
yarn add next-typed-search-params

Initializing

At top client component:

'use client'
import { configure } from "next-typed-search-params";

configure({ arrayFormat: "bracket-separator" })

Options

Usage

import { useSearchParams } from "next-typed-search-params";

export const Component = ({}: PropsType) => {
    const [searchParams, setSearchParams] = useSearchParams((z) => ({
        productId: z.coerce.number().array(),
        value: z.coerce.number().default(0),
        date: z.coerce.string().optional()
    }));

    const handleClick = () => {
        setSearchParams({
            ...searchParams,
            value: searchParams.value + 1
        })
    }

    return (<button onClick={handleClick}>click {searchParams.value}</button>);
};

Error handling

If the Zod parse fails, the search parameter will be set as undefined.

next-typed-search-params's People

Contributors

izica avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.