diff options
Diffstat (limited to 'client/src/app/shared/forms/peertube-checkbox.component.ts')
-rw-r--r-- | client/src/app/shared/forms/peertube-checkbox.component.ts | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/client/src/app/shared/forms/peertube-checkbox.component.ts b/client/src/app/shared/forms/peertube-checkbox.component.ts index c1a6915e8..9578f5618 100644 --- a/client/src/app/shared/forms/peertube-checkbox.component.ts +++ b/client/src/app/shared/forms/peertube-checkbox.component.ts | |||
@@ -1,4 +1,4 @@ | |||
1 | import { Component, forwardRef, Input } from '@angular/core' | 1 | import { ChangeDetectorRef, Component, forwardRef, Input, OnChanges, SimpleChanges } from '@angular/core' |
2 | import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms' | 2 | import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms' |
3 | 3 | ||
4 | @Component({ | 4 | @Component({ |
@@ -21,10 +21,19 @@ export class PeertubeCheckboxComponent implements ControlValueAccessor { | |||
21 | @Input() helpHtml: string | 21 | @Input() helpHtml: string |
22 | @Input() disabled = false | 22 | @Input() disabled = false |
23 | 23 | ||
24 | // FIXME: https://github.com/angular/angular/issues/10816#issuecomment-307567836 | ||
25 | @Input() onPushWorkaround = false | ||
26 | |||
27 | constructor (private cdr: ChangeDetectorRef) { } | ||
28 | |||
24 | propagateChange = (_: any) => { /* empty */ } | 29 | propagateChange = (_: any) => { /* empty */ } |
25 | 30 | ||
26 | writeValue (checked: boolean) { | 31 | writeValue (checked: boolean) { |
27 | this.checked = checked | 32 | this.checked = checked |
33 | |||
34 | if (this.onPushWorkaround) { | ||
35 | this.cdr.markForCheck() | ||
36 | } | ||
28 | } | 37 | } |
29 | 38 | ||
30 | registerOnChange (fn: (_: any) => void) { | 39 | registerOnChange (fn: (_: any) => void) { |