ensure all alt media are updated, fix #430

This commit is contained in:
Nicolas Constant 2023-04-23 18:27:47 -04:00
parent 22cad9e22d
commit eac8c6120a
No known key found for this signature in database
GPG Key ID: 1E9F677FB01A5688
2 changed files with 20 additions and 5 deletions

View File

@ -537,7 +537,7 @@ export class CreateStatusComponent implements OnInit, OnDestroy {
return false;
}
onSubmit(): boolean {
async onSubmit(): Promise<boolean> {
if (this.isSending || this.mentionTooFarAwayError) return false;
this.isSending = true;
@ -558,9 +558,10 @@ export class CreateStatusComponent implements OnInit, OnDestroy {
break;
}
const mediaAttachments = this.mediaService.mediaSubject.value.map(x => x.attachment);
const acc = this.toolsService.getSelectedAccounts()[0];
const mediaAttachments = (await this.mediaService.retrieveUpToDateMedia(acc)).map(x => x.attachment);
let usableStatus: Promise<Status>;
if (this.statusReplyingToWrapper) {
usableStatus = this.toolsService.getStatusUsableByAccount(acc, this.statusReplyingToWrapper);

View File

@ -51,10 +51,10 @@ export class MediaService {
});
}
update(account: AccountInfo, media: MediaWrapper) {
update(account: AccountInfo, media: MediaWrapper): Promise<void> {
if (media.attachment.description === media.description) return;
this.mastodonService.updateMediaAttachment(account, media.attachment.id, media.description)
return this.mastodonService.updateMediaAttachment(account, media.attachment.id, media.description)
.then((att: Attachment) => {
let medias = this.mediaSubject.value;
let updatedMedia = medias.filter(x => x.id === media.id)[0];
@ -66,6 +66,20 @@ export class MediaService {
});
}
async retrieveUpToDateMedia(account: AccountInfo): Promise<MediaWrapper[]> {
const allMedia = this.mediaSubject.value;
let allPromises: Promise<any>[] = [];
for (const m of allMedia) {
let t = this.update(account, m);
allPromises.push(t);
}
await Promise.all(allPromises);
return allMedia;
}
addExistingMedia(media: MediaWrapper){
if(!this.fileCache[media.attachment.url]) return;