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) {