Skip to content

Commit e767cec

Browse files
Merge pull request #13 from WildCodeSchool/feature/issue-24/association-card
Feature/issue 24/association card
2 parents 53997fc + 42d9aab commit e767cec

22 files changed

+290
-39
lines changed

package-lock.json

Lines changed: 20 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
"primeng": "^19.0.8",
4545
"rxjs": "~7.8.0",
4646
"tslib": "^2.3.0",
47+
"uuid": "^11.1.0",
4748
"zone.js": "~0.15.0"
4849
},
4950
"devDependencies": {

src/app/app.config.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,15 @@ import { provideHttpClient } from '@angular/common/http';
88
import { providePrimeNG } from 'primeng/config';
99
import { activitiesReducer } from './features/activity/store/activities.reducers';
1010
import { myPreset } from './mytheme';
11+
import { associationsReducer } from './features/association/store/association.reducers';
1112

1213
export const appConfig: ApplicationConfig = {
1314
providers: [
1415
provideZoneChangeDetection({ eventCoalescing: true }),
1516
provideRouter(routes),
1617
provideHttpClient(),
1718
provideAnimationsAsync(),
18-
provideStore({ activities: activitiesReducer }),
19+
provideStore({ activities: activitiesReducer, associations: associationsReducer }),
1920
provideStoreDevtools({ maxAge: 25 }),
2021
providePrimeNG({
2122
theme: {

src/app/app.routes.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
import { Routes } from '@angular/router';
22
import { ActivitiesHomeComponent } from './features/activity/pages/activities-home/activities-home.component';
3-
import { DemoComponent } from './features/activity/pages/demo/demo.component';
3+
import { ActivityDetailsComponent } from './features/activity/pages/activity-details/activity-details.component';
4+
45

56
export const routes: Routes = [
67
{
78
path: '',
89
component: ActivitiesHomeComponent,
910
},
1011
{
11-
path: 'demo',
12-
component: DemoComponent,
12+
path: 'activity/:id',
13+
component: ActivityDetailsComponent,
1314
},
1415
];

src/app/features/activity/components/activity-card/activity-card.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<div class="card">
1+
<div class="card" [routerLink]="['/activity', activity.id]">
22
<img class="activity-image" [src]="apiUrl + activity.image[0]" [alt]="activity.title" />
33
<div class="description-card">
44
<div class="header-description">

src/app/features/activity/components/activity-card/activity-card.component.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
import { Component, Input } from '@angular/core';
22
import { Activity } from '../../models/activity.model';
3+
import { RouterLink } from '@angular/router';
34
import { InscriptionBadgeComponent } from '../inscription-badge/inscription-badge.component';
45
import { FavoriteHeartComponent } from '../favorite-heart/favorite-heart.component';
56
import { environment } from 'src/environments/environment.development';
6-
import { TruncatePipe } from '../../../../common/Pipes/TruncateString.pipe';
7+
import { TruncatePipe } from '../../../../common/pipes/TruncateString.pipe';
78
import { DatePipe } from '@angular/common';
89

910
@Component({
1011
selector: 'app-activity-card',
11-
imports: [InscriptionBadgeComponent, FavoriteHeartComponent, TruncatePipe, DatePipe],
12+
imports: [InscriptionBadgeComponent, FavoriteHeartComponent, TruncatePipe, DatePipe, RouterLink],
1213
templateUrl: './activity-card.component.html',
1314
styleUrl: './activity-card.component.scss',
1415
standalone: true,

src/app/features/activity/models/activity.model.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ export type Localisation = {
66
latitude: number;
77
};
88

9-
export type Association = {
9+
export type AssociationActiviy = {
10+
id: string;
1011
name: string;
1112
isFollow: boolean;
1213
logo: string;
@@ -23,7 +24,8 @@ export class Activity {
2324
title: string = '';
2425
description: string = '';
2526
image: string[] = [];
26-
association: Association = {
27+
association: AssociationActiviy = {
28+
id: '',
2729
name: '',
2830
logo: '',
2931
isFollow: false,
@@ -49,6 +51,7 @@ export class Activity {
4951
this.description = data.description || '';
5052
this.image = data.image || [];
5153
this.association = data.association || {
54+
id: '',
5255
name: '',
5356
logo: '',
5457
isFollow: false,
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<div class="activity-details-page">
2+
<div class="activity"></div>
3+
<div class="association">
4+
<app-association-card [activityId]="activityId"></app-association-card>
5+
</div>
6+
</div>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
.activity-details-page {
2+
display: flex;
3+
height: 80vh;
4+
5+
.activity {
6+
width: 50%;
7+
border: 1px solid black;
8+
}
9+
10+
.association {
11+
width: 50%;
12+
border: 1px solid black;
13+
}
14+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { Component, inject, OnInit } from '@angular/core';
2+
import { AssociationCardComponent } from '../../../association/components/association-card/association-card.component';
3+
import { ActivatedRoute, ParamMap } from '@angular/router';
4+
5+
@Component({
6+
selector: 'app-activity-details',
7+
imports: [AssociationCardComponent],
8+
templateUrl: './activity-details.component.html',
9+
styleUrl: './activity-details.component.scss',
10+
})
11+
export class ActivityDetailsComponent implements OnInit {
12+
route: ActivatedRoute = inject(ActivatedRoute);
13+
activityId!: string;
14+
15+
ngOnInit(): void {
16+
this.route.paramMap.subscribe((params: ParamMap) => {
17+
this.activityId = String(params.get('id'));
18+
});
19+
}
20+
}

0 commit comments

Comments
 (0)