diff --git a/src/app/features/analytics/components/view-duplicates/view-duplicates.component.html b/src/app/features/analytics/components/view-duplicates/view-duplicates.component.html index 4f3926234..a959cdfbd 100644 --- a/src/app/features/analytics/components/view-duplicates/view-duplicates.component.html +++ b/src/app/features/analytics/components/view-duplicates/view-duplicates.component.html @@ -1,6 +1,6 @@ diff --git a/src/app/features/analytics/components/view-duplicates/view-duplicates.component.ts b/src/app/features/analytics/components/view-duplicates/view-duplicates.component.ts index f6f789ba1..e9479339e 100644 --- a/src/app/features/analytics/components/view-duplicates/view-duplicates.component.ts +++ b/src/app/features/analytics/components/view-duplicates/view-duplicates.component.ts @@ -22,6 +22,7 @@ import { import { toSignal } from '@angular/core/rxjs-interop'; import { ActivatedRoute, Router, RouterLink } from '@angular/router'; +import { UserSelectors } from '@core/store/user'; import { DeleteComponentDialogComponent, ForkDialogComponent } from '@osf/features/project/overview/components'; import { ClearProjectOverview, GetProjectById, ProjectOverviewSelectors } from '@osf/features/project/overview/store'; import { @@ -42,7 +43,7 @@ import { IS_SMALL } from '@osf/shared/helpers'; import { ToolbarResource } from '@osf/shared/models'; import { Duplicate } from '@osf/shared/models/duplicates'; import { CustomDialogService } from '@osf/shared/services'; -import { ClearDuplicates, CurrentResourceSelectors, DuplicatesSelectors, GetAllDuplicates } from '@osf/shared/stores'; +import { ClearDuplicates, DuplicatesSelectors, GetAllDuplicates } from '@osf/shared/stores'; @Component({ selector: 'osf-view-duplicates', @@ -76,7 +77,7 @@ export class ViewDuplicatesComponent { duplicates = select(DuplicatesSelectors.getDuplicates); isDuplicatesLoading = select(DuplicatesSelectors.getDuplicatesLoading); totalDuplicates = select(DuplicatesSelectors.getDuplicatesTotalCount); - hasNoPermissions = select(CurrentResourceSelectors.hasNoPermissions); + isAuthenticated = select(UserSelectors.isAuthenticated); readonly pageSize = 10; readonly UserPermissions = UserPermissions; diff --git a/src/app/features/project/overview/components/overview-toolbar/overview-toolbar.component.html b/src/app/features/project/overview/components/overview-toolbar/overview-toolbar.component.html index 7c79576ec..f6e8dd13e 100644 --- a/src/app/features/project/overview/components/overview-toolbar/overview-toolbar.component.html +++ b/src/app/features/project/overview/components/overview-toolbar/overview-toolbar.component.html @@ -37,7 +37,7 @@ } } - @if (!hasNoPermissions()) { + @if (isAuthenticated()) {
@if (resource.storage && !isCollectionsRoute()) { diff --git a/src/app/features/project/overview/components/overview-toolbar/overview-toolbar.component.ts b/src/app/features/project/overview/components/overview-toolbar/overview-toolbar.component.ts index f39edf8e9..f99f6d220 100644 --- a/src/app/features/project/overview/components/overview-toolbar/overview-toolbar.component.ts +++ b/src/app/features/project/overview/components/overview-toolbar/overview-toolbar.component.ts @@ -15,6 +15,7 @@ import { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop'; import { FormsModule } from '@angular/forms'; import { ActivatedRoute, Router, RouterLink } from '@angular/router'; +import { UserSelectors } from '@core/store/user'; import { ClearDuplicatedProject, ProjectOverviewSelectors } from '@osf/features/project/overview/store'; import { IconComponent } from '@osf/shared/components'; import { ResourceType } from '@osf/shared/enums'; @@ -78,7 +79,7 @@ export class OverviewToolbarComponent { bookmarksCollectionId = select(BookmarksSelectors.getBookmarksCollectionId); bookmarkedProjects = select(MyResourcesSelectors.getBookmarks); duplicatedProject = select(ProjectOverviewSelectors.getDuplicatedProject); - hasNoPermissions = select(ProjectOverviewSelectors.hasNoPermissions); + isAuthenticated = select(UserSelectors.isAuthenticated); socialsActionItems = computed(() => { const shareableContent = this.createShareableContent(); return shareableContent ? this.buildSocialActionItems(shareableContent) : []; diff --git a/src/app/features/project/wiki/wiki.component.ts b/src/app/features/project/wiki/wiki.component.ts index ba003aaf7..7a324ed22 100644 --- a/src/app/features/project/wiki/wiki.component.ts +++ b/src/app/features/project/wiki/wiki.component.ts @@ -7,7 +7,7 @@ import { ButtonGroupModule } from 'primeng/buttongroup'; import { filter, map, mergeMap, of, tap } from 'rxjs'; -import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core'; +import { ChangeDetectionStrategy, Component, computed, DestroyRef, inject } from '@angular/core'; import { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop'; import { ActivatedRoute, Router } from '@angular/router'; @@ -23,6 +23,7 @@ import { hasViewOnlyParam } from '@osf/shared/helpers'; import { WikiModes } from '@osf/shared/models'; import { ToastService } from '@osf/shared/services'; import { + ClearWiki, CreateWiki, CreateWikiVersion, CurrentResourceSelectors, @@ -61,6 +62,7 @@ import { ViewOnlyLinkMessageComponent } from '@shared/components/view-only-link- export class WikiComponent { private readonly route = inject(ActivatedRoute); private readonly router = inject(Router); + private readonly destroyRef = inject(DestroyRef); private toastService = inject(ToastService); WikiModes = WikiModes; @@ -99,6 +101,7 @@ export class WikiComponent { createWikiVersion: CreateWikiVersion, getWikiVersionContent: GetWikiVersionContent, getCompareVersionContent: GetCompareVersionContent, + clearWiki: ClearWiki, }); wikiIdFromQueryParams = this.route.snapshot.queryParams['wiki']; @@ -132,6 +135,10 @@ export class WikiComponent { mergeMap((wikiId) => this.actions.getWikiVersions(wikiId)) ) .subscribe(); + + this.destroyRef.onDestroy(() => { + this.actions.clearWiki(); + }); } toggleMode(mode: WikiModes) { diff --git a/src/app/features/registry/pages/registry-wiki/registry-wiki.component.ts b/src/app/features/registry/pages/registry-wiki/registry-wiki.component.ts index f7acf3f79..f9c35ff7f 100644 --- a/src/app/features/registry/pages/registry-wiki/registry-wiki.component.ts +++ b/src/app/features/registry/pages/registry-wiki/registry-wiki.component.ts @@ -7,7 +7,7 @@ import { ButtonGroup } from 'primeng/buttongroup'; import { filter, map, mergeMap, tap } from 'rxjs'; -import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core'; +import { ChangeDetectionStrategy, Component, computed, DestroyRef, inject } from '@angular/core'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { ActivatedRoute, Router } from '@angular/router'; @@ -17,6 +17,7 @@ import { ResourceType } from '@osf/shared/enums'; import { hasViewOnlyParam } from '@osf/shared/helpers'; import { WikiModes } from '@osf/shared/models'; import { + ClearWiki, GetCompareVersionContent, GetComponentsWikiList, GetWikiContent, @@ -47,6 +48,7 @@ import { export class RegistryWikiComponent { private readonly route = inject(ActivatedRoute); private readonly router = inject(Router); + private readonly destroyRef = inject(DestroyRef); WikiModes = WikiModes; wikiModes = select(WikiSelectors.getWikiModes); @@ -73,6 +75,7 @@ export class RegistryWikiComponent { getWikiVersionContent: GetWikiVersionContent, getCompareVersionContent: GetCompareVersionContent, getComponentsWikiList: GetComponentsWikiList, + clearWiki: ClearWiki, }); wikiIdFromQueryParams = this.route.snapshot.queryParams['wiki']; @@ -103,6 +106,10 @@ export class RegistryWikiComponent { mergeMap((wikiId) => this.actions.getWikiVersions(wikiId)) ) .subscribe(); + + this.destroyRef.onDestroy(() => { + this.actions.clearWiki(); + }); } toggleMode(mode: WikiModes) { @@ -110,7 +117,9 @@ export class RegistryWikiComponent { } onSelectVersion(versionId: string) { - this.actions.getWikiVersionContent(this.currentWikiId(), versionId); + if (versionId) { + this.actions.getWikiVersionContent(this.currentWikiId(), versionId); + } } onSelectCompareVersion(versionId: string) {