Skip to content

Commit e4e5e1d

Browse files
committed
refactor performance-form with SliderInputComponent
1 parent 46bf574 commit e4e5e1d

1 file changed

Lines changed: 16 additions & 41 deletions

File tree

src/components/forms/performance-form/performance-form.component.ts

Lines changed: 16 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@ import { FormsModule } from '@angular/forms';
44
import { ConfigStoreService } from '../../../services/config-store.service';
55
import { KittyPerformanceConfig } from '../../../models/kitty-types';
66
import { NumberInputComponent } from '../../shared/number-input/number-input.component';
7+
import { SliderInputComponent } from '../../shared/slider-input/slider-input.component';
78

89
@Component({
910
selector: 'app-performance-form',
10-
imports: [CommonModule, FormsModule, NumberInputComponent],
11+
imports: [CommonModule, FormsModule, NumberInputComponent, SliderInputComponent],
1112
template: `
1213
<div class="space-y-6">
1314
<div>
@@ -25,28 +26,11 @@ import { NumberInputComponent } from '../../shared/number-input/number-input.com
2526
Delay between screen repaints. Lower = higher FPS at the cost of more CPU.
2627
Default 10ms (~100 FPS). Values under 3ms push toward maximum refresh rate.
2728
</p>
28-
<div class="flex items-center gap-4">
29-
<input
30-
type="range"
31-
[(ngModel)]="performance.repaint_delay"
32-
(ngModelChange)="updatePerformance()"
33-
min="1"
34-
max="100"
35-
step="1"
36-
class="flex-1"
37-
/>
38-
<app-number-input
39-
class="w-32 flex-shrink-0"
40-
[(ngModel)]="performance.repaint_delay"
41-
(ngModelChange)="updatePerformance()"
42-
[min]="1"
43-
[max]="500"
44-
/>
45-
</div>
46-
<div class="flex justify-between text-xs text-kitty-text-dim mt-1">
47-
<span>1ms (max FPS, high CPU)</span>
48-
<span>100ms (smooth, low CPU)</span>
49-
</div>
29+
<app-slider-input
30+
[value]="performance.repaint_delay"
31+
(valueChange)="updateNumberPerf('repaint_delay', $event)"
32+
[min]="1" [max]="100" [step]="1"
33+
[labels]="['1ms (max FPS, high CPU)', '100ms (smooth, low CPU)']" />
5034
</div>
5135
5236
<div class="form-group">
@@ -58,24 +42,10 @@ import { NumberInputComponent } from '../../shared/number-input/number-input.com
5842
Milliseconds to wait before processing input. Allows Kitty to batch rapid key events efficiently.
5943
Reduce to 0 for minimum latency in games or fast-typing workflows.
6044
</p>
61-
<div class="flex items-center gap-4">
62-
<input
63-
type="range"
64-
[(ngModel)]="performance.input_delay"
65-
(ngModelChange)="updatePerformance()"
66-
min="0"
67-
max="50"
68-
step="1"
69-
class="flex-1"
70-
/>
71-
<app-number-input
72-
class="w-32 flex-shrink-0"
73-
[(ngModel)]="performance.input_delay"
74-
(ngModelChange)="updatePerformance()"
75-
[min]="0"
76-
[max]="200"
77-
/>
78-
</div>
45+
<app-slider-input
46+
[value]="performance.input_delay"
47+
(valueChange)="updateNumberPerf('input_delay', $event)"
48+
[min]="0" [max]="50" [step]="1" />
7949
</div>
8050
8151
@if (advancedMode()) {
@@ -124,4 +94,9 @@ export class PerformanceFormComponent {
12494
updatePerformance(): void {
12595
this.configStore.updateSection('performance', { ...this.performance });
12696
}
97+
98+
updateNumberPerf(key: keyof KittyPerformanceConfig, value: number): void {
99+
this.performance = { ...this.performance, [key]: value };
100+
this.updatePerformance();
101+
}
127102
}

0 commit comments

Comments
 (0)