pass variable to parrent component

This commit is contained in:
Chneemann 2024-04-08 07:41:29 +02:00
parent af28af304e
commit 3b13e30b11
4 changed files with 43 additions and 4 deletions

View file

@ -72,7 +72,24 @@
<app-assigned <app-assigned
[filteredUsers]="filteredUsers" [filteredUsers]="filteredUsers"
[searchInput]="searchInput" [searchInput]="searchInput"
></app-assigned> (assignedChange)="receiveAssigned($event)"
>
></app-assigned
>
}
</div>
<div class="assigned-badget">
@for (user of taskData.assigned; track user ) {
<div
class="circle"
[ngStyle]="{
'background-color': firebaseService.getUserDetails(user, 'color')
}"
>
<div class="initials">
{{ firebaseService.getUserDetails(user, "initials") }}
</div>
</div>
} }
</div> </div>
</div> </div>

View file

@ -4,6 +4,7 @@ import { FormsModule, NgForm, NgModel } from '@angular/forms';
import { AssignedComponent } from './assigned/assigned.component'; import { AssignedComponent } from './assigned/assigned.component';
import { User } from '../../interfaces/user.interface'; import { User } from '../../interfaces/user.interface';
import { FirebaseService } from '../../services/firebase.service'; import { FirebaseService } from '../../services/firebase.service';
import { TaskData } from '../../interfaces/task-data.interface';
@Component({ @Component({
selector: 'app-add-task', selector: 'app-add-task',
@ -23,10 +24,11 @@ export class AddTaskComponent {
searchValue: string = ''; searchValue: string = '';
searchInput: boolean = false; searchInput: boolean = false;
filteredUsers: User[] = []; filteredUsers: User[] = [];
parentAssigned: string[] = [];
constructor(public firebaseService: FirebaseService) {} constructor(public firebaseService: FirebaseService) {}
taskData = { taskData: TaskData = {
title: '', title: '',
description: '', description: '',
date: this.currentDate, date: this.currentDate,
@ -35,6 +37,10 @@ export class AddTaskComponent {
assigned: [], assigned: [],
}; };
receiveAssigned(assigned: string[]) {
this.taskData.assigned = assigned;
}
ngOnInit() { ngOnInit() {
const storedTaskData = localStorage.getItem('taskData'); const storedTaskData = localStorage.getItem('taskData');
if (storedTaskData) { if (storedTaskData) {

View file

@ -1,24 +1,31 @@
import { Component, Input } from '@angular/core'; import { Component, EventEmitter, Input, Output } from '@angular/core';
import { FirebaseService } from '../../../services/firebase.service'; import { FirebaseService } from '../../../services/firebase.service';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { User } from '../../../interfaces/user.interface'; import { User } from '../../../interfaces/user.interface';
import { AddTaskComponent } from '../add-task.component';
@Component({ @Component({
selector: 'app-assigned', selector: 'app-assigned',
standalone: true, standalone: true,
imports: [CommonModule], imports: [CommonModule, AddTaskComponent],
templateUrl: './assigned.component.html', templateUrl: './assigned.component.html',
styleUrl: './assigned.component.scss', styleUrl: './assigned.component.scss',
}) })
export class AssignedComponent { export class AssignedComponent {
@Input() filteredUsers: User[] = []; @Input() filteredUsers: User[] = [];
@Input() searchInput: boolean = false; @Input() searchInput: boolean = false;
@Output() assignedChange = new EventEmitter<string[]>();
assigned: string[] = []; assigned: string[] = [];
constructor(public firebaseService: FirebaseService) { constructor(public firebaseService: FirebaseService) {
this.loadTaskAssigedData(); this.loadTaskAssigedData();
} }
updateAssigned() {
this.assignedChange.emit(this.assigned);
}
addAssignedToTask(userId: string) { addAssignedToTask(userId: string) {
if (!this.assigned.includes(userId)) { if (!this.assigned.includes(userId)) {
this.assigned.push(userId); this.assigned.push(userId);
@ -26,6 +33,7 @@ export class AssignedComponent {
this.assigned.splice(this.assigned.indexOf(userId), 1); this.assigned.splice(this.assigned.indexOf(userId), 1);
} }
this.saveTaskData(); this.saveTaskData();
this.updateAssigned();
} }
saveTaskData() { saveTaskData() {

View file

@ -0,0 +1,8 @@
export interface TaskData {
title: string;
description: string;
date: string;
priority: string;
category: string;
assigned: string[];
}