allow no provider on a resource

This commit is contained in:
miloschwartz
2026-08-05 15:43:42 -04:00
parent bcf6b86b84
commit 790daba796
11 changed files with 25 additions and 86 deletions
@@ -58,11 +58,9 @@ export default function PrivateResourceProvidersPage() {
const formSchema = useMemo(
() =>
z.object({
providerIds: z
.array(z.number().int().positive())
.min(1, t("aiResourceProvidersRequired"))
providerIds: z.array(z.number().int().positive())
}),
[t]
[]
);
type FormValues = z.infer<typeof formSchema>;
@@ -58,11 +58,9 @@ export default function PublicResourceProvidersPage() {
const formSchema = useMemo(
() =>
z.object({
providerIds: z
.array(z.number().int().positive())
.min(1, t("aiResourceProvidersRequired"))
providerIds: z.array(z.number().int().positive())
}),
[t]
[]
);
type FormValues = z.infer<typeof formSchema>;
@@ -252,7 +252,6 @@ export default function Page() {
const [selectedProviders, setSelectedProviders] = useState<
SelectedAiProvider[]
>([]);
const [showProvidersError, setShowProvidersError] = useState(false);
// SSH-specific state
const [sshServerMode, setSshServerMode] = useState<"standard" | "native">(
@@ -355,9 +354,6 @@ export default function Page() {
if (!availableTypes.includes(resourceType)) {
setResourceType("http");
}
if (resourceType !== "inference") {
setShowProvidersError(false);
}
}, [availableTypes, resourceType]);
const baseResourceFormSchema = useMemo(
@@ -1440,14 +1436,6 @@ export default function Page() {
setSelectedProviders(
providers
);
if (
providers.length >
0
) {
setShowProvidersError(
false
);
}
}}
/>
<p className="text-sm text-muted-foreground">
@@ -1455,13 +1443,6 @@ export default function Page() {
"aiResourceProvidersHelp"
)}
</p>
{showProvidersError && (
<p className="text-sm text-destructive">
{t(
"aiResourceProvidersRequired"
)}
</p>
)}
</div>
</SettingsFormCell>
</SettingsFormGrid>
@@ -1493,16 +1474,6 @@ export default function Page() {
const tcpValid = !isHttpResource
? await tcpUdpForm.trigger()
: true;
const providersValid =
resourceType !== "inference" ||
selectedProviders.length > 0;
if (
resourceType === "inference" &&
!providersValid
) {
setShowProvidersError(true);
}
if (
resourceType === "ssh" &&
@@ -1527,8 +1498,7 @@ export default function Page() {
baseValid &&
domainValid &&
tcpValid &&
bgValid &&
providersValid
bgValid
) {
onSubmit();
}
-14
View File
@@ -467,13 +467,6 @@ export function createCreateFormSchema(t: TranslateFn) {
path: ["alias"]
});
}
if (!data.providerIds || data.providerIds.length < 1) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: t("aiResourceProvidersRequired"),
path: ["providerIds"]
});
}
}
if (
data.mode !== "ssh" &&
@@ -639,13 +632,6 @@ export function createInferenceFormSchema(t: TranslateFn) {
path: ["alias"]
});
}
if (!data.providerIds || data.providerIds.length < 1) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: t("aiResourceProvidersRequired"),
path: ["providerIds"]
});
}
});
}