11import { createDispatchMap , select } from '@ngxs/store' ;
22
3- import { TranslatePipe } from '@ngx-translate/core' ;
3+ import { TranslatePipe , TranslateService } from '@ngx-translate/core' ;
44
55import { Skeleton } from 'primeng/skeleton' ;
66import { TabsModule } from 'primeng/tabs' ;
@@ -32,8 +32,8 @@ import {
3232import { FilesTreeComponent } from '@osf/shared/components/files-tree/files-tree.component' ;
3333import { SelectComponent } from '@osf/shared/components/select/select.component' ;
3434import { CurrentResourceType , ResourceType } from '@osf/shared/enums/resource-type.enum' ;
35+ import { mapRootFoldersToStorageLabels } from '@osf/shared/helpers/storage-addon-options.helper' ;
3536import { Primitive } from '@osf/shared/helpers/types.helper' ;
36- import { ConfiguredAddonModel } from '@osf/shared/models/addons/configured-addon.model' ;
3737import { FileModel } from '@osf/shared/models/files/file.model' ;
3838import { FileFolderModel } from '@osf/shared/models/files/file-folder.model' ;
3939import { FileLabelModel } from '@osf/shared/models/files/file-label.model' ;
@@ -61,6 +61,7 @@ export class FilesWidgetComponent {
6161 private readonly destroyRef = inject ( DestroyRef ) ;
6262 private readonly viewOnlyService = inject ( ViewOnlyLinkHelperService ) ;
6363 private readonly filesService = inject ( FilesService ) ;
64+ private readonly translateService = inject ( TranslateService ) ;
6465 private readonly platformId = inject ( PLATFORM_ID ) ;
6566 private readonly isBrowser = isPlatformBrowser ( this . platformId ) ;
6667
@@ -77,7 +78,6 @@ export class FilesWidgetComponent {
7778 currentRootFolder = model < FileLabelModel | null > ( null ) ;
7879 pageNumber = signal ( 1 ) ;
7980
80- readonly osfStorageLabel = 'OSF Storage' ;
8181 readonly resourceType = CurrentResourceType . Projects ;
8282
8383 readonly options = computed ( ( ) => {
@@ -86,15 +86,8 @@ export class FilesWidgetComponent {
8686 } ) ;
8787
8888 readonly storageAddons = computed ( ( ) => {
89- const rootFolders = this . rootFolders ( ) ;
90- const addons = this . configuredStorageAddons ( ) ;
91- if ( rootFolders && addons ) {
92- return rootFolders . map ( ( folder ) => ( {
93- label : this . getAddonName ( addons , folder . provider ) ,
94- folder : folder ,
95- } ) ) ;
96- }
97- return [ ] ;
89+ const osfLabel = this . translateService . instant ( 'files.storageLocation' ) ;
90+ return mapRootFoldersToStorageLabels ( this . rootFolders ( ) , this . configuredStorageAddons ( ) , osfLabel ) ;
9891 } ) ;
9992
10093 readonly hasViewOnly = computed ( ( ) => this . viewOnlyService . hasViewOnlyParam ( this . router ) ) ;
@@ -132,7 +125,7 @@ export class FilesWidgetComponent {
132125 const osfRootFolder = rootFolders . find ( ( folder ) => folder . provider === FileProvider . OsfStorage ) ;
133126 if ( osfRootFolder ) {
134127 this . currentRootFolder . set ( {
135- label : this . osfStorageLabel ,
128+ label : this . translateService . instant ( 'files.storageLocation' ) ,
136129 folder : osfRootFolder ,
137130 } ) ;
138131 }
@@ -205,14 +198,6 @@ export class FilesWidgetComponent {
205198 } , [ ] ) ;
206199 }
207200
208- private getAddonName ( addons : ConfiguredAddonModel [ ] , provider : string ) : string {
209- if ( provider === FileProvider . OsfStorage ) {
210- return this . osfStorageLabel ;
211- } else {
212- return addons . find ( ( addon ) => addon . externalServiceName === provider ) ?. displayName ?? '' ;
213- }
214- }
215-
216201 onChangeProject ( value : Primitive ) {
217202 this . getStorageAddons ( value as string ) ;
218203 }
0 commit comments