Skip to content

Commit 54aa97b

Browse files
tuxpiperushahidlee
andauthored
Hot fix 2024 45 2 (#1481)
* Fixing bugs around deleting image and modifying only the caption * fixes - caption errors on edit - console errors for handleUpload * fix for not editing images * fixing weird caption issue * ok edit fixed * Fix cutoff posts for empty images --------- Co-authored-by: ushahidlee <[email protected]>
1 parent 535b543 commit 54aa97b

File tree

3 files changed

+25
-17
lines changed

3 files changed

+25
-17
lines changed

apps/web-mzima-client/src/app/post/post-details/post-details.component.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,9 @@ <h3>{{ field.label }}</h3>
163163
</div>
164164
</ng-container>
165165

166-
<ng-container *ngIf="field.input === 'upload' && field.value[0].url">
166+
<ng-container
167+
*ngIf="field.input === 'upload' && field.value.length === 1 && field.value[0].url"
168+
>
167169
<span *ngIf="!field.value[0].value">-</span>
168170
<div class="post__media">
169171
<img *ngIf="field.value[0].value" [src]="field.value[0].url" [alt]="post.title" />

apps/web-mzima-client/src/app/post/post-details/post-details.component.ts

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -188,16 +188,18 @@ export class PostDetailsComponent extends BaseComponent implements OnChanges, On
188188
if (Array.isArray(mediaField.value)) {
189189
const mediaFiles: MediaFile[] = [];
190190
for await (const mediaValue of mediaField.value) {
191-
const media = await lastValueFrom(this.mediaService.getById(mediaValue.value!));
192-
const mediaFile: MediaFile = new MediaFile(
193-
media.result,
194-
media.result.original_file_url,
195-
);
196-
mediaFile.id = mediaValue.id;
197-
mediaFile.value = media.result.id;
198-
mediaFile.caption = media.result.caption;
199-
mediaFile.status = MediaFileStatus.READY;
200-
mediaFiles.push(mediaFile);
191+
if (mediaValue.value) {
192+
const media = await lastValueFrom(this.mediaService.getById(mediaValue.value));
193+
const mediaFile: MediaFile = new MediaFile(
194+
media.result,
195+
media.result.original_file_url,
196+
);
197+
mediaFile.id = mediaValue.id;
198+
mediaFile.value = media.result.id;
199+
mediaFile.caption = media.result.caption;
200+
mediaFile.status = MediaFileStatus.READY;
201+
mediaFiles.push(mediaFile);
202+
}
201203
}
202204
mediaField.value = mediaFiles;
203205
} else if (mediaField.value?.value) {

apps/web-mzima-client/src/app/post/post-edit/post-edit.component.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,7 @@ export class PostEditComponent extends BaseComponent implements OnInit, OnChange
359359
}
360360

361361
private async handleUpload(key: string, value: any) {
362-
if (!value[0].value) return;
362+
if (!value?.[0]?.value) return;
363363
try {
364364
const response: any = await lastValueFrom(this.mediaService.getById(value[0].value));
365365
this.form.patchValue({
@@ -662,23 +662,27 @@ export class PostEditComponent extends BaseComponent implements OnInit, OnChange
662662
this.form.value[field.key]?.id,
663663
);
664664
await lastValueFrom(deleteObservable);
665-
value.value = null;
665+
value.value = [];
666666
} catch (error: any) {
667667
throw new Error(`Error deleting file: ${error.message}`);
668668
}
669-
} else if (originalValue?.value[0].caption !== value.value?.caption) {
669+
} else if (
670+
originalValue?.value?.length > 0 &&
671+
originalValue.value[0].caption !== value.value.caption
672+
) {
670673
try {
671674
const captionObservable = await this.mediaService.updateCaption(
672-
originalValue.value[0].id,
675+
originalValue.value[0].value,
673676
value.value.caption,
674677
);
675678
await lastValueFrom(captionObservable);
676-
value.value = [originalValue.value[0].id];
679+
value.value = [originalValue.value[0].value];
677680
} catch (error: any) {
678681
throw new Error(`Error updating caption: ${error.message}`);
679682
}
680683
} else {
681-
value.value = this.form.value[field.key]?.id || [];
684+
if (this.form.value[field.key]) value.value = [this.form.value[field.key]?.id];
685+
else value.value = [];
682686
}
683687
break;
684688
case 'image':

0 commit comments

Comments
 (0)