diff options
Diffstat (limited to 'ufund-ui/src/app/components')
| -rw-r--r-- | ufund-ui/src/app/components/funding-basket/funding-basket.component.ts | 71 | ||||
| -rw-r--r-- | ufund-ui/src/app/components/need-list/need-list.component.ts | 6 | 
2 files changed, 12 insertions, 65 deletions
diff --git a/ufund-ui/src/app/components/funding-basket/funding-basket.component.ts b/ufund-ui/src/app/components/funding-basket/funding-basket.component.ts index dd68c0c..bc7f087 100644 --- a/ufund-ui/src/app/components/funding-basket/funding-basket.component.ts +++ b/ufund-ui/src/app/components/funding-basket/funding-basket.component.ts @@ -5,6 +5,7 @@ import { Need } from '../../models/Need';  import { NeedListComponent } from '../need-list/need-list.component';  import { Router } from '@angular/router';  import { CupboardService } from '../../services/cupboard.service'; +import { BehaviorSubject, firstValueFrom } from 'rxjs';  @Component({      selector: 'app-funding-basket', @@ -12,80 +13,26 @@ import { CupboardService } from '../../services/cupboard.service';      templateUrl: './funding-basket.component.html',      styleUrl: './funding-basket.component.css'  }) -export class FundingBasketComponent implements -  OnInit { -  user!: User; -  needs: Need[] = []; -  basket: Need[] = []; -  needCount = 0; -  need_quantity: {[key: number]: number} = {}; +export class FundingBasketComponent implements OnInit { +  basket = new BehaviorSubject<Need[]>([]);    constructor(      private router: Router, -      private cupboardService: CupboardService, private usersService: UsersService +    private cupboardService: CupboardService,  +    private usersService: UsersService    ) {} +  // this is for login rerouting    ngOnInit(): void {      if (!this.usersService.getCurrentUser()) {        this.router.navigate(['/login'], {queryParams: {redir: this.router.url}});        return;      } -    this.cupboardService.getNeeds().subscribe(n => this.needs = n) -    const currentUser = this.usersService.getCurrentUser(); -    if (currentUser) { -      this.user = currentUser; -    } -    this.getBasketNeeds(); -  } - -    getBasketNeeds(): void { -        if (this.user && this.user.basket) { -            this.user.basket.forEach(need => { -                // if (this.isInBasket(need)) { -                //     this.basket.push(need); -                // } -            }); -        } -    } -    isInBasket(need: Need): boolean { -        return this.basket.includes(need) -    } - -    addNeed(need: Need, quantity: number = 1): void { -        if (this.user && !this.isInBasket(need)) { -            this.basket.push(need); -            this.need_quantity[need.id] = quantity; -        } -        if (this.isInBasket(need)) { -            this.need_quantity[need.id] += quantity; -        } -        this.needCount++; -    } - -    removeNeed(need: Need, quantity: number = 1): void { -        if (this.user && this.isInBasket(need)) { -            this.need_quantity[need.id] -= quantity; -            if (this.need_quantity[need.id] === 0) { -                this.basket = this.basket.filter(n => need.id !== n.id); -            } -            this.needCount--; -        } -    } +    this.usersService.refreshBasket(); +    // this.usersService.removeNeed(); <- call this to remove +  } -    removeAllNeeds(): void { -        this.basket.forEach(need => { -            this.need_quantity = []; -        }); -        this.basket = []; -        this.needCount = 0; -    } -    isBasketEmpty(): boolean { -        return this.needCount === 0; -    } -    checkout(): void { -        this.removeAllNeeds(); -    }  } 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 46e09f0..2764c7e 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 @@ -107,12 +107,12 @@ export class NeedListComponent {    add(need: Need) {      const currentUser = this.usersService.getCurrentUser(); -    console.log("get current user in angular:", currentUser) +    //console.log("get current user in angular:", currentUser)      if (currentUser) {        currentUser.basket.push(need.id); -      console.log("pushed to basket: " + currentUser.basket) +      //console.log("pushed to basket: " + currentUser.basket)        this.usersService.updateUser(currentUser).subscribe(() => { -        console.log("rah"); +        this.usersService.refreshBasket();          error: (err: any) => {            console.error(err);          }  | 
