Skip to content

Commit 297fd53

Browse files
authored
Optimize code patterns from recent commits: eliminate duplication, modernize syntax, fix async handling (#7)
1 parent fdc08f8 commit 297fd53

5 files changed

Lines changed: 31 additions & 31 deletions

File tree

PhantomDave.BankTracking.Api/Services/FinanceRecordService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ private static string NormalizeDescription(string? description)
182182
}
183183

184184
var trimmed = description.Trim();
185-
return trimmed.Length <= 500 ? trimmed : trimmed.Substring(0, 500);
185+
return trimmed.Length <= 500 ? trimmed : trimmed[..500];
186186
}
187187

188188
private static DateTime EnsureUtc(DateTime value)

frontend/codegen.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ if (!token) {
127127
}
128128

129129
const config: CodegenConfig = {
130-
schema: buildSchemaConfig(token),
130+
schema: process.env.USE_LOCAL_SCHEMA === 'true' ? './schema.graphql' : buildSchemaConfig(token),
131131
documents: ['src/**/*.graphql'],
132132
generates: {
133133
'./src/generated/graphql.ts': {

frontend/src/app/components/configurator/add-entry/add-entry.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';
1+
import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
22
import { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';
33
import { toSignal } from '@angular/core/rxjs-interop';
44
import { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';
@@ -67,13 +67,11 @@ export class AddEntry {
6767
recurrenceEndDate: [this.initialValue.recurrenceEndDate],
6868
});
6969

70-
private readonly formInvalidSignal = toSignal(
70+
readonly isSubmitDisabled = toSignal(
7171
this.financeRecordForm.statusChanges.pipe(map(() => this.financeRecordForm.invalid)),
7272
{ initialValue: this.financeRecordForm.invalid },
7373
);
7474

75-
readonly isSubmitDisabled = computed(() => this.formInvalidSignal());
76-
7775
readonly isRecurringSignal = toSignal(this.financeRecordForm.controls.recurring.valueChanges, {
7876
initialValue: this.initialValue.recurring,
7977
});

frontend/src/app/components/configurator/configurator-component/configurator-component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@ class ConfiguratorComponent implements OnInit {
4444
panelClass: 'add-entry-dialog',
4545
});
4646

47-
dialogRef.afterClosed().subscribe((result: FinanceRecord | undefined) => {
47+
dialogRef.afterClosed().subscribe(async (result: FinanceRecord | undefined) => {
4848
if (result) {
49-
this.financeRecordService.createFinanceRecord(result);
49+
await this.financeRecordService.createFinanceRecord(result);
5050
}
5151
});
5252
}

frontend/src/app/models/finance-record/finance-record-service.ts

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ export class FinanceRecordService {
3838
amount: record.amount,
3939
currency: record.currency,
4040
date: record.date.toISOString(),
41-
recurrenceFrequency: record.recurrenceFrequency ?? RecurrenceFrequency.NONE,
41+
recurrenceFrequency: record.recurrenceFrequency,
4242
recurrenceEndDate: record.recurrenceEndDate
4343
? record.recurrenceEndDate.toISOString()
4444
: undefined,
@@ -47,34 +47,36 @@ export class FinanceRecordService {
4747
}),
4848
);
4949

50-
if (result) {
51-
this._selectedFinanceRecord.set({
52-
id: result.data?.createFinanceRecord.id ?? 0,
53-
name: result.data?.createFinanceRecord.name ?? '',
54-
description: result.data?.createFinanceRecord.description ?? '',
55-
amount: result.data?.createFinanceRecord.amount ?? 0,
56-
currency: result.data?.createFinanceRecord.currency ?? '',
57-
date: new Date(result.data?.createFinanceRecord.date ?? ''),
58-
recurring: result.data?.createFinanceRecord.isRecurring ?? false,
59-
});
60-
this._financeRecords.update((prev) => [
61-
...prev,
62-
{
63-
id: result.data?.createFinanceRecord.id ?? 0,
64-
name: result.data?.createFinanceRecord.name ?? '',
65-
description: result.data?.createFinanceRecord.description ?? '',
66-
amount: result.data?.createFinanceRecord.amount ?? 0,
67-
currency: result.data?.createFinanceRecord.currency ?? '',
68-
date: new Date(result.data?.createFinanceRecord.date ?? ''),
69-
recurring: result.data?.createFinanceRecord.isRecurring ?? false,
70-
},
71-
]);
50+
if (result?.data?.createFinanceRecord) {
51+
const newRecord = this.mapToFinanceRecord(result.data.createFinanceRecord);
52+
this._selectedFinanceRecord.set(newRecord);
53+
this._financeRecords.update((prev) => [...prev, newRecord]);
7254
} else {
7355
this._error.set('Failed to create finance record');
7456
}
7557
this._loading.set(false);
7658
}
7759

60+
private mapToFinanceRecord(data: {
61+
id: number;
62+
name: string;
63+
description: string;
64+
amount: number;
65+
currency: string;
66+
date: any;
67+
isRecurring: boolean;
68+
}): FinanceRecord {
69+
return {
70+
id: data.id,
71+
name: data.name,
72+
description: data.description,
73+
amount: data.amount,
74+
currency: data.currency,
75+
date: new Date(data.date),
76+
recurring: data.isRecurring,
77+
};
78+
}
79+
7880
async getFinanceRecords(): Promise<void> {
7981
this._loading.set(true);
8082
this._error.set(null);

0 commit comments

Comments
 (0)