feat: add useSpeedTestEndpoints hook to collect all endpoint candidates for speed test modal

- Create useSpeedTestEndpoints hook that collects endpoints from:
  1. Current baseUrl/codexBaseUrl
  2. Initial data URL (edit mode)
  3. Preset's endpointCandidates array
- Pass speedTestEndpoints to ClaudeFormFields and CodexFormFields
- Update EndpointSpeedTest to use collected endpoints instead of just current URL
- Fix PackyCode preset endpoints not appearing in speed test modal
This commit is contained in:
Jason
2025-10-16 22:41:36 +08:00
parent 8a724b79ec
commit 17f350f2d3
5 changed files with 175 additions and 2 deletions

View File

@@ -6,6 +6,10 @@ import EndpointSpeedTest from "@/components/ProviderForm/EndpointSpeedTest";
import { Zap } from "lucide-react";
import type { ProviderCategory } from "@/types";
interface EndpointCandidate {
url: string;
}
interface CodexFormFieldsProps {
// API Key
codexApiKey: string;
@@ -21,6 +25,9 @@ interface CodexFormFieldsProps {
isEndpointModalOpen: boolean;
onEndpointModalToggle: (open: boolean) => void;
onCustomEndpointsChange: (endpoints: string[]) => void;
// Speed Test Endpoints
speedTestEndpoints: EndpointCandidate[];
}
export function CodexFormFields({
@@ -35,6 +42,7 @@ export function CodexFormFields({
isEndpointModalOpen,
onEndpointModalToggle,
onCustomEndpointsChange,
speedTestEndpoints,
}: CodexFormFieldsProps) {
const { t } = useTranslation();
@@ -120,7 +128,7 @@ export function CodexFormFields({
appType="codex"
value={codexBaseUrl}
onChange={onBaseUrlChange}
initialEndpoints={[{ url: codexBaseUrl }]}
initialEndpoints={speedTestEndpoints}
visible={isEndpointModalOpen}
onClose={() => onEndpointModalToggle(false)}
onCustomEndpointsChange={onCustomEndpointsChange}