Add EditProfile modal

This commit is contained in:
Paul Frazee 2022-09-07 16:00:25 -05:00
parent 5ae39612d7
commit 9010078489
9 changed files with 177 additions and 8 deletions

View file

@ -124,6 +124,17 @@ export async function unfollow(
return numDels > 0
}
export async function updateProfile(
adx: AdxClient,
user: string,
profile: bsky.Profile.Record,
) {
return await adx
.repo(user, true)
.collection('blueskyweb.xyz:Profiles')
.put('Profile', 'profile', {$type: 'blueskyweb.xyz:Profile', ...profile})
}
type WherePred = (_record: GetRecordResponseValidated) => Boolean
async function deleteWhere(
coll: AdxRepoCollectionClient,

View file

@ -89,6 +89,14 @@ export class ProfileViewModel implements bsky.ProfileView.Response {
}
}
async updateProfile(profile: bsky.Profile.Record) {
if (this.did !== this.rootStore.me.did) {
throw new Error('Not your profile!')
}
await apilib.updateProfile(this.rootStore.api, this.did, profile)
await this.refresh()
}
// state transitions
// =

View file

@ -1,4 +1,5 @@
import {makeAutoObservable} from 'mobx'
import {ProfileViewModel} from './profile-view'
export class LinkActionsModel {
name = 'link-actions'
@ -24,15 +25,34 @@ export class ComposePostModel {
}
}
export class EditProfileModel {
name = 'edit-profile'
constructor(public profileView: ProfileViewModel) {
makeAutoObservable(this)
}
}
export class ShellModel {
isModalActive = false
activeModal: LinkActionsModel | SharePostModel | ComposePostModel | undefined
activeModal:
| LinkActionsModel
| SharePostModel
| ComposePostModel
| EditProfileModel
| undefined
constructor() {
makeAutoObservable(this)
}
openModal(modal: LinkActionsModel | SharePostModel | ComposePostModel) {
openModal(
modal:
| LinkActionsModel
| SharePostModel
| ComposePostModel
| EditProfileModel,
) {
this.isModalActive = true
this.activeModal = modal
}