providers table, create, and edit first pass

This commit is contained in:
miloschwartz
2026-08-03 10:36:42 -04:00
parent 1c9ede9729
commit 0d9a01a066
16 changed files with 2141 additions and 0 deletions
+47
View File
@@ -0,0 +1,47 @@
"use client";
import AiProviderContext from "@app/contexts/aiProviderContext";
import type { AiProviderPublic } from "@server/routers/aiProvider/types";
import { useTranslations } from "next-intl";
import { useEffect, useState } from "react";
type AiProviderProviderProps = {
children: React.ReactNode;
provider: AiProviderPublic;
};
export function AiProviderProvider({
children,
provider: serverProvider
}: AiProviderProviderProps) {
const [provider, setProvider] = useState<AiProviderPublic>(serverProvider);
const t = useTranslations();
useEffect(() => {
setProvider(serverProvider);
}, [serverProvider]);
const updateProvider = (updated: Partial<AiProviderPublic>) => {
if (!provider) {
throw new Error(t("aiProviderErrorNoUpdate"));
}
setProvider((prev) => {
if (!prev) {
return prev;
}
return {
...prev,
...updated
};
});
};
return (
<AiProviderContext.Provider value={{ provider, updateProvider }}>
{children}
</AiProviderContext.Provider>
);
}
export default AiProviderProvider;