Tab state now syncs with URL — можно поделиться ссылкой на конкретный таб (например /site-finder?tab=market для тренда цен по последнему cad). - useRouter + useSearchParams (Next 15 app router, client-component) - router.replace (не push) чтобы tab switches не засоряли history - useEffect on searchParams → back/forward работают - overview = default, не пишется в URL (clean) - Type-guard isTabId(): только valid values из URL переключают state |
||
|---|---|---|
| .. | ||
| public | ||
| src | ||
| .dockerignore | ||
| .env.example | ||
| .eslintrc.json | ||
| Dockerfile | ||
| next-env.d.ts | ||
| next.config.ts | ||
| package-lock.json | ||
| package.json | ||
| tsconfig.json | ||