refactor: 统一管理页面布局 — FilterToolbar + usePageSearchParams + parseListParams
This commit is contained in:
@@ -37,16 +37,22 @@ export async function fetchModel(id: string): Promise<Model> {
|
||||
}
|
||||
|
||||
export async function fetchModelList(params: {
|
||||
capabilities?: string;
|
||||
keyword?: string;
|
||||
page?: number;
|
||||
pageSize?: number;
|
||||
providerId?: string;
|
||||
sortBy?: string;
|
||||
sortOrder?: string;
|
||||
}): Promise<ModelListResponse> {
|
||||
const searchParams = new URLSearchParams();
|
||||
if (params.page) searchParams.set("page", String(params.page));
|
||||
if (params.pageSize) searchParams.set("pageSize", String(params.pageSize));
|
||||
if (params.keyword) searchParams.set("keyword", params.keyword);
|
||||
if (params.providerId) searchParams.set("providerId", params.providerId);
|
||||
if (params.sortBy) searchParams.set("sortBy", params.sortBy);
|
||||
if (params.sortOrder) searchParams.set("sortOrder", params.sortOrder);
|
||||
if (params.capabilities) searchParams.set("capabilities", params.capabilities);
|
||||
const qs = searchParams.toString();
|
||||
const url = `/api/models${qs ? `?${qs}` : ""}`;
|
||||
const response = await fetch(url);
|
||||
@@ -110,7 +116,15 @@ export function useModel(id: string) {
|
||||
});
|
||||
}
|
||||
|
||||
export function useModelList(params: { keyword?: string; page?: number; pageSize?: number; providerId?: string }) {
|
||||
export function useModelList(params: {
|
||||
capabilities?: string;
|
||||
keyword?: string;
|
||||
page?: number;
|
||||
pageSize?: number;
|
||||
providerId?: string;
|
||||
sortBy?: string;
|
||||
sortOrder?: string;
|
||||
}) {
|
||||
return useQuery({
|
||||
queryFn: () => fetchModelList(params),
|
||||
queryKey: [...MODELS_KEY, "list", params],
|
||||
|
||||
Reference in New Issue
Block a user