Skip to content

Commit 064706c

Browse files
nestorhugoguiseek
authored andcommitted
fix(event): bloqueia no frontend a confirmação de presença quando limite for atingido
closed #132
1 parent 32217ca commit 064706c

File tree

5 files changed

+30
-5
lines changed

5 files changed

+30
-5
lines changed

packages/event/feature-page/src/lib/containers/event-page/event-page.container.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,17 @@ <h3>
3636
</header>
3737

3838
<section class="event-page-content">
39+
@if (rsvpFacade.response$ | async; as presences){
3940
<form class="rsvp-button" [formGroup]="form">
4041
<devmx-rsvp-button
4142
class="rsvp-button"
4243
formControlName="status"
4344
(statusChange)="onStatusChange()"
45+
[maxAttendees]="event.maxAttendees ?? 0"
46+
[attendees]="presences.length"
4447
/>
4548
</form>
49+
}
4650

4751
<mat-tab-group mat-stretch-tabs="false" mat-align-tabs="start">
4852
<mat-tab label="Descrição">

packages/event/feature-shell/src/lib/containers/event-details/event-defails.container.html

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@
6767
</a>
6868
</mat-card-content>
6969

70-
7170
@if (event.presentations.length) {
7271
<mat-list>
7372
<h3 mat-subheader>Apresentações</h3>
@@ -98,12 +97,16 @@ <h3 mat-subheader>Organizadores</h3>
9897
<devmx-rsvp-button
9998
formControlName="status"
10099
(statusChange)="onStatusChange()"
100+
[attendees]="presences.length"
101+
[maxAttendees]="event.maxAttendees ?? 0"
101102
/>
102103
</form>
103104

104105
<mat-list>
105-
<h3 mat-subheader>Presenças</h3>
106-
106+
<div class="presences">
107+
<h3 mat-subheader>Presenças</h3>
108+
<p>{{ presences.length }} / {{ event.maxAttendees }}</p>
109+
</div>
107110
@for (rsvp of presences; track rsvp) {
108111
<mat-list-item>
109112
<img

packages/event/feature-shell/src/lib/containers/event-details/event-defails.container.scss

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,13 @@
3636
}
3737
}
3838

39+
.presences {
40+
display: flex;
41+
align-items: baseline;
42+
justify-content: space-between;
43+
padding-right: 1rem;
44+
}
45+
3946
.rsvp-button {
4047
padding: 1em;
4148
}

packages/event/ui-shared/src/lib/components/rsvp-button/rsvp-button.component.html

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,15 @@
33
(change)="statusChange.emit()"
44
aria-label="Presença"
55
class="button-group"
6+
[matTooltip]="'O evento chegou ao limite de participantes'"
7+
[matTooltipDisabled]="attendees() < maxAttendees()"
68
>
7-
<mat-button-toggle value="confirmed">Vou!</mat-button-toggle>
9+
<mat-button-toggle
10+
[disabled]="attendees() >= maxAttendees()"
11+
value="confirmed"
12+
>
13+
Vou!
14+
</mat-button-toggle>
815
<mat-button-toggle value="declined">Não vou</mat-button-toggle>
916
<mat-button-toggle value="maybe">Talvez</mat-button-toggle>
1017
</mat-button-toggle-group>

packages/event/ui-shared/src/lib/components/rsvp-button/rsvp-button.component.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ import {
77
Renderer2,
88
ElementRef,
99
ChangeDetectionStrategy,
10+
input,
1011
} from '@angular/core';
12+
import { MatTooltipModule } from '@angular/material/tooltip';
1113
import {
1214
NgControl,
1315
FormControl,
@@ -20,9 +22,11 @@ import {
2022
templateUrl: './rsvp-button.component.html',
2123
styleUrl: './rsvp-button.component.scss',
2224
changeDetection: ChangeDetectionStrategy.OnPush,
23-
imports: [ReactiveFormsModule, MatButtonToggleModule],
25+
imports: [ReactiveFormsModule, MatButtonToggleModule, MatTooltipModule],
2426
})
2527
export class RSVPButtonComponent extends DefaultValueAccessor {
28+
attendees = input<number>(0);
29+
maxAttendees = input<number>(0);
2630
statusChange = output<void>();
2731

2832
get control() {

0 commit comments

Comments
 (0)