Skip to content

Commit 0790f7e

Browse files
Copilotrenemadsen
andcommitted
Fix subscription management to prevent memory leaks
Co-authored-by: renemadsen <76994+renemadsen@users.noreply.github.com>
1 parent 52ab26c commit 0790f7e

3 files changed

Lines changed: 12 additions & 12 deletions

File tree

eform-client/src/app/plugins/modules/time-planning-pn/modules/absence-requests/components/absence-requests-actions/absence-requests-approve-modal/absence-requests-approve-modal.component.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { ToastrService } from 'ngx-toastr';
66
import { TranslateService } from '@ngx-translate/core';
77
import { Store } from '@ngrx/store';
88
import { selectCurrentUserId } from 'src/app/state';
9+
import { take } from 'rxjs';
910

1011
@Component({
1112
selector: 'app-absence-requests-approve-modal',
@@ -24,13 +25,12 @@ export class AbsenceRequestsApproveModalComponent implements OnInit {
2425

2526
selectedAbsenceRequest: AbsenceRequestModel;
2627
decisionComment: string = '';
27-
currentUserId: number = null;
28-
public selectCurrentUserId$ = this.store.select(selectCurrentUserId);
28+
currentUserId: number | null = null;
2929

3030
ngOnInit() {
3131
this.selectedAbsenceRequest = { ...this.model.selectedAbsenceRequest };
32-
// Get current user ID
33-
this.selectCurrentUserId$.subscribe((userId) => {
32+
// Get current user ID (take only once)
33+
this.store.select(selectCurrentUserId).pipe(take(1)).subscribe((userId) => {
3434
this.currentUserId = userId;
3535
});
3636
}

eform-client/src/app/plugins/modules/time-planning-pn/modules/absence-requests/components/absence-requests-actions/absence-requests-reject-modal/absence-requests-reject-modal.component.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { ToastrService } from 'ngx-toastr';
66
import { TranslateService } from '@ngx-translate/core';
77
import { Store } from '@ngrx/store';
88
import { selectCurrentUserId } from 'src/app/state';
9+
import { take } from 'rxjs';
910

1011
@Component({
1112
selector: 'app-absence-requests-reject-modal',
@@ -24,13 +25,12 @@ export class AbsenceRequestsRejectModalComponent implements OnInit {
2425

2526
selectedAbsenceRequest: AbsenceRequestModel;
2627
decisionComment: string = '';
27-
currentUserId: number = null;
28-
public selectCurrentUserId$ = this.store.select(selectCurrentUserId);
28+
currentUserId: number | null = null;
2929

3030
ngOnInit() {
3131
this.selectedAbsenceRequest = { ...this.model.selectedAbsenceRequest };
32-
// Get current user ID
33-
this.selectCurrentUserId$.subscribe((userId) => {
32+
// Get current user ID (take only once)
33+
this.store.select(selectCurrentUserId).pipe(take(1)).subscribe((userId) => {
3434
this.currentUserId = userId;
3535
});
3636
}

eform-client/src/app/plugins/modules/time-planning-pn/modules/absence-requests/components/absence-requests-container/absence-requests-container.component.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Component, OnInit, OnDestroy, inject } from '@angular/core';
22
import { TimePlanningPnAbsenceRequestsService } from '../../../../services';
33
import { AbsenceRequestModel } from '../../../../models';
4-
import { Subscription } from 'rxjs';
4+
import { Subscription, take } from 'rxjs';
55
import { MatDialog } from '@angular/material/dialog';
66
import { Overlay } from '@angular/cdk/overlay';
77
import { AutoUnsubscribe } from 'ngx-auto-unsubscribe';
@@ -27,12 +27,12 @@ export class AbsenceRequestsContainerComponent implements OnInit, OnDestroy {
2727
absenceRequests: AbsenceRequestModel[] = [];
2828
getAbsenceRequests$: Subscription;
2929
currentView: 'inbox' | 'mine' = 'inbox';
30-
currentUserId: number = null;
31-
public selectCurrentUserId$ = this.store.select(selectCurrentUserId);
30+
currentUserId: number | null = null;
31+
selectCurrentUserIdSub$: Subscription;
3232

3333
ngOnInit(): void {
3434
// Subscribe to current user ID
35-
this.selectCurrentUserId$.subscribe((userId) => {
35+
this.selectCurrentUserIdSub$ = this.store.select(selectCurrentUserId).subscribe((userId) => {
3636
this.currentUserId = userId;
3737
if (this.currentUserId) {
3838
this.loadAbsenceRequests();

0 commit comments

Comments
 (0)