import { of } from 'rxjs'
import { map, switchMap } from 'rxjs/operators'
+import { SelectChannelItem } from 'src/types/select-options-item.model'
import { Component, HostListener, OnInit } from '@angular/core'
import { ActivatedRoute, Router } from '@angular/router'
import { Notifier } from '@app/core'
-import { FormReactive, FormValidatorService, SelectChannelItem } from '@app/shared/shared-forms'
+import { FormReactive, FormValidatorService } from '@app/shared/shared-forms'
import { VideoCaptionEdit, VideoCaptionService, VideoDetails, VideoEdit, VideoService } from '@app/shared/shared-main'
import { LiveVideoService } from '@app/shared/shared-video-live'
import { LoadingBarService } from '@ngx-loading-bar/core'
this.video.patch(this.form.value)
- const liveVideoUpdate: LiveVideoUpdate = {
- saveReplay: this.form.value.saveReplay,
- permanentLive: this.form.value.permanentLive
- }
-
this.loadingBar.useRef().start()
this.isUpdatingVideo = true
switchMap(() => {
if (!this.liveVideo) return of(undefined)
+ const liveVideoUpdate: LiveVideoUpdate = {
+ saveReplay: !!this.form.value.saveReplay,
+ permanentLive: !!this.form.value.permanentLive
+ }
+
+ // Don't update live attributes if they did not change
+ const liveChanged = Object.keys(liveVideoUpdate)
+ .some(key => this.liveVideo[key] !== liveVideoUpdate[key])
+ if (!liveChanged) return of(undefined)
+
return this.liveVideoService.updateLive(this.video.id, liveVideoUpdate)
})
)