fix(ui): gate preset catalog reuse on query readiness

- only reuse provider catalogs after /api/cliproxy/catalog has resolved

- avoid passing synthesized static fallback catalogs into preset application

- cover quick-setup and cliproxy add-account flows with regression tests
This commit is contained in:
Tam Nhu Tran committed 2026-04-08 18:01:30 -04:00
1 parent 564ed3def7
commit 87f00c524d
4 files changed
+257 -2

No files matched your search

+6 -1
View File
@@ -264,6 +264,7 @@ export function CliproxyPage() {
const isRemoteMode = authData?.source === 'remote';
const variants = useMemo(() => variantsData?.variants || [], [variantsData?.variants]);
const catalogs = useMemo(() => buildUiCatalogs(catalogData?.catalogs), [catalogData?.catalogs]);
const fetchedCatalogsReady = Boolean(catalogData);
// Wrapper to persist provider selection to localStorage
const setSelectedProvider = (provider: string | null) => {
@@ -561,7 +562,11 @@ export function CliproxyPage() {
onClose={() => setAddAccountProvider(null)}
provider={addAccountProvider?.provider || ''}
displayName={addAccountProvider?.displayName || ''}
catalog={addAccountProvider?.provider ? catalogs[addAccountProvider.provider] : undefined}
catalog={
fetchedCatalogsReady && addAccountProvider?.provider
? catalogs[addAccountProvider.provider]
: undefined
}
isFirstAccount={addAccountProvider?.isFirstAccount || false}
/>
</div>