refactor(AuthFilesPage): optimize provider list generation using useMemo for better performance

This commit is contained in:
thanhtunguet
2026-01-31 21:33:26 +07:00
parent fd1174e010
commit 01a69ff32b
2 changed files with 28 additions and 24 deletions

View File

@@ -1,3 +1,5 @@
@use '../../styles/variables' as *;
.container { .container {
display: flex; display: flex;
position: relative; position: relative;
@@ -143,7 +145,8 @@
} }
} }
.sourceItem, .aliasItem { .sourceItem,
.aliasItem {
cursor: grab; cursor: grab;
&:active { &:active {
@@ -175,8 +178,7 @@
right: -3px; right: -3px;
} }
.aliasItem { .aliasItem {}
}
.providerBadge { .providerBadge {
font-size: 11px; font-size: 11px;

View File

@@ -249,10 +249,7 @@ export function AuthFilesPage() {
const disableControls = connectionStatus !== 'connected'; const disableControls = connectionStatus !== 'connected';
useEffect(() => { const providerList = useMemo(() => {
let cancelled = false;
const loadAllModels = async () => {
const providers = new Set<string>(); const providers = new Set<string>();
Object.keys(modelAlias).forEach((provider) => { Object.keys(modelAlias).forEach((provider) => {
@@ -270,8 +267,13 @@ export function AuthFilesPage() {
if (key) providers.add(key); if (key) providers.add(key);
} }
}); });
return Array.from(providers);
}, [files, modelAlias]);
const providerList = Array.from(providers); useEffect(() => {
let cancelled = false;
const loadAllModels = async () => {
if (providerList.length === 0) { if (providerList.length === 0) {
if (!cancelled) setAllProviderModels({}); if (!cancelled) setAllProviderModels({});
return; return;
@@ -305,7 +307,7 @@ export function AuthFilesPage() {
return () => { return () => {
cancelled = true; cancelled = true;
}; };
}, [files, modelAlias]); }, [providerList]);