mirror of
https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web.git
synced 2025-10-01 23:56:39 +08:00
32 lines
1021 B
TypeScript
32 lines
1021 B
TypeScript
import { useMemo } from "react";
|
|
import { useAccessStore, useAppConfig } from "../store";
|
|
import { collectModels, collectModelsWithDefaultModel } from "./model";
|
|
import { useSession } from "next-auth/react";
|
|
|
|
export function useAllModels() {
|
|
const accessStore = useAccessStore();
|
|
const configStore = useAppConfig();
|
|
const { data: session, status } = useSession();
|
|
|
|
const models = useMemo(() => {
|
|
return collectModelsWithDefaultModel(
|
|
configStore.models,
|
|
[configStore.customModels, accessStore.customModels].join(","),
|
|
accessStore.defaultModel,
|
|
).filter((m) => !configStore.dontUseModel.includes(m.name as any));
|
|
}, [
|
|
accessStore.customModels,
|
|
accessStore.defaultModel,
|
|
configStore.customModels,
|
|
configStore.models,
|
|
configStore.dontUseModel,
|
|
]);
|
|
|
|
// @ts-expect-error
|
|
if (status === "authenticated" && !session?.user?.isAdmin) {
|
|
// 过滤非管理员用户可使用的模型
|
|
return models.filter((m) => !m.name.endsWith("-all"));
|
|
}
|
|
return models;
|
|
}
|