mirror of
https://github.com/QuantumNous/new-api.git
synced 2026-09-06 17:46:23 +00:00
fix: only fetch deployment settings on deployments page (#5466)
This commit is contained in:
+40
-47
@@ -54,7 +54,6 @@ const SECTION_META: Record<ModelsSectionId, { titleKey: string }> = {
|
|||||||
function ModelsContent() {
|
function ModelsContent() {
|
||||||
const { t } = useTranslation()
|
const { t } = useTranslation()
|
||||||
const navigate = useNavigate()
|
const navigate = useNavigate()
|
||||||
const queryClient = useQueryClient()
|
|
||||||
const { tabCategory, setTabCategory } = useModels()
|
const { tabCategory, setTabCategory } = useModels()
|
||||||
const params = route.useParams()
|
const params = route.useParams()
|
||||||
const activeSection = (params.section ??
|
const activeSection = (params.section ??
|
||||||
@@ -70,41 +69,6 @@ function ModelsContent() {
|
|||||||
}
|
}
|
||||||
}, [activeSection, setTabCategory, tabCategory])
|
}, [activeSection, setTabCategory, tabCategory])
|
||||||
|
|
||||||
const {
|
|
||||||
loading: deploymentLoading,
|
|
||||||
loadingPhase,
|
|
||||||
isIoNetEnabled,
|
|
||||||
connectionLoading,
|
|
||||||
connectionOk,
|
|
||||||
connectionError,
|
|
||||||
testConnection,
|
|
||||||
refresh: refreshDeploymentSettings,
|
|
||||||
} = useModelDeploymentSettings()
|
|
||||||
|
|
||||||
// Ensure settings are fresh when switching to deployments section
|
|
||||||
useEffect(() => {
|
|
||||||
if (activeSection === 'deployments') {
|
|
||||||
refreshDeploymentSettings()
|
|
||||||
}
|
|
||||||
}, [activeSection, refreshDeploymentSettings])
|
|
||||||
|
|
||||||
// Prefetch deployments list while connection check is in progress
|
|
||||||
// This allows the data to be ready as soon as the guard passes
|
|
||||||
useEffect(() => {
|
|
||||||
if (
|
|
||||||
activeSection === 'deployments' &&
|
|
||||||
isIoNetEnabled &&
|
|
||||||
loadingPhase === 'connection'
|
|
||||||
) {
|
|
||||||
const defaultParams = { p: 1, page_size: 10 }
|
|
||||||
queryClient.prefetchQuery({
|
|
||||||
queryKey: deploymentsQueryKeys.list(defaultParams),
|
|
||||||
queryFn: () => listDeployments(defaultParams),
|
|
||||||
staleTime: 30 * 1000, // 30 seconds
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}, [activeSection, isIoNetEnabled, loadingPhase, queryClient])
|
|
||||||
|
|
||||||
const handleSectionChange = useCallback(
|
const handleSectionChange = useCallback(
|
||||||
(section: string) => {
|
(section: string) => {
|
||||||
void navigate({
|
void navigate({
|
||||||
@@ -146,17 +110,7 @@ function ModelsContent() {
|
|||||||
{activeSection === 'metadata' ? (
|
{activeSection === 'metadata' ? (
|
||||||
<ModelsTable />
|
<ModelsTable />
|
||||||
) : (
|
) : (
|
||||||
<DeploymentAccessGuard
|
<DeploymentsSection />
|
||||||
loading={deploymentLoading}
|
|
||||||
loadingPhase={loadingPhase}
|
|
||||||
isEnabled={isIoNetEnabled}
|
|
||||||
connectionLoading={connectionLoading}
|
|
||||||
connectionOk={connectionOk}
|
|
||||||
connectionError={connectionError}
|
|
||||||
onRetry={testConnection}
|
|
||||||
>
|
|
||||||
<DeploymentsTable />
|
|
||||||
</DeploymentAccessGuard>
|
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -172,6 +126,45 @@ function ModelsContent() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function DeploymentsSection() {
|
||||||
|
const queryClient = useQueryClient()
|
||||||
|
const {
|
||||||
|
loading: deploymentLoading,
|
||||||
|
loadingPhase,
|
||||||
|
isIoNetEnabled,
|
||||||
|
connectionLoading,
|
||||||
|
connectionOk,
|
||||||
|
connectionError,
|
||||||
|
testConnection,
|
||||||
|
} = useModelDeploymentSettings()
|
||||||
|
|
||||||
|
// Prefetch deployments list while connection check is in progress.
|
||||||
|
useEffect(() => {
|
||||||
|
if (isIoNetEnabled && loadingPhase === 'connection') {
|
||||||
|
const defaultParams = { p: 1, page_size: 10 }
|
||||||
|
queryClient.prefetchQuery({
|
||||||
|
queryKey: deploymentsQueryKeys.list(defaultParams),
|
||||||
|
queryFn: () => listDeployments(defaultParams),
|
||||||
|
staleTime: 30 * 1000,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}, [isIoNetEnabled, loadingPhase, queryClient])
|
||||||
|
|
||||||
|
return (
|
||||||
|
<DeploymentAccessGuard
|
||||||
|
loading={deploymentLoading}
|
||||||
|
loadingPhase={loadingPhase}
|
||||||
|
isEnabled={isIoNetEnabled}
|
||||||
|
connectionLoading={connectionLoading}
|
||||||
|
connectionOk={connectionOk}
|
||||||
|
connectionError={connectionError}
|
||||||
|
onRetry={testConnection}
|
||||||
|
>
|
||||||
|
<DeploymentsTable />
|
||||||
|
</DeploymentAccessGuard>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
export function Models() {
|
export function Models() {
|
||||||
return (
|
return (
|
||||||
<ModelsProvider>
|
<ModelsProvider>
|
||||||
|
|||||||
Reference in New Issue
Block a user