fix(frontend): Remove credential field reordering on selection

The sortByUnsetFirst comparator in splitCredentialFieldsBySystem
caused credential inputs to jump positions every time a credential
was selected (set fields moved to bottom, unset moved to top).
Remove the sort to keep stable ordering.
This commit is contained in:
Zamil Majdy
2026-02-10 11:18:42 +04:00
parent 1a1985186a
commit 27ba4e8e93
2 changed files with 4 additions and 18 deletions

View File

@@ -38,13 +38,8 @@ export function CredentialsGroupedView({
const allProviders = useContext(CredentialsProvidersContext);
const { userCredentialFields, systemCredentialFields } = useMemo(
() =>
splitCredentialFieldsBySystem(
credentialFields,
allProviders,
inputCredentials,
),
[credentialFields, allProviders, inputCredentials],
() => splitCredentialFieldsBySystem(credentialFields, allProviders),
[credentialFields, allProviders],
);
const hasSystemCredentials = systemCredentialFields.length > 0;

View File

@@ -52,7 +52,6 @@ function matchesDiscriminatorValues(
export function splitCredentialFieldsBySystem(
credentialFields: CredentialField[],
allProviders: CredentialsProvidersContextType | null,
inputCredentials?: Record<string, unknown>,
) {
if (!allProviders || credentialFields.length === 0) {
return {
@@ -78,17 +77,9 @@ export function splitCredentialFieldsBySystem(
}
}
const sortByUnsetFirst = (a: CredentialField, b: CredentialField) => {
const aIsSet = Boolean(inputCredentials?.[a[0]]);
const bIsSet = Boolean(inputCredentials?.[b[0]]);
if (aIsSet === bIsSet) return 0;
return aIsSet ? 1 : -1;
};
return {
userCredentialFields: userFields.sort(sortByUnsetFirst),
systemCredentialFields: systemFields.sort(sortByUnsetFirst),
userCredentialFields: userFields,
systemCredentialFields: systemFields,
};
}