pbeshai / use-query-params

React Hook for managing state in URL query parameters with easy serialization.

Home Page:https://pbeshai.github.io/use-query-params

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Transform useQueryParams keys + omit empty ArrayParams

nwbhatia opened this issue · comments

Hi, can someone help me understand if it's possible to do the following two things?

My current implementation is as follows:

  const [tags, setTags] = useQueryParams({
    0: withDefault(ArrayParam, []),
    1: withDefault(ArrayParam, []),
    2: withDefault(ArrayParam, []),
    3: withDefault(ArrayParam, []),
    4: withDefault(ArrayParam, []),
  });

Now, given an example, this encodes to:

?0=tagA&1=&2=tagB_tagC&3=&4=

However, say instead I would like to encode this object as:

?zero=tagA&two=tagB_tagC

Thus the two things I'm trying to do are:

  1. Apply a transformation to the key in the useQueryParams object upon encoding (0 -> "zero").
  2. Omit empty array params from the encoded string result.

without modifying the actual state definition (as I need numerical object keys and the empty lists for other implementation reasons).

Assuming this is possible, would really appreciate any advice or examples! 😃