diff --git a/src/app/components/add-expense/add-expense.component.html b/src/app/components/add-expense/add-expense.component.html index 8d16c98..00c2249 100644 --- a/src/app/components/add-expense/add-expense.component.html +++ b/src/app/components/add-expense/add-expense.component.html @@ -1,96 +1,65 @@
- + Track new Expense - -
-
- Date: -
+
+ + Date + + + + -
- Cents (required): - -
+ + Cents + + -
- Category (required): - + @for (category of categories(); track category.id) { - + {{ category.name }} } - -
+ + + + + Merchant + + + @for (merchant of merchants(); track merchant.id) { + {{ merchant.name }} + } + +
-
- Merchant (optional): - -
+
+ + Tags + + @for (tag of tags(); track tag.id) { + {{ tag.name }} + } + + -
- 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 9bf429e..a524941 100644 --- a/src/app/components/add-expense/add-expense.component.scss +++ b/src/app/components/add-expense/add-expense.component.scss @@ -1,5 +1,23 @@ -//.add-expense-body { -// display: flex; -// justify-content: flex-start; -// gap: 0.5rem; -//} +.add-expense-header { + padding-bottom: 1rem; +} + +.add-expense-footer { + padding: 0 0 1rem 0.5rem; +} + +.add-expense-dropdowns { + display: flex; + gap: 0.5rem; + justify-content: space-between; +} + +.add-expense-additional { + display: flex; + gap: 0.5rem; + justify-content: space-between; +} + +.add-expense-note { + width: 100%; +} diff --git a/src/app/components/add-expense/add-expense.component.ts b/src/app/components/add-expense/add-expense.component.ts index b0d0ccb..0cde81e 100644 --- a/src/app/components/add-expense/add-expense.component.ts +++ b/src/app/components/add-expense/add-expense.component.ts @@ -1,9 +1,16 @@ -import {Component, computed, signal} from '@angular/core'; -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'; -import {MatCard, MatCardContent, MatCardHeader, MatCardTitle} from '@angular/material/card'; +import { Component, computed, signal } from '@angular/core'; +import { CategoryService } from '../../services/category.service'; +import { MerchantService } from '../../services/merchant.service'; +import { Tag, TagService } from '../../services/tag.service'; +import { form, FormField } from '@angular/forms/signals'; +import { MatCardModule } from '@angular/material/card'; +import { MatInputModule } from '@angular/material/input'; +import { MatDatepickerModule } from '@angular/material/datepicker'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatAutocompleteModule } from '@angular/material/autocomplete'; +import { MatSelectModule } from '@angular/material/select'; +import { MatButtonModule } from '@angular/material/button'; +import { provideNativeDateAdapter } from '@angular/material/core'; interface AddExpenseForm { date: Date, @@ -16,19 +23,15 @@ interface AddExpenseForm { @Component({ selector: 'app-add-expense', - imports: [ - FormField, - MatCard, - MatCardHeader, - MatCardTitle, - MatCardContent - ], + imports: [MatDatepickerModule, MatFormFieldModule, MatInputModule, MatCardModule, MatAutocompleteModule, MatSelectModule, MatButtonModule, FormField], + providers: [provideNativeDateAdapter()], 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()); + protected tags = computed(() => this.tagService.tags()); private addExpenseModel = signal({ date: new Date(), amount: '', @@ -40,5 +43,6 @@ export class AddExpenseComponent { public expenseForm = form(this.addExpenseModel); public constructor(private readonly categoryService: CategoryService, - private readonly merchantService: MerchantService) { } + private readonly merchantService: MerchantService, + private readonly tagService: TagService) { } } diff --git a/src/app/components/expense-list/expense-list.component.ts b/src/app/components/expense-list/expense-list.component.ts index 5a7d57d..08864c8 100644 --- a/src/app/components/expense-list/expense-list.component.ts +++ b/src/app/components/expense-list/expense-list.component.ts @@ -1,37 +1,12 @@ import { Component, computed } from '@angular/core'; import { ExpenseService } from '../../services/expense.service'; -import { - MatCell, - MatCellDef, - MatColumnDef, - MatHeaderCell, - MatHeaderCellDef, - MatHeaderRow, MatHeaderRowDef, MatRow, MatRowDef, - MatTable -} from '@angular/material/table'; -import {CurrencyPipe, DatePipe} from '@angular/common'; -import {MatCard, MatCardContent, MatCardHeader, MatCardTitle} from '@angular/material/card'; +import { MatTableModule } from '@angular/material/table'; +import { CurrencyPipe, DatePipe } from '@angular/common'; +import { MatCardModule } from '@angular/material/card'; @Component({ selector: 'app-expense-list', - imports: [ - MatTable, - MatColumnDef, - MatHeaderCell, - MatHeaderCellDef, - DatePipe, - MatCell, - MatCellDef, - CurrencyPipe, - MatHeaderRow, - MatHeaderRowDef, - MatRow, - MatRowDef, - MatCard, - MatCardHeader, - MatCardTitle, - MatCardContent - ], + imports: [MatTableModule, MatCardModule, DatePipe, CurrencyPipe], templateUrl: './expense-list.component.html', styleUrl: './expense-list.component.scss', })