Add very simple prediction delta UI

This commit is contained in:
2021-02-24 15:34:46 +01:00
parent 06e649671f
commit f7f351d6a3
7 changed files with 82 additions and 1 deletions

View File

@ -0,0 +1,10 @@
<h4>Enter the names of two predictions to compare</h4>
<rb-form-input label="Prediction A" [(ngModel)]="nameA"></rb-form-input>
<rb-form-input label="Prediction B" [(ngModel)]="nameB"></rb-form-input>
<p *ngIf="delta">
The result is {{ delta }}.
</p>
<rb-icon-button icon="forward-right" mode="primary" (click)="compare()">
Compare Predictions
</rb-icon-button>

View File

@ -0,0 +1,25 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { PredictionDeltaComponent } from './prediction-delta.component';
describe('PredictionDeltaComponent', () => {
let component: PredictionDeltaComponent;
let fixture: ComponentFixture<PredictionDeltaComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ PredictionDeltaComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(PredictionDeltaComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -0,0 +1,41 @@
import { Component } from '@angular/core';
import { animate, style, transition, trigger } from '@angular/animations';
import { ApiService } from '../services/api.service';
@Component({
selector: 'app-prediction-delta',
templateUrl: './prediction-delta.component.html',
styleUrls: ['./prediction-delta.component.scss'],
animations: [
trigger(
'inOut', [
transition(':enter', [
style({height: 0, opacity: 0}),
animate('0.5s ease-out', style({height: '*', opacity: 1}))
]),
transition(':leave', [
style({height: '*', opacity: 1}),
animate('0.5s ease-in', style({height: 0, opacity: 0}))
])
]
)
]
})
export class PredictionDeltaComponent {
nameA: String;
nameB: String;
delta: Number;
constructor(
private api: ApiService,
) {}
// Compares the two predictions
compare() {
let data = { nameA: this.nameA, nameB: this.nameB };
this.api.post<Number>('/prediction/compare', data, result => {
this.delta = result;
});
}
}