some stuff idk what is it😂

This commit is contained in:
Just-Simon-Dev committed 2023-05-27 04:00:16 +02:00
1 parent 9216dd0726
commit 972b7f292c
6 files changed
+64 -4

No files matched your search

@@ -1,5 +1,8 @@
import { CommentModel } from './comment.model'; import { CommentModel } from './comment.model';
export interface SolutionModel { export interface SolutionModel {
comments: CommentModel[]; title: string,
description: string,
comments: CommentModel[],
createdAt: Date
} }
@@ -1 +1,4 @@
<p>solutions works!</p> <div *ngFor="let solution of solutions$ | async">
{{solution.title}}
</div>
gv gvghv
@@ -1,10 +1,22 @@
import { Component } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { Store } from '@ngrx/store';
import { EMPTY, Observable } from 'rxjs';
import { SolutionModel } from 'src/app/models/solution.model';
import { receiveAllIssuesAction } from 'src/app/store/actions/issue.actions';
import { selectAllSolutions } from 'src/app/store/selectors/issue.selectors';
import { SolutionsModule } from './solutions.module';
@Component({ @Component({
selector: 'app-solutions', selector: 'app-solutions',
templateUrl: './solutions.component.html', templateUrl: './solutions.component.html',
styleUrls: ['./solutions.component.scss'] styleUrls: ['./solutions.component.scss']
}) })
export class SolutionsComponent { export class SolutionsComponent implements OnInit {
solutions$: Observable<SolutionModel[]> = EMPTY
constructor(private store: Store){}
ngOnInit(): void {
this.store.dispatch(receiveAllIssuesAction())
this.solutions$ = this.store.select(selectAllSolutions)
} }
}
@@ -0,0 +1,32 @@
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { map } from 'rxjs';
import { SolutionModel } from '../models/solution.model';
import { CommentModel } from '../models/comment.model';
@Injectable({
providedIn: 'root',
})
export class IssueService {
constructor(private http: HttpClient) {}
getSolutions(id: string) {
return this.http.get<SolutionDto[]>('/issue/'+id+'/solution').pipe(
map<SolutionDto[], SolutionModel[]>((solution) =>
solution.map((solution) => ({
title: solution.title,
description: solution.description,
comments: solution.comments,
createdAt: solution.createdAt
}))
)
);
}
}
interface SolutionDto {
title: string,
description: string,
comments: CommentModel[],
createdAt: Date
}
@@ -24,6 +24,12 @@ const initialState: IssueState = {
photos: [], photos: [],
status: 'new', status: 'new',
type: 'problem', type: 'problem',
solution: {
comments: [],
createdAt: new Date(),
description: "eoooo",
title: "title"
},
comments: [], comments: [],
}, },
{ {
@@ -1,5 +1,7 @@
import { createFeatureSelector, createSelector } from '@ngrx/store'; import { createFeatureSelector, createSelector } from '@ngrx/store';
import { IssueState } from '../state/issue.state'; import { IssueState } from '../state/issue.state';
import { SolutionModel } from 'src/app/models/solution.model';
import { IssueModel } from 'src/app/models/issue.model';
const selectIssueFeatureState = createFeatureSelector<IssueState>('issueState'); const selectIssueFeatureState = createFeatureSelector<IssueState>('issueState');
@@ -12,3 +14,5 @@ export const selectIssue = (id: string) =>
createSelector(selectAllIssues, (issues) => createSelector(selectAllIssues, (issues) =>
issues.find((issue) => issue.id === id) issues.find((issue) => issue.id === id)
); );
export const selectAllSolutions = createSelector<any, IssueModel[], SolutionModel[]>(selectAllIssues, issues => issues.map(issue => issue.solution).filter(solution => solution !== undefined) as SolutionModel[])