Add EditProfile modal
This commit is contained in:
parent
5ae39612d7
commit
9010078489
9 changed files with 177 additions and 8 deletions
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
// =
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue