mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-09 03:18:44 +00:00
Merge 4e9eaced55 into d260765652
This commit is contained in:
commit
f977fbabd9
3 changed files with 16 additions and 4 deletions
|
|
@ -1,6 +1,7 @@
|
|||
import { createContext, useContext, useEffect, useState } from "react";
|
||||
import { useQuery, type UseQueryOptions } from "@tanstack/react-query";
|
||||
import { apiClient } from "@/components/networking";
|
||||
import { AutoRouterAvailabilityDebounceContext } from "@/components/add_model/autoRouterAvailabilityDebounce";
|
||||
import { Popover, PopoverContent, PopoverTitle, PopoverTrigger } from "@/components/ui/popover";
|
||||
import type { components } from "@/lib/http/schema";
|
||||
|
||||
|
|
@ -20,11 +21,14 @@ export const AutoRouterAvailabilityContext = createContext<AvailabilityState>({
|
|||
|
||||
export const useAutoRouterAvailability = (accessToken: string, body: Request, enabled = true) => {
|
||||
const serialized = JSON.stringify(body.complexity_router_config ?? null);
|
||||
const [debounced, setDebounced] = useState(serialized);
|
||||
const [debouncedState, setDebounced] = useState(serialized);
|
||||
const debounceMs = useContext(AutoRouterAvailabilityDebounceContext);
|
||||
useEffect(() => {
|
||||
const timeout = setTimeout(() => setDebounced(serialized), 300);
|
||||
if (debounceMs === 0) return;
|
||||
const timeout = setTimeout(() => setDebounced(serialized), debounceMs);
|
||||
return () => clearTimeout(timeout);
|
||||
}, [serialized]);
|
||||
}, [serialized, debounceMs]);
|
||||
const debounced = debounceMs === 0 ? serialized : debouncedState;
|
||||
const options: UseQueryOptions<Availability> = {
|
||||
queryKey: ["autoRouterAvailability", accessToken, body.team_id, body.saved_model_id, debounced],
|
||||
queryFn: ({ signal }) =>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
import { createContext } from "react";
|
||||
|
||||
export const AutoRouterAvailabilityDebounceContext = createContext(300);
|
||||
|
|
@ -4,6 +4,7 @@ import type userEvent from "@testing-library/user-event";
|
|||
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
||||
import { NuqsTestingAdapter, OnUrlUpdateFunction } from "nuqs/adapters/testing";
|
||||
import { expect } from "vitest";
|
||||
import { AutoRouterAvailabilityDebounceContext } from "@/components/add_model/autoRouterAvailabilityDebounce";
|
||||
|
||||
// Create a client for testing
|
||||
export const testQueryClient = new QueryClient({
|
||||
|
|
@ -31,7 +32,11 @@ export const renderWithProviders = (ui: React.ReactElement, options?: RenderOpti
|
|||
const { searchParams, onUrlUpdate, ...renderOptions } = options ?? {};
|
||||
const Providers: React.FC<PropsWithChildren> = ({ children }) => (
|
||||
<NuqsTestingAdapter searchParams={searchParams} onUrlUpdate={onUrlUpdate} hasMemory>
|
||||
<QueryClientProvider client={testQueryClient}>{children}</QueryClientProvider>
|
||||
<QueryClientProvider client={testQueryClient}>
|
||||
<AutoRouterAvailabilityDebounceContext.Provider value={0}>
|
||||
{children}
|
||||
</AutoRouterAvailabilityDebounceContext.Provider>
|
||||
</QueryClientProvider>
|
||||
</NuqsTestingAdapter>
|
||||
);
|
||||
return render(ui, { wrapper: Providers, ...renderOptions });
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue