@@ -36,6 +36,7 @@ import { StockImages } from "./StockImagesTab/StockImages";
36
36
import UploadFilePickerTab from "./UploadFilePickerTab/UploadFilePickerTab" ;
37
37
import MultipleUploadFilePickerTab from "./MultipleUploadFilePickerTab/MultipleUploadFilePickerTab" ;
38
38
import WebSearchTab from "./WebSearchTab/WebSearchTab" ;
39
+ import { FilePickerTab } from "./FilePickerTab" ;
39
40
40
41
41
42
export class FilePicker extends React . Component <
@@ -47,8 +48,6 @@ export class FilePicker extends React.Component<
47
48
private orgAssetsService : OrgAssetsService ;
48
49
private fileSearchService : FilesSearchService ;
49
50
50
- private tabOrder = this . props . tabOrder ?? [ "keyRecent" , "keyStockImages" , "keyWeb" , "keyOrgAssets" , "keyOneDrive" , "keySite" , "keyUpload" , "keyLink" , "keyMultipleUpload" ] ;
51
-
52
51
constructor ( props : IFilePickerProps ) {
53
52
super ( props ) ;
54
53
@@ -192,7 +191,7 @@ export class FilePicker extends React.Component<
192
191
/>
193
192
</ div >
194
193
< div className = { styles . tabsContainer } >
195
- { this . state . selectedTab === "keyLink" && (
194
+ { this . state . selectedTab === FilePickerTab . Link && (
196
195
< LinkFilePickerTab
197
196
fileSearchService = { this . fileSearchService }
198
197
renderCustomLinkTabContent = {
@@ -203,7 +202,7 @@ export class FilePicker extends React.Component<
203
202
{ ...linkTabProps }
204
203
/>
205
204
) }
206
- { this . state . selectedTab === "keyUpload" && (
205
+ { this . state . selectedTab === FilePickerTab . Upload && (
207
206
< UploadFilePickerTab
208
207
renderCustomUploadTabContent = {
209
208
this . props . renderCustomUploadTabContent
@@ -212,7 +211,7 @@ export class FilePicker extends React.Component<
212
211
onChange = { this . _handleOnChange }
213
212
/>
214
213
) }
215
- { this . state . selectedTab === "keyMultipleUpload" && (
214
+ { this . state . selectedTab === FilePickerTab . MultipleUpload && (
216
215
< MultipleUploadFilePickerTab
217
216
renderCustomMultipleUploadTabContent = {
218
217
this . props . renderCustomMultipleUploadTabContent
@@ -221,7 +220,7 @@ export class FilePicker extends React.Component<
221
220
onChange = { this . _handleOnChange }
222
221
/>
223
222
) }
224
- { this . state . selectedTab === "keySite" && (
223
+ { this . state . selectedTab === FilePickerTab . Site && (
225
224
< SiteFilePickerTab
226
225
fileBrowserService = { this . fileBrowserService }
227
226
includePageLibraries = { this . props . includePageLibraries }
@@ -232,37 +231,37 @@ export class FilePicker extends React.Component<
232
231
{ ...linkTabProps }
233
232
/>
234
233
) }
235
- { this . state . selectedTab === "keyOrgAssets" && (
234
+ { this . state . selectedTab === FilePickerTab . OrgAssets && (
236
235
< SiteFilePickerTab
237
236
breadcrumbFirstNode = { {
238
237
isCurrentItem : true ,
239
238
text : strings . OrgAssetsTabLabel ,
240
- key : "keyOrgAssets" ,
239
+ key : FilePickerTab . OrgAssets ,
241
240
} }
242
241
fileBrowserService = { this . orgAssetsService }
243
242
webTitle = { this . state . webTitle }
244
243
{ ...linkTabProps }
245
244
/>
246
245
) }
247
- { this . state . selectedTab === "keyWeb" && (
246
+ { this . state . selectedTab === FilePickerTab . Web && (
248
247
< WebSearchTab
249
248
bingSearchService = { this . fileSearchService }
250
249
{ ...linkTabProps }
251
250
/>
252
251
) }
253
- { this . state . selectedTab === "keyOneDrive" && (
252
+ { this . state . selectedTab === FilePickerTab . OneDrive && (
254
253
< OneDriveFilesTab
255
254
oneDriveService = { this . oneDriveService }
256
255
{ ...linkTabProps }
257
256
/>
258
257
) }
259
- { this . state . selectedTab === "keyRecent" && (
258
+ { this . state . selectedTab === FilePickerTab . Recent && (
260
259
< RecentFilesTab
261
260
fileSearchService = { this . fileSearchService }
262
261
{ ...linkTabProps }
263
262
/>
264
263
) }
265
- { this . state . selectedTab === "keyStockImages" && (
264
+ { this . state . selectedTab === FilePickerTab . StockImages && (
266
265
< StockImages
267
266
language = {
268
267
this . props . context . pageContext . cultureInfo . currentCultureName
@@ -346,29 +345,29 @@ export class FilePicker extends React.Component<
346
345
*/
347
346
private _getNavPanelOptions = ( ) : INavLinkGroup [ ] => {
348
347
const addUrl = this . props . storeLastActiveTab !== false ;
349
- let links : INavLink [ ] = [ ] ;
348
+ let links = [ ] ;
350
349
351
350
if ( ! this . props . hideRecentTab ) {
352
351
links . push ( {
353
352
name : strings . RecentLinkLabel ,
354
353
url : addUrl ? "#recent" : undefined ,
355
354
icon : "Recent" ,
356
- key : "keyRecent" ,
355
+ key : FilePickerTab . Recent ,
357
356
} ) ;
358
357
}
359
358
if ( ! this . props . hideStockImages ) {
360
359
links . push ( {
361
360
name : strings . StockImagesLinkLabel ,
362
361
url : addUrl ? "#stockImages" : undefined ,
363
- key : "keyStockImages" ,
362
+ key : FilePickerTab . StockImages ,
364
363
icon : "ImageSearch" ,
365
364
} ) ;
366
365
}
367
366
if ( this . props . bingAPIKey && ! this . props . hideWebSearchTab ) {
368
367
links . push ( {
369
368
name : strings . WebSearchLinkLabel ,
370
369
url : addUrl ? "#search" : undefined ,
371
- key : "keyWeb" ,
370
+ key : FilePickerTab . Web ,
372
371
icon : "Search" ,
373
372
} ) ;
374
373
}
@@ -380,46 +379,46 @@ export class FilePicker extends React.Component<
380
379
name : strings . OrgAssetsLinkLabel ,
381
380
url : addUrl ? "#orgAssets" : undefined ,
382
381
icon : "FabricFolderConfirm" ,
383
- key : "keyOrgAssets" ,
382
+ key : FilePickerTab . OrgAssets ,
384
383
} ) ;
385
384
}
386
385
if ( ! this . props . hideOneDriveTab ) {
387
386
links . push ( {
388
387
name : "OneDrive" ,
389
388
url : addUrl ? "#onedrive" : undefined ,
390
- key : "keyOneDrive" ,
389
+ key : FilePickerTab . OneDrive ,
391
390
icon : "OneDrive" ,
392
391
} ) ;
393
392
}
394
393
if ( ! this . props . hideSiteFilesTab ) {
395
394
links . push ( {
396
395
name : strings . SiteLinkLabel ,
397
396
url : addUrl ? "#globe" : undefined ,
398
- key : "keySite" ,
397
+ key : FilePickerTab . Site ,
399
398
icon : "Globe" ,
400
399
} ) ;
401
400
}
402
401
if ( ! this . props . hideLocalUploadTab ) {
403
402
links . push ( {
404
403
name : strings . UploadLinkLabel ,
405
404
url : addUrl ? "#upload" : undefined ,
406
- key : "keyUpload" ,
405
+ key : FilePickerTab . Upload ,
407
406
icon : "System" ,
408
407
} ) ;
409
408
}
410
409
if ( ! this . props . hideLocalMultipleUploadTab ) {
411
410
links . push ( {
412
411
name : strings . UploadLinkLabel + " " + strings . OneDriveRootFolderName ,
413
412
url : addUrl ? "#Multipleupload" : undefined ,
414
- key : "keyMultipleUpload" ,
413
+ key : FilePickerTab . MultipleUpload ,
415
414
icon : "BulkUpload" ,
416
415
} ) ;
417
416
}
418
417
if ( ! this . props . hideLinkUploadTab ) {
419
418
links . push ( {
420
419
name : strings . FromLinkLinkLabel ,
421
420
url : addUrl ? "#link" : undefined ,
422
- key : "keyLink" ,
421
+ key : FilePickerTab . Link ,
423
422
icon : "Link" ,
424
423
} ) ;
425
424
}
@@ -435,10 +434,10 @@ export class FilePicker extends React.Component<
435
434
/**
436
435
* Sorts navigation tabs based on the tabOrder prop
437
436
*/
438
- private _getTabOrder = ( links : INavLink [ ] ) : INavLink [ ] => {
437
+ private _getTabOrder = ( links ) : INavLink [ ] => {
439
438
const sortedKeys = [
440
- ...this . tabOrder ,
441
- ...links . map ( l => l . key ) . filter ( key => ! this . tabOrder . includes ( key ) ) ,
439
+ ...this . props . tabOrder ,
440
+ ...links . map ( l => l . key ) . filter ( key => ! this . props . tabOrder . includes ( key ) ) ,
442
441
] ;
443
442
444
443
links . sort ( ( a , b ) => {
@@ -456,15 +455,15 @@ export class FilePicker extends React.Component<
456
455
orgAssetsEnabled : boolean
457
456
) : string => {
458
457
const tabsConfig = [
459
- { isTabVisible : ! props . hideRecentTab , tabKey : "keyRecent" } ,
460
- { isTabVisible : ! props . hideStockImages , tabKey : "keyStockImages" } ,
461
- { isTabVisible : props . bingAPIKey && ! props . hideWebSearchTab , tabKey : "keyWeb" } ,
462
- { isTabVisible : ! props . hideOrganisationalAssetTab && orgAssetsEnabled , tabKey : "keyOrgAssets" } ,
463
- { isTabVisible : ! props . hideOneDriveTab , tabKey : "keyOneDrive" } ,
464
- { isTabVisible : ! props . hideSiteFilesTab , tabKey : "keySite" } ,
465
- { isTabVisible : ! props . hideLocalUploadTab , tabKey : "keyUpload" } ,
466
- { isTabVisible : ! props . hideLinkUploadTab , tabKey : "keyLink" } ,
467
- { isTabVisible : ! props . hideLocalMultipleUploadTab , tabKey : "keyMultipleUpload" }
458
+ { isTabVisible : ! props . hideRecentTab , tabKey : FilePickerTab . Recent } ,
459
+ { isTabVisible : ! props . hideStockImages , tabKey : FilePickerTab . StockImages } ,
460
+ { isTabVisible : props . bingAPIKey && ! props . hideWebSearchTab , tabKey : FilePickerTab . Web } ,
461
+ { isTabVisible : ! props . hideOrganisationalAssetTab && orgAssetsEnabled , tabKey : FilePickerTab . OrgAssets } ,
462
+ { isTabVisible : ! props . hideOneDriveTab , tabKey : FilePickerTab . OneDrive } ,
463
+ { isTabVisible : ! props . hideSiteFilesTab , tabKey : FilePickerTab . Site } ,
464
+ { isTabVisible : ! props . hideLocalUploadTab , tabKey : FilePickerTab . Upload } ,
465
+ { isTabVisible : ! props . hideLinkUploadTab , tabKey : FilePickerTab . Link } ,
466
+ { isTabVisible : ! props . hideLocalMultipleUploadTab , tabKey : FilePickerTab . MultipleUpload }
468
467
] ;
469
468
470
469
const visibleTabs = tabsConfig . filter ( tab => tab . isTabVisible ) ;
@@ -478,7 +477,7 @@ export class FilePicker extends React.Component<
478
477
// If no valid default tab is provided, find the first visible tab in the order
479
478
if ( this . props . tabOrder ) {
480
479
const visibleTabSet = new Set ( visibleTabKeys ) ;
481
- return this . tabOrder . find ( key => visibleTabSet . has ( key ) ) ;
480
+ return this . props . tabOrder . find ( key => visibleTabSet . has ( key ) ) ;
482
481
} else {
483
482
return visibleTabKeys [ 0 ] ; // first visible tab from default order
484
483
}
0 commit comments