I have 4 different login method for my app. Each method has a separate component associated to it. I want to rearrange the buttons based on what was the last used login method.
I already have a way to determine my last login.
let lastSignedInMethodif (ticketsState?.mjrLoginType === 'apple') { lastSignedInMethod = strings.tickets.login.apple} else if (ticketsState?.mjrLoginType === 'google') { lastSignedInMethod = strings.tickets.login.google} else if (ticketsState?.mjrLoginType === 'phone') { lastSignedInMethod = strings.tickets.login.yourPhoneNumber} else if(ticketsState?.mjrLoginType === 'username'){ lastSignedInMethod = strings.tickets.login.email}I have the following 4 components.
<UsernameSignIn cta={hasSignedInAlready && lastSignedInMethod === strings.tickets.login.email} /><PhoneSignIn cta={hasSignedInAlready && lastSignedInMethod === strings.tickets.login.yourPhoneNumber} /><AppleSignIn cta= {hasSignedInAlready && lastSignedInMethod === strings.tickets.login.apple} setParentSigningIn={signingIn => setFreeze(signingIn)} /><GoogleSignIn cta={hasSignedInAlready && lastSignedInMethod === strings.tickets.login.google } setParentSigningIn={signingIn => setFreeze(signingIn)} />I am render the 4 components with some dividers and some other styling but I want to rearrange them based on the value of lastSignedInMethod.You can ignore the cta property, I'm using this to color the button but It can be ignored for this functionality.
I am thinking of adding all the components to an array and then have some property on the component to be able to uniquely identify them using strings.tickets.login.apple string for the <AppleSignIn/> component and same for the others and then just sorting the array based on the value of lastSignedInMethod.
Is there a better way of doing this, or am I on the right path?