feat(auth): add google sign-in onboarding flow

This commit is contained in:
2026-05-01 01:54:26 +03:30
parent 2aa4b2b4cd
commit b688bb1ec3
7 changed files with 540 additions and 28 deletions

View File

@@ -6,10 +6,11 @@ export const en = {
confirmLogoutMessage: "Are you sure you want to log out of your account?",
confirmLeave: "You have unsaved changes. Are you sure you want to leave?",
cancel: "Cancel",
save: "Save",
lightMode: "Light Mode",
darkMode: "Dark Mode",
loadingText: "Loading...",
save: "Save",
lightMode: "Light Mode",
darkMode: "Dark Mode",
settings: "Settings",
loadingText: "Loading...",
loading: "Loading...",
add: "Add",
create: "Create",
@@ -31,9 +32,10 @@ export const en = {
enterMobileDesc: "Enter your mobile number to continue",
signInDesc: "Sign in using your account password",
sentCodeDesc: (mobile: string) => `We sent a 6-digit code to ${mobile}`,
mobilePlaceholder: "Mobile Number (e.g. 09123456789)",
continueWithPassword: "Continue with Password",
orContinueWith: "Or continue with",
mobilePlaceholder: "Mobile Number (e.g. 09123456789)",
continueWithPassword: "Continue with Password",
continueWithGoogle: "Continue with Google",
orContinueWith: "Or continue with",
otpLogin: "OTP Login",
register: "Register",
passwordPlaceholder: "Password",
@@ -53,16 +55,36 @@ export const en = {
enterOtp: "Please enter the OTP code",
invalidOtp: "Invalid OTP code"
},
throttle: {
title: "Too many attempts",
throttle: {
title: "Too many attempts",
genericMessage: (time: string) => `Too many requests. Try again in ${time}.`,
otpSendMessage: (time: string) => `Too many OTP requests. Try again in ${time}.`,
passwordLoginMessage: (time: string) => `Too many password login attempts. Try again in ${time}.`,
otpLoginMessage: (time: string) => `Too many OTP login attempts. Try again in ${time}.`,
countdownLabel: (time: string) => `Retry in ${time}`,
fallback: "Too many requests. Please wait and try again.",
}
},
fallback: "Too many requests. Please wait and try again.",
},
google: {
loadingTitle: "Completing Google sign in",
loadingDescription: "We are validating your Google account and preparing the next step.",
collectMobileTitle: "Finish your account setup",
collectMobileDescription: (email: string) =>
`Google verified ${email}. Enter your mobile number to finish creating your account.`,
claimTitle: "Verify your existing account",
claimDescription: (mobile: string) =>
`An account with ${mobile} already exists. Enter the verification code sent to that number to attach Google.`,
errorTitle: "Google sign in could not be completed",
missingFlow: "The Google sign-in flow is missing or has expired.",
loadFailed: "We could not load your Google sign-in state.",
completeFailed: "We could not finish your Google account setup.",
claimOtpSent: "Verification code sent successfully.",
googleAccount: "Google account",
completeButton: "Continue and create account",
verifyClaimButton: "Verify and continue",
resendClaimOtp: "Resend verification code",
restartGoogle: "Start Google sign in again",
},
},
loginTerms: {
prefix: "By logging in, you agree to our ",