add setting to change temperature between C and F.

fixes #175
This commit is contained in:
Jason Kulatunga
2022-05-26 13:04:15 -07:00
parent d1376a2200
commit 21212c0a1d
10 changed files with 88 additions and 12 deletions
@@ -1,13 +1,15 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import {FileSizePipe} from "./file-size.pipe";
import {FileSizePipe} from './file-size.pipe';
import { DeviceSortPipe } from './device-sort.pipe';
import { TemperaturePipe } from './temperature.pipe';
@NgModule({
declarations: [
FileSizePipe,
DeviceSortPipe
DeviceSortPipe,
TemperaturePipe
],
imports: [
CommonModule,
@@ -19,7 +21,8 @@ import { DeviceSortPipe } from './device-sort.pipe';
FormsModule,
ReactiveFormsModule,
FileSizePipe,
DeviceSortPipe
DeviceSortPipe,
TemperaturePipe
]
})
export class SharedModule
@@ -0,0 +1,8 @@
import { TemperaturePipe } from './temperature.pipe';
describe('TemperaturePipe', () => {
it('create an instance', () => {
const pipe = new TemperaturePipe();
expect(pipe).toBeTruthy();
});
});
@@ -0,0 +1,34 @@
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'temperature'
})
export class TemperaturePipe implements PipeTransform {
static celsiusToFahrenheit(celsiusTemp: number): number {
return celsiusTemp * 9.0 / 5.0 + 32;
}
static formatTemperature(celsiusTemp: number, unit: string, includeUnits: boolean): unknown {
let convertedTemp
let convertedUnitSuffix
switch (unit) {
case 'celsius':
convertedTemp = celsiusTemp
convertedUnitSuffix = '°C'
break
case 'fahrenheit':
convertedTemp = TemperaturePipe.celsiusToFahrenheit(celsiusTemp)
convertedUnitSuffix = '°F'
break
}
if(includeUnits){
return convertedTemp + convertedUnitSuffix
} else {
return convertedTemp
}
}
transform(celsiusTemp: number, unit = 'celsius', includeUnits = false): unknown {
return TemperaturePipe.formatTemperature(celsiusTemp, unit, includeUnits)
}
}