mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-08 22:21:35 +00:00
* fix(ui): keep Virtual Keys list state in the URL so it survives leaving the page The search term, sort, pagination and drawer filters lived in component state, so navigating away from Virtual Keys and back reset the table to an unfiltered first page. Move them into query state alongside the existing ?key= deep link, which also makes a filtered view shareable. * fix(ui): namespace the Virtual Keys filter params and bound page inputs The unprefixed team_id filter hijacked the /api-keys create-key deep link, which already takes team_id as a prefill, so ?create=true&team_id=X silently filtered the list underneath the modal. Prefix the four drawer filters. Now that page and page_size come from the address bar, clamp them to what /key/list accepts instead of forwarding 0, negatives or an int64-overflowing page straight through, and trim filter values arriving from a URL the same way the drawer already trims them. * fix(ui): fall back to a sortable column when the URL names an unknown one A hand-edited or stale sort_by reached /key/list, which 400s it, leaving the Virtual Keys page on its loading skeleton with no error. Validate it against the fields the table's own headers can produce, and clear sort_by rather than blanking it when a sort is reset so the URL stays clean. Also replaces a default-state URL assertion that ran before any query-state write could land, so it could not fail for the regression it named. * fix(ui): use TanStack's functionalUpdate instead of a hand-rolled updater resolver The local helper narrowed typeof updater === "function" against an unconstrained T, which TypeScript cannot do because T itself may be a function type, so next build failed to type check. table-core already exports the same helper. |
||
|---|---|---|
| .. | ||
| public | ||
| scripts | ||
| src | ||
| tests | ||
| .env.development | ||
| .env.production | ||
| .npmrc | ||
| .nvmrc | ||
| .prettierignore | ||
| .prettierrc | ||
| build_release_ui.sh | ||
| build_ui.sh | ||
| build_ui_custom_path.sh | ||
| CLAUDE.md | ||
| components.json | ||
| eslint-budgets.json | ||
| eslint-suppressions.json | ||
| eslint.config.mjs | ||
| knip.json | ||
| next.config.mjs | ||
| package-lock.json | ||
| package.json | ||
| postcss.config.js | ||
| README.md | ||
| tsconfig.json | ||
| tsconfig.tsbuildinfo | ||
| vitest.config.ts | ||
This is a Next.js project bootstrapped with create-next-app.
Getting Started
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Open http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Inter, a custom Google Font.
Learn More
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
Deploy on Vercel
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.