@@ -239,6 +248,7 @@ export function AddModelModal({ providers, creators }: Props) {
required
type="number"
name="credit_cost"
+ step="1"
className="w-full rounded-md border border-input bg-background px-3 py-2 text-sm transition-colors placeholder:text-muted-foreground focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary/20"
placeholder="5"
min={0}
@@ -269,17 +279,32 @@ export function AddModelModal({ providers, creators }: Props) {
+ {error && (
+
+ {error}
+
+ )}
+
-
diff --git a/autogpt_platform/frontend/src/app/(platform)/admin/llms/components/AddProviderModal.tsx b/autogpt_platform/frontend/src/app/(platform)/admin/llms/components/AddProviderModal.tsx
index cb664b298d..4e771b1d81 100644
--- a/autogpt_platform/frontend/src/app/(platform)/admin/llms/components/AddProviderModal.tsx
+++ b/autogpt_platform/frontend/src/app/(platform)/admin/llms/components/AddProviderModal.tsx
@@ -8,8 +8,26 @@ import { useRouter } from "next/navigation";
export function AddProviderModal() {
const [open, setOpen] = useState(false);
+ const [isSubmitting, setIsSubmitting] = useState(false);
+ const [error, setError] = useState
(null);
const router = useRouter();
+ async function handleSubmit(formData: FormData) {
+ setIsSubmitting(true);
+ setError(null);
+ try {
+ await createLlmProviderAction(formData);
+ setOpen(false);
+ router.refresh();
+ } catch (err) {
+ setError(
+ err instanceof Error ? err.message : "Failed to create provider",
+ );
+ } finally {
+ setIsSubmitting(false);
+ }
+ }
+
return (
-