Email verification and change flows (#1560)
* fix 'Reposted by' text overflow * Add email verification flow * Implement change email flow * Add verify email reminder on load * Bump @atproto/api@0.6.20 * Trim the inputs * Accessibility fixes * Fix typo * Fix: include the day in the sharding check * Update auto behaviors * Update yarn.lock * Temporary error message --------- Co-authored-by: Eric Bailey <git@esb.lol>
This commit is contained in:
parent
16763d1d41
commit
cd3b0e54fb
14 changed files with 855 additions and 15 deletions
|
|
@ -30,6 +30,7 @@ export const accountData = z.object({
|
|||
email: z.string().optional(),
|
||||
displayName: z.string().optional(),
|
||||
aviUrl: z.string().optional(),
|
||||
emailConfirmed: z.boolean().optional(),
|
||||
})
|
||||
export type AccountData = z.infer<typeof accountData>
|
||||
|
||||
|
|
@ -106,6 +107,10 @@ export class SessionModel {
|
|||
return this.accounts.filter(acct => acct.did !== this.data?.did)
|
||||
}
|
||||
|
||||
get emailNeedsConfirmation() {
|
||||
return !this.currentSession?.emailConfirmed
|
||||
}
|
||||
|
||||
get isSandbox() {
|
||||
if (!this.data) {
|
||||
return false
|
||||
|
|
@ -217,6 +222,7 @@ export class SessionModel {
|
|||
? addedInfo.displayName
|
||||
: existingAccount?.displayName || '',
|
||||
aviUrl: addedInfo ? addedInfo.aviUrl : existingAccount?.aviUrl || '',
|
||||
emailConfirmed: session?.emailConfirmed,
|
||||
}
|
||||
if (!existingAccount) {
|
||||
this.accounts.push(newAccount)
|
||||
|
|
@ -246,6 +252,8 @@ export class SessionModel {
|
|||
did: acct.did,
|
||||
displayName: acct.displayName,
|
||||
aviUrl: acct.aviUrl,
|
||||
email: acct.email,
|
||||
emailConfirmed: acct.emailConfirmed,
|
||||
}))
|
||||
}
|
||||
|
||||
|
|
@ -297,6 +305,8 @@ export class SessionModel {
|
|||
refreshJwt: account.refreshJwt || '',
|
||||
did: account.did,
|
||||
handle: account.handle,
|
||||
email: account.email,
|
||||
emailConfirmed: account.emailConfirmed,
|
||||
}),
|
||||
)
|
||||
const addedInfo = await this.loadAccountInfo(agent, account.did)
|
||||
|
|
@ -452,4 +462,10 @@ export class SessionModel {
|
|||
await this.rootStore.me.load()
|
||||
}
|
||||
}
|
||||
|
||||
updateLocalAccountData(changes: Partial<AccountData>) {
|
||||
this.accounts = this.accounts.map(acct =>
|
||||
acct.did === this.data?.did ? {...acct, ...changes} : acct,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue