@@ -639,13 +639,19 @@ export class PostEditComponent extends BaseComponent implements OnInit, OnChange
639
639
const originalValue = this . post ?. post_content [ 0 ] ?. fields . filter (
640
640
( fieldValue : { key : string | number } ) => fieldValue . key === field . key ,
641
641
) [ 0 ] ;
642
- if ( this . form . value [ field . key ] ?. upload && this . form . value [ field . key ] ?. photo ) {
642
+ let formValue = this . form . value [ field . key ] ;
643
+ if ( Array . isArray ( formValue ) ) formValue = formValue [ 0 ] ;
644
+
645
+ // No image uploaded in field at all
646
+ if ( ! formValue ) value . value = [ ] ;
647
+ // Image uploaded
648
+ else if ( formValue . upload && formValue . photo ) {
643
649
try {
644
650
this . maxSizeError = false ;
645
- if ( this . maxImageSize > this . form . value [ field . key ] . photo . size ) {
651
+ if ( this . maxImageSize > formValue . photo . size ) {
646
652
const uploadObservable = this . mediaService . uploadFile (
647
- this . form . value [ field . key ] ? .photo ,
648
- this . form . value [ field . key ] ? .caption ,
653
+ formValue . photo ,
654
+ formValue . caption ,
649
655
) ;
650
656
const response : any = await lastValueFrom ( uploadObservable ) ;
651
657
value . value = [ response . result . id ] ;
@@ -656,46 +662,46 @@ export class PostEditComponent extends BaseComponent implements OnInit, OnChange
656
662
} catch ( error : any ) {
657
663
throw new Error ( `Error uploading file: ${ error . message } ` ) ;
658
664
}
659
- } else if ( this . form . value [ field . key ] ?. delete && this . form . value [ field . key ] ?. id ) {
665
+ // Image deleted
666
+ } else if ( formValue . delete && formValue . id ) {
660
667
try {
661
- const deleteObservable = this . mediaService . delete (
662
- this . form . value [ field . key ] ?. id ,
663
- ) ;
668
+ const deleteObservable = this . mediaService . delete ( formValue . id ) ;
664
669
await lastValueFrom ( deleteObservable ) ;
665
670
value . value = [ ] ;
666
671
} catch ( error : any ) {
667
672
throw new Error ( `Error deleting file: ${ error . message } ` ) ;
668
673
}
674
+ // Caption updated
669
675
} else if (
670
676
originalValue ?. value ?. length > 0 &&
671
- originalValue . value [ 0 ] . caption !== value . value . caption
677
+ originalValue . value [ 0 ] . caption !== formValue . caption
672
678
) {
673
679
try {
674
680
const captionObservable = await this . mediaService . updateCaption (
675
681
originalValue . value [ 0 ] . value ,
676
- value . value . caption ,
682
+ formValue . caption ,
677
683
) ;
678
684
await lastValueFrom ( captionObservable ) ;
679
685
value . value = [ originalValue . value [ 0 ] . value ] ;
680
686
} catch ( error : any ) {
681
687
throw new Error ( `Error updating caption: ${ error . message } ` ) ;
682
688
}
689
+ // Nothing updated
683
690
} else {
684
- if ( this . form . value [ field . key ] ) value . value = [ this . form . value [ field . key ] ?. id ] ;
685
- else value . value = [ ] ;
691
+ value . value = [ formValue . id ] ;
686
692
}
687
693
break ;
688
694
case 'image' :
689
695
value . value =
690
- this . form . value [ field . key ] ?. map ( ( formValue : any ) => formValue . value ) || [ ] ;
696
+ this . form . value [ field . key ] ?. map ( ( fieldValue : any ) => fieldValue . value ) || [ ] ;
691
697
break ;
692
698
case 'audio' :
693
699
value . value =
694
- this . form . value [ field . key ] ?. map ( ( formValue : any ) => formValue . value ) || [ ] ;
700
+ this . form . value [ field . key ] ?. map ( ( fieldValue : any ) => fieldValue . value ) || [ ] ;
695
701
break ;
696
702
case 'document' :
697
703
value . value =
698
- this . form . value [ field . key ] ?. map ( ( formValue : any ) => formValue . value ) || [ ] ;
704
+ this . form . value [ field . key ] ?. map ( ( fieldValue : any ) => fieldValue . value ) || [ ] ;
699
705
break ;
700
706
default :
701
707
value . value = this . form . value [ field . key ] || null ;
0 commit comments