mirror of
https://github.com/fosrl/pangolin.git
synced 2026-08-14 08:19:51 +02:00
always require upstream url
This commit is contained in:
@@ -41,7 +41,6 @@ import {
|
||||
createAiProviderFormSchema,
|
||||
showsUpstreamUrlField,
|
||||
toAiProviderNetworkPayload,
|
||||
upstreamUrlRequired,
|
||||
type AiProviderFormValues
|
||||
} from "@app/lib/aiProviderFormSchema";
|
||||
import { aiProviderQueries } from "@app/lib/queries";
|
||||
@@ -91,7 +90,6 @@ export default function AiProviderNetworkPage() {
|
||||
const providerType = form.watch("type");
|
||||
const routingMode = form.watch("routingMode");
|
||||
const showUpstream = showsUpstreamUrlField(providerType, routingMode);
|
||||
const requireUpstream = upstreamUrlRequired(providerType, routingMode);
|
||||
const showRoutingMode = providerType === "custom";
|
||||
const isTargetModeSelected = routingMode === "target";
|
||||
const isTargetModeSaved =
|
||||
@@ -218,22 +216,9 @@ export default function AiProviderNetworkPage() {
|
||||
field.value ??
|
||||
"url"
|
||||
}
|
||||
onChange={(
|
||||
value
|
||||
) => {
|
||||
field.onChange(
|
||||
value
|
||||
);
|
||||
if (
|
||||
value ===
|
||||
"target"
|
||||
) {
|
||||
form.setValue(
|
||||
"upstreamUrl",
|
||||
""
|
||||
);
|
||||
}
|
||||
}}
|
||||
onChange={
|
||||
field.onChange
|
||||
}
|
||||
/>
|
||||
</FormControl>
|
||||
<FormMessage />
|
||||
@@ -284,14 +269,10 @@ export default function AiProviderNetworkPage() {
|
||||
{t(
|
||||
"aiProviderUpstreamUrl"
|
||||
)}
|
||||
{requireUpstream
|
||||
? ""
|
||||
: " (optional)"}
|
||||
</FormLabel>
|
||||
<FormControl>
|
||||
<Input
|
||||
autoComplete="off"
|
||||
placeholder="https://"
|
||||
value={
|
||||
field.value ??
|
||||
""
|
||||
@@ -302,13 +283,9 @@ export default function AiProviderNetworkPage() {
|
||||
/>
|
||||
</FormControl>
|
||||
<FormDescription>
|
||||
{requireUpstream
|
||||
? t(
|
||||
"aiProviderUpstreamUrlDescription"
|
||||
)
|
||||
: t(
|
||||
"aiProviderUpstreamUrlOptionalDescription"
|
||||
)}
|
||||
{t(
|
||||
"aiProviderUpstreamUrlDescription"
|
||||
)}
|
||||
</FormDescription>
|
||||
<FormMessage />
|
||||
</FormItem>
|
||||
|
||||
@@ -49,7 +49,6 @@ import {
|
||||
emptyUpstreamForType,
|
||||
showsUpstreamUrlField,
|
||||
toAiProviderCreatePayload,
|
||||
upstreamUrlRequired,
|
||||
type AiProviderFormValues
|
||||
} from "@app/lib/aiProviderFormSchema";
|
||||
import { zodResolver } from "@hookform/resolvers/zod";
|
||||
@@ -95,7 +94,6 @@ export default function CreateAiProviderPage() {
|
||||
const authType = form.watch("authType");
|
||||
|
||||
const showUpstream = showsUpstreamUrlField(providerType, routingMode);
|
||||
const requireUpstream = upstreamUrlRequired(providerType, routingMode);
|
||||
const showRoutingMode = providerType === "custom";
|
||||
const showTargets = providerType === "custom" && routingMode === "target";
|
||||
const showApiKey = authTypeRequiresApiKey(authType ?? "bearer");
|
||||
@@ -436,14 +434,9 @@ export default function CreateAiProviderPage() {
|
||||
value
|
||||
);
|
||||
if (
|
||||
value ===
|
||||
value !==
|
||||
"target"
|
||||
) {
|
||||
form.setValue(
|
||||
"upstreamUrl",
|
||||
""
|
||||
);
|
||||
} else {
|
||||
targetsRef.current =
|
||||
[];
|
||||
}
|
||||
@@ -498,14 +491,10 @@ export default function CreateAiProviderPage() {
|
||||
{t(
|
||||
"aiProviderUpstreamUrl"
|
||||
)}
|
||||
{requireUpstream
|
||||
? ""
|
||||
: " (optional)"}
|
||||
</FormLabel>
|
||||
<FormControl>
|
||||
<Input
|
||||
autoComplete="off"
|
||||
placeholder="https://"
|
||||
value={
|
||||
field.value ??
|
||||
""
|
||||
@@ -516,13 +505,9 @@ export default function CreateAiProviderPage() {
|
||||
/>
|
||||
</FormControl>
|
||||
<FormDescription>
|
||||
{requireUpstream
|
||||
? t(
|
||||
"aiProviderUpstreamUrlDescription"
|
||||
)
|
||||
: t(
|
||||
"aiProviderUpstreamUrlOptionalDescription"
|
||||
)}
|
||||
{t(
|
||||
"aiProviderUpstreamUrlDescription"
|
||||
)}
|
||||
</FormDescription>
|
||||
<FormMessage />
|
||||
</FormItem>
|
||||
|
||||
@@ -85,13 +85,8 @@ export function providerRequiresUpstreamUrl(
|
||||
type: AiProviderType,
|
||||
routingMode: AiProviderRoutingMode = "url"
|
||||
): boolean {
|
||||
if (routingMode === "target") {
|
||||
return false;
|
||||
}
|
||||
if (type === "custom") {
|
||||
return true;
|
||||
}
|
||||
return AI_PROVIDER_DEFAULTS[type].upstreamUrl === null;
|
||||
const mode = type === "custom" ? routingMode : "url";
|
||||
return mode !== "target";
|
||||
}
|
||||
|
||||
export function defaultsForProviderType(
|
||||
|
||||
@@ -148,17 +148,6 @@ export function emptyUpstreamForType(type: AiProviderType): string {
|
||||
export function showsUpstreamUrlField(
|
||||
type: AiProviderType,
|
||||
routingMode: "url" | "target" | undefined
|
||||
): boolean {
|
||||
const mode = type === "custom" ? (routingMode ?? "url") : "url";
|
||||
if (mode === "target") {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
export function upstreamUrlRequired(
|
||||
type: AiProviderType,
|
||||
routingMode: "url" | "target" | undefined
|
||||
): boolean {
|
||||
const mode = type === "custom" ? (routingMode ?? "url") : "url";
|
||||
return providerRequiresUpstreamUrl(type, mode);
|
||||
|
||||
Reference in New Issue
Block a user