diff --git a/src/app/molecules/sso-buttons/SSOButtons.jsx b/src/app/molecules/sso-buttons/SSOButtons.jsx index 47d001c7..af6cb927 100644 --- a/src/app/molecules/sso-buttons/SSOButtons.jsx +++ b/src/app/molecules/sso-buttons/SSOButtons.jsx @@ -10,6 +10,9 @@ function SSOButtons({ homeserver }) { const [identityProviders, setIdentityProviders] = useState([]); useEffect(() => { + // Reset sso proviers to avoid displaying sso icons if the homeserver is not valid + setIdentityProviders([]); + // If the homeserver passed in is not a fully-qualified domain name, do not update. if (!homeserver.match('^[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9](?:\\.[a-zA-Z]{2,})+$')) { return; @@ -49,16 +52,19 @@ function SSOButtons({ homeserver }) { OR
- {identityProviders.sort((idp) => !!idp.imageSrc).map((idp) => ( - - ))} + {identityProviders + // Sort by alphabetical order + .sort((idp, idp2) => !!idp.imageSrc && idp.name > idp2.name) + .map((idp) => ( + + ))}
);