aboutsummaryrefslogtreecommitdiff
path: root/ufund-ui/src/app/components/need-list/need-list.component.ts
diff options
context:
space:
mode:
authorbenal01 <bja4245@rit.edu>2025-03-20 09:58:32 -0400
committerbenal01 <bja4245@rit.edu>2025-03-20 09:58:32 -0400
commit8ec987f46b4ef3ff1ce23d9942662a74e162689d (patch)
tree0e570fb516788bbc59445dff7d38d114f805e805 /ufund-ui/src/app/components/need-list/need-list.component.ts
parent35d7c971ed47718d4dc5738edb09d62cd780dac4 (diff)
downloadJellySolutions-8ec987f46b4ef3ff1ce23d9942662a74e162689d.tar.gz
JellySolutions-8ec987f46b4ef3ff1ce23d9942662a74e162689d.tar.bz2
JellySolutions-8ec987f46b4ef3ff1ce23d9942662a74e162689d.zip
need-list search embedded in normal display with better feedback
Diffstat (limited to '')
-rw-r--r--ufund-ui/src/app/components/need-list/need-list.component.ts60
1 files changed, 31 insertions, 29 deletions
diff --git a/ufund-ui/src/app/components/need-list/need-list.component.ts b/ufund-ui/src/app/components/need-list/need-list.component.ts
index 25f05d6..f5d7855 100644
--- a/ufund-ui/src/app/components/need-list/need-list.component.ts
+++ b/ufund-ui/src/app/components/need-list/need-list.component.ts
@@ -1,4 +1,5 @@
import { Component } from '@angular/core';
+import { NgForm } from '@angular/forms';
import {Need} from '../../models/Need';
import {CupboardService} from '../../services/cupboard.service';
import { UsersService } from '../../services/users.service';
@@ -19,12 +20,16 @@ export class NeedListComponent {
) {}
refresh() {
- this.cupboardService.getNeeds().subscribe(n => this.needs = n)
+ this.cupboardService.getNeeds().subscribe(n => {
+ this.needs = n;
+ this.searchResults = this.needs;
+ });
+
+ console.log(this.searchResults);
}
ngOnInit(): void {
this.refresh()
-
this.close();
}
@@ -42,20 +47,13 @@ export class NeedListComponent {
}
}
- private updateSearchStatus(text: string) {
- let element = document.getElementById('search-status');
- if (element) {
- element.innerHTML = text;
- }
- }
-
open() {
this.hideElement(document.getElementById('search-button'));
- this.showElement(document.getElementById('search-form'));
+ this.showElement(document.getElementById('search-container'));
}
close() {
- this.hideElement(document.getElementById('search-form'));
+ this.hideElement(document.getElementById('search-container'));
this.showElement(document.getElementById('search-button'));
this.hideElement(document.getElementById('search-status'));
}
@@ -69,24 +67,28 @@ export class NeedListComponent {
if (this.searchDelay) {
clearTimeout(this.searchDelay);
}
+ if (form) {
+ this.searchDelay = setTimeout(() => {
+
+ if (form) {
+ const currentSearchValue = form.search; //latest value of the search
+ this.cupboardService.searchNeeds(currentSearchValue).subscribe((n) => {
+ this.searchResults = n;
+ console.log(currentSearchValue, this.searchResults);
+ this.showElement(document.getElementById('search-results'));
+ this.showElement(document.getElementById('search-status'));
+ });
+ }
+ }, 250);
+ } else {
+ //user has cleared the search bar, we can skip the timeout for a 1/4 second faster response
+ //clear timeout to stop pending search
+ clearTimeout(this.searchDelay);
+ this.searchResults = this.needs;
+ }
+
- this.searchDelay = setTimeout(() => {
- const currentSearchValue = form.search; //latest value of the search
- this.cupboardService.searchNeeds(currentSearchValue).subscribe((n) => {
- this.searchResults = n;
- console.log(currentSearchValue, this.searchResults);
- this.showElement(document.getElementById('search-results'));
- this.showElement(document.getElementById('search-status'));
- if (this.searchResults.length === this.needs.length) {
- this.updateSearchStatus("Please refine your search");
- this.searchResults = [];
- } else if (this.searchResults.length === 0) {
- this.updateSearchStatus("No results found");
- } else {
- this.updateSearchStatus("Search results:");
- }
- });
- }, 250);
+
}
delete(id : number) {
@@ -127,6 +129,6 @@ export class NeedListComponent {
}
back() {
- this.searchResults = [];
+ this.searchResults = this.needs;
}
}