Skip to content

Commit ee94264

Browse files
committed
code cleanup
1 parent ae24f51 commit ee94264

9 files changed

Lines changed: 30 additions & 40 deletions

MyApp.Client/src/app/bookings/booking-create.component.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@
4040
<div class="flex justify-between">
4141
<div></div>
4242
<div class="flex gap-x-4">
43-
<secondary-button (click)="cancel()">
44-
Cancel
43+
<secondary-button (click)="close()">
44+
Close
4545
</secondary-button>
4646
<primary-button type="submit" [disabled]="api.loading()">
4747
{{ api.loading() ? 'Saving...' : 'Create Booking' }}

MyApp.Client/src/app/bookings/booking-create.component.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ import { ApiState, provideApiState, tailwindComponents } from 'src/components';
1212
@Component({
1313
selector: 'app-booking-create',
1414
templateUrl: './booking-create.component.html',
15-
providers: [
16-
...provideApiState()
17-
],
15+
providers: [
16+
...provideApiState()
17+
],
1818
imports: [
1919
CommonModule,
2020
FormsModule,
@@ -52,7 +52,7 @@ export class BookingCreateComponent {
5252
this.api.complete(api.error);
5353
}
5454

55-
cancel(): void {
55+
close(): void {
5656
// Navigate back without saving
5757
this.router.navigate(['/bookings']);
5858
}

MyApp.Client/src/app/bookings/booking-list.component.html

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11
<app-page title="Bookings" class="max-w-6xl">
22

3-
@if (error()) {
4-
<error-summary [status]="error()"></error-summary>
5-
}
3+
<form-loading text="Loading Bookings..."></form-loading>
4+
<error-summary></error-summary>
65

76
<div class="my-2 flex justify-end">
87
<primary-button (click)="navigateToCreate()">New Booking</primary-button>
98
</div>
109

11-
@if (loading()) {
12-
<form-loading [loading]="loading()" text="Loading Bookings..."></form-loading>
13-
}
1410
@if (allBookings().length > 0) {
1511
<data-grid [items]="allBookings()"
1612
[visibleFrom]="{ name:'xl', bookingStartDate:'sm', bookingEndDate:'xl' }"
@@ -80,7 +76,6 @@
8076
</data-grid>
8177
}
8278
@else {
83-
<!-- No bookings message -->
8479
<div class="text-center py-4 bg-gray-50 rounded-md">
8580
<p class="text-gray-500">No bookings found</p>
8681
</div>

MyApp.Client/src/app/bookings/booking-list.component.ts

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,18 @@ import { JsonServiceClient, ResponseStatus } from '@servicestack/client';
66
import { Booking, QueryBookings } from 'src/dtos';
77
import { SrcPageComponent } from 'src/shared/src-page.component';
88
import { PageComponent } from '../page.component';
9-
import { tailwindComponents } from 'src/components';
9+
import { ApiState, provideApiState, tailwindComponents } from 'src/components';
1010

1111
@Component({
1212
selector: 'app-booking-list',
1313
templateUrl: './booking-list.component.html',
14+
providers: [
15+
...provideApiState()
16+
],
1417
imports: [
15-
CommonModule,
18+
CommonModule,
1619
FormsModule,
17-
DatePipe,
20+
DatePipe,
1821
CurrencyPipe,
1922
PageComponent,
2023
SrcPageComponent,
@@ -24,30 +27,26 @@ import { tailwindComponents } from 'src/components';
2427
export class BookingListComponent implements OnInit {
2528
private router = inject(Router);
2629
private client = inject(JsonServiceClient);
30+
api = inject(ApiState);
2731

2832
// Signals for state
2933
allBookings = signal<Booking[]>([]);
30-
31-
loading = signal<boolean>(true);
32-
error = signal<ResponseStatus | undefined>(undefined);
3334

3435
ngOnInit(): void {
3536
this.loadBookings();
3637
}
3738

3839
async loadBookings(): Promise<void> {
39-
this.loading.set(true);
40-
this.error.set(undefined);
40+
this.api.begin();
4141

4242
const api = await this.client.api(new QueryBookings({
43-
orderByDesc:'BookingStartDate',
43+
orderByDesc: 'BookingStartDate',
4444
}));
4545
if (api.succeeded) {
4646
this.allBookings.set(api.response!.results);
47-
} else if (api.error) {
48-
this.error.set(api.error);
4947
}
50-
this.loading.set(false);
48+
49+
this.api.complete(api.error);
5150
}
5251

5352
navigateToCreate(): void {

MyApp.Client/src/app/signin/signin.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export class SignInComponent implements OnInit {
2929
private router = inject(Router);
3030
private route = inject(ActivatedRoute);
3131
private authService = inject(AuthService);
32-
client = inject(JsonServiceClient);
32+
private client = inject(JsonServiceClient);
3333
api = inject(ApiState);
3434

3535
request = signal<Authenticate>(new Authenticate({

MyApp.Client/src/app/signup/signup.component.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,6 @@ export class SignUpComponent {
7676

7777
this.api.begin();
7878

79-
8079
const api = await this.client.api(request);
8180
if (api.succeeded) {
8281
await this.authService.revalidate();

MyApp.Client/src/app/todomvc/todos.component.html

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<app-page title="Todos Application" class="max-w-lg">
22
<div class="px-6 py-4">
3-
<!-- Loading and Error States -->
43
@if (loading) {
54
<div class="flex justify-center mb-4">
65
<div class="animate-spin rounded-full h-6 w-6 border-b-2 border-gray-900"></div>
@@ -27,7 +26,6 @@
2726
</div>
2827

2928
@if (filteredTodos.length > 0) {
30-
<!-- Todo List -->
3129
<ul class="divide-y divide-gray-200">
3230
@for (todo of filteredTodos; track todo.id) {
3331
<li class="py-3 flex items-center group">
@@ -71,7 +69,6 @@
7169
}
7270

7371
@if (todos.length === 0 && !loading) {
74-
<!-- Empty State -->
7572
<div class="py-6 text-center text-gray-500">
7673
<p>No todos yet. Add one above!</p>
7774
</div>

MyApp.Client/src/app/app.component.spec.ts renamed to MyApp.Client/src/app/weather/weather.component.spec.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,29 @@
11
import { HttpTestingController, provideHttpClientTesting } from '@angular/common/http/testing';
22
import { ComponentFixture, TestBed } from '@angular/core/testing';
33
import { provideHttpClient } from '@angular/common/http';
4-
import { AppComponent } from './app.component';
54
import { ApiHttpClient } from 'src/components/services/api-http-client.service';
5+
import { WeatherComponent } from './weather.component';
6+
import { tailwindComponents } from 'src/components';
67

7-
describe('AppComponent', () => {
8-
let component: AppComponent;
9-
let fixture: ComponentFixture<AppComponent>;
8+
describe('WeatherComponent', () => {
9+
let component: WeatherComponent;
10+
let fixture: ComponentFixture<WeatherComponent>;
1011
let httpMock: HttpTestingController;
1112

1213
beforeEach(async () => {
1314
await TestBed.configureTestingModule({
14-
imports:[AppComponent],
15+
imports:[WeatherComponent],
1516
providers:[
1617
provideHttpClient(),
1718
provideHttpClientTesting(),
1819
ApiHttpClient,
20+
...tailwindComponents(),
1921
]
2022
}).compileComponents();
2123
});
2224

2325
beforeEach(() => {
24-
fixture = TestBed.createComponent(AppComponent);
26+
fixture = TestBed.createComponent(WeatherComponent);
2527
component = fixture.componentInstance;
2628
httpMock = TestBed.inject(HttpTestingController);
2729
});

MyApp.Client/src/app/weather/weather.component.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,17 @@ import { Component, inject, OnInit } from '@angular/core';
22
import { Forecast, GetWeatherForecast, ResponseStatus } from 'src/dtos';
33
import { ApiHttpClient } from 'src/components/services/api-http-client.service';
44
import { PageComponent } from "../page.component";
5-
import { ErrorSummaryComponent } from 'src/components/error-summary.component';
6-
import { DataGridComponent } from 'src/components/data-grid.component';
75
import { SrcPageComponent } from 'src/shared/src-page.component';
86
import { DatePipe } from '@angular/common';
7+
import { tailwindComponents } from 'src/components';
98

109
@Component({
1110
selector: 'weather',
1211
imports: [
1312
DatePipe,
1413
PageComponent,
15-
DataGridComponent,
16-
ErrorSummaryComponent,
1714
SrcPageComponent,
15+
...tailwindComponents(),
1816
],
1917
templateUrl: './weather.component.html'
2018
})

0 commit comments

Comments
 (0)