Skip to content

Commit f193b2b

Browse files
authored
Code improvements (#740)
## Summary of Changes 1. Add missing `destroyRef`for `takeUntilDestroyed`. 2. Renamed analytics service to avoid duplication of services.
1 parent 7e51838 commit f193b2b

File tree

14 files changed

+58
-27
lines changed

14 files changed

+58
-27
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
export { AnalyticsService } from './analytics.service';
1+
export { ResourceAnalyticsService } from './resource-analytics.service';

src/app/features/analytics/services/analytics.service.ts renamed to src/app/features/analytics/services/resource-analytics.service.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,19 @@ import { map, Observable } from 'rxjs';
33
import { inject, Injectable } from '@angular/core';
44

55
import { ENVIRONMENT } from '@core/provider/environment.provider';
6+
import { AnalyticsMetricsMapper, RelatedCountsMapper } from '@osf/features/analytics/mappers';
7+
import {
8+
NodeAnalyticsModel,
9+
NodeAnalyticsResponseJsonApi,
10+
RelatedCountsGetResponse,
11+
} from '@osf/features/analytics/models';
612
import { ResourceType } from '@osf/shared/enums/resource-type.enum';
713
import { JsonApiService } from '@osf/shared/services/json-api.service';
814

9-
import { AnalyticsMetricsMapper, RelatedCountsMapper } from '../mappers';
10-
import { NodeAnalyticsModel, NodeAnalyticsResponseJsonApi, RelatedCountsGetResponse } from '../models';
11-
1215
@Injectable({
1316
providedIn: 'root',
1417
})
15-
export class AnalyticsService {
18+
export class ResourceAnalyticsService {
1619
private readonly jsonApiService = inject(JsonApiService);
1720
private readonly environment = inject(ENVIRONMENT);
1821

src/app/features/analytics/store/analytics.state.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { inject, Injectable } from '@angular/core';
88
import { handleSectionError } from '@osf/shared/helpers/state-error.handler';
99

1010
import { NodeAnalyticsModel, RelatedCountsModel } from '../models';
11-
import { AnalyticsService } from '../services';
11+
import { ResourceAnalyticsService } from '../services';
1212

1313
import { ClearAnalytics, GetMetrics, GetRelatedCounts } from './analytics.actions';
1414
import { ANALYTICS_DEFAULT_STATE, AnalyticsStateModel } from './analytics.model';
@@ -19,7 +19,7 @@ import { ANALYTICS_DEFAULT_STATE, AnalyticsStateModel } from './analytics.model'
1919
})
2020
@Injectable()
2121
export class AnalyticsState {
22-
private readonly analyticsService = inject(AnalyticsService);
22+
private readonly analyticsService = inject(ResourceAnalyticsService);
2323
private readonly REFRESH_INTERVAL = 5 * 60 * 1000;
2424

2525
@Action(GetMetrics)

src/app/features/project/wiki/wiki.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ export class WikiComponent {
108108
this.actions
109109
.getWikiList(ResourceType.Project, this.projectId())
110110
.pipe(
111-
takeUntilDestroyed(),
111+
takeUntilDestroyed(this.destroyRef),
112112
tap(() => {
113113
if (!this.wikiIdFromQueryParams) {
114114
this.navigateToWiki(this.wikiList()?.[0]?.id || '');
@@ -124,7 +124,7 @@ export class WikiComponent {
124124

125125
this.route.queryParams
126126
.pipe(
127-
takeUntilDestroyed(),
127+
takeUntilDestroyed(this.destroyRef),
128128
map((params) => params['wiki']),
129129
filter((wikiId) => wikiId),
130130
tap((wikiId) => {

src/app/features/registries/components/custom-step/custom-step.component.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import {
1717
ChangeDetectionStrategy,
1818
Component,
1919
computed,
20+
DestroyRef,
2021
effect,
2122
inject,
2223
input,
@@ -82,6 +83,7 @@ export class CustomStepComponent implements OnDestroy {
8283
private readonly route = inject(ActivatedRoute);
8384
private readonly router = inject(Router);
8485
private readonly fb = inject(FormBuilder);
86+
private readonly destroyRef = inject(DestroyRef);
8587
private toastService = inject(ToastService);
8688

8789
readonly pages = select(RegistriesSelectors.getPagesSchema);
@@ -105,7 +107,7 @@ export class CustomStepComponent implements OnDestroy {
105107
attachedFiles: Record<string, Partial<FileModel & { file_id: string }>[]> = {};
106108

107109
constructor() {
108-
this.route.params.pipe(takeUntilDestroyed()).subscribe((params) => {
110+
this.route.params.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((params) => {
109111
this.updateStepState();
110112
this.step.set(+params['step']);
111113
});

src/app/features/registries/components/drafts/drafts.component.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
ChangeDetectionStrategy,
99
Component,
1010
computed,
11+
DestroyRef,
1112
effect,
1213
inject,
1314
OnDestroy,
@@ -43,6 +44,7 @@ export class DraftsComponent implements OnDestroy {
4344
private readonly route = inject(ActivatedRoute);
4445
private readonly loaderService = inject(LoaderService);
4546
private readonly translateService = inject(TranslateService);
47+
private readonly destroyRef = inject(DestroyRef);
4648

4749
readonly pages = select(RegistriesSelectors.getPagesSchema);
4850
readonly draftRegistration = select(RegistriesSelectors.getDraftRegistration);
@@ -127,7 +129,7 @@ export class DraftsComponent implements OnDestroy {
127129
constructor() {
128130
this.router.events
129131
.pipe(
130-
takeUntilDestroyed(),
132+
takeUntilDestroyed(this.destroyRef),
131133
filter((event): event is NavigationEnd => event instanceof NavigationEnd)
132134
)
133135
.subscribe(() => {

src/app/features/registries/pages/justification/justification.component.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
ChangeDetectionStrategy,
99
Component,
1010
computed,
11+
DestroyRef,
1112
effect,
1213
inject,
1314
OnDestroy,
@@ -37,9 +38,11 @@ import { ClearState, FetchSchemaBlocks, FetchSchemaResponse, RegistriesSelectors
3738
export class JustificationComponent implements OnDestroy {
3839
private readonly route = inject(ActivatedRoute);
3940
private readonly router = inject(Router);
41+
private readonly destroyRef = inject(DestroyRef);
4042

4143
private readonly loaderService = inject(LoaderService);
4244
private readonly translateService = inject(TranslateService);
45+
4346
readonly pages = select(RegistriesSelectors.getPagesSchema);
4447
readonly stepsState = select(RegistriesSelectors.getStepsState);
4548
readonly schemaResponse = select(RegistriesSelectors.getSchemaResponse);
@@ -109,7 +112,7 @@ export class JustificationComponent implements OnDestroy {
109112
constructor() {
110113
this.router.events
111114
.pipe(
112-
takeUntilDestroyed(),
115+
takeUntilDestroyed(this.destroyRef),
113116
filter((event): event is NavigationEnd => event instanceof NavigationEnd)
114117
)
115118
.subscribe(() => {

src/app/features/registry/components/registry-make-decision/registry-make-decision.component.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { Textarea } from 'primeng/textarea';
1111
import { tap } from 'rxjs';
1212

1313
import { DatePipe } from '@angular/common';
14-
import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
14+
import { ChangeDetectionStrategy, Component, DestroyRef, inject } from '@angular/core';
1515
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
1616
import { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';
1717

@@ -46,6 +46,8 @@ import { RegistryOverviewSelectors, SubmitDecision } from '../../store/registry-
4646
})
4747
export class RegistryMakeDecisionComponent {
4848
private readonly fb = inject(FormBuilder);
49+
private readonly destroyRef = inject(DestroyRef);
50+
4951
readonly config = inject(DynamicDialogConfig);
5052
readonly dialogRef = inject(DynamicDialogRef);
5153

@@ -118,7 +120,7 @@ export class RegistryMakeDecisionComponent {
118120

119121
this.requestForm
120122
.get(ModerationDecisionFormControls.Action)
121-
?.valueChanges.pipe(takeUntilDestroyed())
123+
?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef))
122124
.subscribe((action) => {
123125
this.updateCommentValidators(action);
124126
});

src/app/features/registry/pages/registry-overview/registry-overview.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ export class RegistryOverviewComponent {
235235
this.actions.getBookmarksId();
236236
this.route.queryParams
237237
.pipe(
238-
takeUntilDestroyed(),
238+
takeUntilDestroyed(this.destroyRef),
239239
map((params) => ({ revisionId: params['revisionId'], mode: params['mode'] })),
240240
tap(({ revisionId, mode }) => {
241241
this.revisionId = revisionId;

src/app/features/registry/pages/registry-wiki/registry-wiki.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ export class RegistryWikiComponent {
8787
this.actions
8888
.getWikiList(ResourceType.Registration, this.resourceId)
8989
.pipe(
90-
takeUntilDestroyed(),
90+
takeUntilDestroyed(this.destroyRef),
9191
tap(() => {
9292
if (!this.wikiIdFromQueryParams) {
9393
this.navigateToWiki(this.wikiList()?.[0]?.id || '');
@@ -100,7 +100,7 @@ export class RegistryWikiComponent {
100100

101101
this.route.queryParams
102102
.pipe(
103-
takeUntilDestroyed(),
103+
takeUntilDestroyed(this.destroyRef),
104104
map((params) => params['wiki']),
105105
filter((wikiId) => wikiId),
106106
tap((wikiId) => {

0 commit comments

Comments
 (0)