diff --git a/src/app/components/add-expense/add-expense.component.html b/src/app/components/add-expense/add-expense.component.html index e810435..8c2bfde 100644 --- a/src/app/components/add-expense/add-expense.component.html +++ b/src/app/components/add-expense/add-expense.component.html @@ -1,18 +1,44 @@
-
Date
-
Amount
-
Category
-
Merchant
+
+ Date: +
+ +
+ Cents (required): + +
+ +
+ Category (required): + +
- Note + Merchant (optional): +
+
+ Note (optional): +
+ +
Tags
+
diff --git a/src/app/components/add-expense/add-expense.component.scss b/src/app/components/add-expense/add-expense.component.scss index 92fce1a..45d6dd6 100644 --- a/src/app/components/add-expense/add-expense.component.scss +++ b/src/app/components/add-expense/add-expense.component.scss @@ -1,5 +1,5 @@ .add-expense-body { display: flex; - justify-content: space-between; + justify-content: flex-start; gap: 0.5rem; } diff --git a/src/app/components/add-expense/add-expense.component.ts b/src/app/components/add-expense/add-expense.component.ts index 86c8279..fc685de 100644 --- a/src/app/components/add-expense/add-expense.component.ts +++ b/src/app/components/add-expense/add-expense.component.ts @@ -1,14 +1,41 @@ -import { Component } from '@angular/core'; -import {CardComponent} from '../card/card.component'; +import {Component, computed, signal} from '@angular/core'; +import { CardComponent } from '../card/card.component'; +import {Category, CategoryService} from '../../services/category.service'; +import {Merchant, MerchantService} from '../../services/merchant.service'; +import { Tag } from '../../services/tag.service'; +import {form, FormField} from '@angular/forms/signals'; + +interface AddExpenseForm { + date: Date, + amount: number | string, + categoryId: string, + merchantId: string, + note: string, + tags: Tag[] +} @Component({ selector: 'app-add-expense', imports: [ - CardComponent + CardComponent, + FormField ], templateUrl: './add-expense.component.html', styleUrl: './add-expense.component.scss', }) export class AddExpenseComponent { + protected categories = computed(() => this.categoryService.categories()); + protected merchants = computed(() => this.merchantService.merchants()); + private addExpenseModel = signal({ + date: new Date(), + amount: '', + categoryId: '', + merchantId: '', + note: '', + tags: [] + }); + public expenseForm = form(this.addExpenseModel); + public constructor(private readonly categoryService: CategoryService, + private readonly merchantService: MerchantService) { } }