diff --git a/src/src/app/components/trip/trip.component.ts b/src/src/app/components/trip/trip.component.ts index 5093714..0c08515 100644 --- a/src/src/app/components/trip/trip.component.ts +++ b/src/src/app/components/trip/trip.component.ts @@ -1850,7 +1850,8 @@ export class TripComponent implements AfterViewInit { })!; modal.onClose.pipe(take(1)).subscribe({ - next: (notes: string | null) => { + next: (notes: string) => { + if (notes === undefined) return; this.apiService .putTrip({ notes: notes ?? "" }, this.trip!.id) .pipe(take(1)) diff --git a/src/src/app/modals/trip-notes-modal/trip-notes-modal.component.html b/src/src/app/modals/trip-notes-modal/trip-notes-modal.component.html index e23856e..1c07c5b 100644 --- a/src/src/app/modals/trip-notes-modal/trip-notes-modal.component.html +++ b/src/src/app/modals/trip-notes-modal/trip-notes-modal.component.html @@ -1,12 +1,30 @@
+ @if (isEditing) { + } @else { + @if (notes.value) { +
+

{{ notes.value }}

+
+ } @else { +
+

Nothing yet.

+
+ } + }
-
- +
+ @if (isEditing) { + + + } @else { +
+ + }
\ No newline at end of file diff --git a/src/src/app/modals/trip-notes-modal/trip-notes-modal.component.ts b/src/src/app/modals/trip-notes-modal/trip-notes-modal.component.ts index 1e5ee7a..0f9f6b4 100644 --- a/src/src/app/modals/trip-notes-modal/trip-notes-modal.component.ts +++ b/src/src/app/modals/trip-notes-modal/trip-notes-modal.component.ts @@ -1,5 +1,5 @@ import { Component } from "@angular/core"; -import { FormBuilder, FormControl, ReactiveFormsModule } from "@angular/forms"; +import { FormControl, ReactiveFormsModule } from "@angular/forms"; import { ButtonModule } from "primeng/button"; import { DynamicDialogConfig, DynamicDialogRef } from "primeng/dynamicdialog"; import { FloatLabelModule } from "primeng/floatlabel"; @@ -18,11 +18,11 @@ import { TextareaModule } from "primeng/textarea"; styleUrl: "./trip-notes-modal.component.scss", }) export class TripNotesModalComponent { - notes = new FormControl(""); + notes = new FormControl(''); + isEditing: boolean = false; constructor( private ref: DynamicDialogRef, - private fb: FormBuilder, private config: DynamicDialogConfig, ) { if (this.config.data) { @@ -30,6 +30,16 @@ export class TripNotesModalComponent { } } + cancelEditing() { + this.notes.setValue(this.config.data); + this.notes.markAsPristine(); + this.toggleEditing(); + } + + toggleEditing() { + this.isEditing = !this.isEditing; + } + closeDialog() { // Normalize data for API POST this.ref.close(this.notes.value);