Skip to content

Custom encoder/decoder doesn't return the correct default value #593

Description

@vrubliuk

W/o custom encoder/decoder:

  const {
    state: { globalFilter }
  } = useTableSearchParams(router, {
    defaultValues: { globalFilter: "hello world" },
  });

console.log(globalFilter); // "hello world"

W/ custom encoder/decoder:

  const {
    state: { globalFilter }
  } = useTableSearchParams(router, {
    defaultValues: { globalFilter: "hello world" },
    encoders: {
      globalFilter: (value) => ({
        globalFilter: JSON.stringify(value),
      }),
    },
    decoders: {
      globalFilter: (query) => {
        return query["globalFilter"] ? JSON.parse(query["globalFilter"] as string) : (query["globalFilter"] ?? "");
      },
    },
  });

console.log(globalFilter);
// Expected result: "hello world"
// Actual result: "" - empty string

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions