47ng / 47ng/nuqs

[bug] Tanstack Router: `parseAsTimestamp` parses defalt value as `1970-01-01T00:00:02.025Z` when reloaded or opened with searchParams

Aberta
#1,177 3 comentários 0 reações 0 responsáveis Ver no GitHub
adapters/tanstack-router bug
Linguagem predominante
TypeScript
Estrelas
10.8k
Forks
294
Merge médio
1d 16h
PRs com merge (30d)
21

Descrição

## Context

What's your version of `nuqs`?

```
"nuqs": "^2.7.2"
```

What framework are you using?

- ✅ Other (Tanstack Router)

Which version of your framework are you using?

```
"@tanstack/react-router": "^1.132.0",
"react": "^19.0.0",
"react-dom": "^19.0.0"
```

## Description

**BUG**: When query states is changed to `?from=1760207400000&to=1760812199999` and I reload the page or open the same URL in different tab, it fails to parse the value and changes the url to `?from="1970-01-01T00%3A00%3A02.025Z"&to="1970-01-01T00%3A00%3A02.025Z"`

**EXPECTED**: URL to be same and parse the timestamps correctly.

However this only happens when I add `validateSearch` in route definition
```ts
export const Route = createFileRoute("/")({
component: App,
// THE BUG ONLY HAPPENS WHEN USING validateSearch IF I REMOVE `validateSearch` IT WORKS AS EXPECTED
validateSearch: createStandardSchemaV1(searchParams, {
partialOutput: true,
}),
});
```

## Reproduction

Deployed Version: https://nuqs-repro.pages.dev/
GitHub Repo: https://github.com/mdhruvil/nuqs-repro

- Visit "/"
- Current Week is selected by default, see URL and values displayed on page
- Click on "Set to Previous Week"
- It changes url to select previous week (works as expected)
- Refresh the page or copy url and open in new tab
- It changes url to `?from="1970-01-01T00%3A00%3A02.025Z"&to="1970-01-01T00%3A00%3A02.025Z"` instead of parsing the actual timestamp values

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

O bug ocorre ao usar `validateSearch` com `createStandardSchemaV1` em uma definição de rota do Tanstack Router. Examine o parser `parseAsTimestamp` no código-fonte do nuqs, provavelmente no módulo de parsers. O repositório de reprodução mostra o problema: os timestamps são analisados incorretamente como uma data padrão ao recarregar a página. Verifique como o parser lida com timestamps numéricos em comparação com a serialização em string durante a hidratação. Execute a reprodução fornecida para ver a mutação da URL.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Domínio
frontend
Tipo de issue
Bug
Dificuldade
3/5
Tempo estimado
1-2 dias
Status de atividade
Estagnada
Clareza
Claramente especificada
Facilidade para iniciantes
55/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.