Cleanup video update component

This commit is contained in:
Chocobozzz 2021-10-22 15:51:02 +02:00
parent 382258676c
commit 0ba9696c01
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
3 changed files with 23 additions and 27 deletions

View File

@ -63,6 +63,7 @@ export class VideoEditComponent implements OnInit, OnDestroy {
@ViewChild('videoCaptionAddModal', { static: true }) videoCaptionAddModal: VideoCaptionAddModalComponent @ViewChild('videoCaptionAddModal', { static: true }) videoCaptionAddModal: VideoCaptionAddModalComponent
@Output() formBuilt = new EventEmitter<void>()
@Output() pluginFieldsAdded = new EventEmitter<void>() @Output() pluginFieldsAdded = new EventEmitter<void>()
// So that it can be accessed in the template // So that it can be accessed in the template
@ -154,6 +155,8 @@ export class VideoEditComponent implements OnInit, OnDestroy {
this.trackChannelChange() this.trackChannelChange()
this.trackPrivacyChange() this.trackPrivacyChange()
this.trackLivePermanentFieldChange() this.trackLivePermanentFieldChange()
this.formBuilt.emit()
} }
ngOnInit () { ngOnInit () {

View File

@ -12,6 +12,8 @@
[videoCaptions]="videoCaptions" [waitTranscodingEnabled]="isWaitTranscodingEnabled()" [videoCaptions]="videoCaptions" [waitTranscodingEnabled]="isWaitTranscodingEnabled()"
type="update" (pluginFieldsAdded)="hydratePluginFieldsFromVideo()" type="update" (pluginFieldsAdded)="hydratePluginFieldsFromVideo()"
[liveVideo]="liveVideo" [videoToUpdate]="videoDetails" [liveVideo]="liveVideo" [videoToUpdate]="videoDetails"
(formBuilt)="onFormBuilt()"
></my-video-edit> ></my-video-edit>
<div class="submit-container"> <div class="submit-container">

View File

@ -1,5 +1,5 @@
import { of } from 'rxjs' import { of } from 'rxjs'
import { map, switchMap } from 'rxjs/operators' import { switchMap } from 'rxjs/operators'
import { SelectChannelItem } from 'src/types/select-options-item.model' import { SelectChannelItem } from 'src/types/select-options-item.model'
import { Component, HostListener, OnInit } from '@angular/core' import { Component, HostListener, OnInit } from '@angular/core'
import { ActivatedRoute, Router } from '@angular/router' import { ActivatedRoute, Router } from '@angular/router'
@ -45,37 +45,28 @@ export class VideoUpdateComponent extends FormReactive implements OnInit {
ngOnInit () { ngOnInit () {
this.buildForm({}) this.buildForm({})
this.route.data const { videoData } = this.route.snapshot.data
.pipe(map(data => data.videoData)) const { video, videoChannels, videoCaptions, liveVideo } = videoData
.subscribe({
next: ({ video, videoChannels, videoCaptions, liveVideo }) => {
this.video = new VideoEdit(video)
this.videoDetails = video
this.userVideoChannels = videoChannels this.video = new VideoEdit(video)
this.videoCaptions = videoCaptions this.videoDetails = video
this.liveVideo = liveVideo
this.schedulePublicationPossible = this.video.privacy === VideoPrivacy.PRIVATE this.userVideoChannels = videoChannels
this.videoCaptions = videoCaptions
this.liveVideo = liveVideo
// FIXME: Angular does not detect the change inside this subscription, so use the patched setTimeout this.schedulePublicationPossible = this.video.privacy === VideoPrivacy.PRIVATE
setTimeout(() => { }
hydrateFormFromVideo(this.form, this.video, true)
if (this.liveVideo) { onFormBuilt () {
this.form.patchValue({ hydrateFormFromVideo(this.form, this.video, true)
saveReplay: this.liveVideo.saveReplay,
permanentLive: this.liveVideo.permanentLive
})
}
})
},
error: err => { if (this.liveVideo) {
console.error(err) this.form.patchValue({
this.notifier.error(err.message) saveReplay: this.liveVideo.saveReplay,
} permanentLive: this.liveVideo.permanentLive
}) })
}
} }
@HostListener('window:beforeunload', [ '$event' ]) @HostListener('window:beforeunload', [ '$event' ])