]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/shared/shared-forms/reactive-file.component.ts
Merge branch 'release/5.0.0' into develop
[github/Chocobozzz/PeerTube.git] / client / src / app / shared / shared-forms / reactive-file.component.ts
index eeb2a3fd8fb869c06f9143434e6070ea8b221eb6..48055a51cdeb240cb3445ac5d87098ee923498fc 100644 (file)
@@ -20,8 +20,12 @@ export class ReactiveFileComponent implements OnInit, ControlValueAccessor {
   @Input() inputName: string
   @Input() extensions: string[] = []
   @Input() maxFileSize: number
+
   @Input() displayFilename = false
+  @Input() displayReset = false
+
   @Input() icon: GlobalIconName
+  @Input() buttonTooltip: string
 
   @Output() fileChanged = new EventEmitter<Blob>()
 
@@ -43,7 +47,7 @@ export class ReactiveFileComponent implements OnInit, ControlValueAccessor {
   }
 
   fileChange (event: any) {
-    if (event.target.files && event.target.files.length) {
+    if (event.target.files?.length) {
       const [ file ] = event.target.files
 
       if (file.size > this.maxFileSize) {
@@ -52,8 +56,8 @@ export class ReactiveFileComponent implements OnInit, ControlValueAccessor {
       }
 
       const extension = '.' + file.name.split('.').pop()
-      if (this.extensions.includes(extension) === false) {
-        const message = $localize`PeerTube cannot handle this kind of file. Accepted extensions are ${this.allowedExtensionsMessage}}.`
+      if (this.extensions.includes(extension.toLowerCase()) === false) {
+        const message = $localize`PeerTube cannot handle this kind of file. Accepted extensions are ${this.allowedExtensionsMessage}.`
         this.notifier.error(message)
 
         return
@@ -62,8 +66,14 @@ export class ReactiveFileComponent implements OnInit, ControlValueAccessor {
       this.file = file
 
       this.propagateChange(this.file)
-      this.fileChanged.emit(this.file)
     }
+    this.fileChanged.emit(this.file)
+  }
+
+  reset () {
+    this.writeValue(undefined)
+    this.propagateChange(undefined)
+    this.fileChanged.emit(undefined)
   }
 
   propagateChange = (_: any) => { /* empty */ }