]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/shared/shared-main/angular/bytes.pipe.ts
Use onpush strategy for dropdown
[github/Chocobozzz/PeerTube.git] / client / src / app / shared / shared-main / angular / bytes.pipe.ts
index f4f473568b2f8526a303f182ccfb8cc915b4f086..f3f57b8255e965a314aae3ab0452c63832abc046 100644 (file)
@@ -1,34 +1,12 @@
 import { Pipe, PipeTransform } from '@angular/core'
+import { getBytes } from '@root-helpers/bytes'
 
 // Thanks: https://github.com/danrevah/ngx-pipes/blob/master/src/ng-pipes/pipes/math/bytes.ts
 
 @Pipe({ name: 'bytes' })
 export class BytesPipe implements PipeTransform {
-  private dictionary: Array<{ max: number; type: string }> = [
-    { max: 1024, type: 'B' },
-    { max: 1048576, type: 'KB' },
-    { max: 1073741824, type: 'MB' },
-    { max: 1.0995116e12, type: 'GB' }
-  ]
 
   transform (value: number, precision?: number | undefined): string | number {
-    const format = this.dictionary.find(d => value < d.max) || this.dictionary[this.dictionary.length - 1]
-    const calc = value / (format.max / 1024)
-
-    const num = precision === undefined
-      ? calc
-      : applyPrecision(calc, precision)
-
-    return `${num} ${format.type}`
+    return getBytes(value, precision)
   }
 }
-
-function applyPrecision (num: number, precision: number) {
-  if (precision <= 0) {
-    return Math.round(num)
-  }
-
-  const tho = 10 ** precision
-
-  return Math.round(num * tho) / tho
-}