@@ -27,6 +27,8 @@ import { AlfrescoApiService } from '../../services';
2727export abstract class SavedSearchesBaseService implements SavedSearchStrategy {
2828 private _nodesApi : NodesApi ;
2929
30+ private static readonly SAVE_MODE_THRESHOLD = 5 ;
31+
3032 protected readonly _savedSearches$ = new ReplaySubject < SavedSearch [ ] > ( 1 ) ;
3133 readonly savedSearches$ : Observable < SavedSearch [ ] > = this . _savedSearches$ . asObservable ( ) ;
3234
@@ -35,7 +37,7 @@ export abstract class SavedSearchesBaseService implements SavedSearchStrategy {
3537 return this . _nodesApi ;
3638 }
3739
38- constructor (
40+ protected constructor (
3941 protected readonly apiService : AlfrescoApiService ,
4042 protected readonly authService : AuthenticationService
4143 ) { }
@@ -52,17 +54,18 @@ export abstract class SavedSearchesBaseService implements SavedSearchStrategy {
5254 }
5355
5456 saveSearch ( newSaveSearch : Pick < SavedSearch , 'name' | 'description' | 'encodedUrl' > ) : Observable < NodeEntry > {
57+ const limit = SavedSearchesBaseService . SAVE_MODE_THRESHOLD ;
5558 return this . fetchAllSavedSearches ( ) . pipe (
5659 take ( 1 ) ,
5760 switchMap ( ( savedSearches ) => {
5861 let updatedSavedSearches : SavedSearch [ ] = [ ] ;
5962
60- if ( savedSearches . length < 5 ) {
63+ if ( savedSearches . length < limit ) {
6164 updatedSavedSearches = [ { ...newSaveSearch , order : 0 } , ...savedSearches ] ;
6265 } else {
63- const firstFiveSearches = savedSearches . slice ( 0 , 5 ) ;
64- const restOfSearches = savedSearches . slice ( 5 ) ;
65- updatedSavedSearches = [ ...firstFiveSearches , { ...newSaveSearch , order : 5 } , ...restOfSearches ] ;
66+ const upToLimitSearches = savedSearches . slice ( 0 , limit ) ;
67+ const restSearches = savedSearches . slice ( limit ) ;
68+ updatedSavedSearches = [ ...upToLimitSearches , { ...newSaveSearch , order : limit } , ...restSearches ] ;
6669 }
6770
6871 updatedSavedSearches = updatedSavedSearches . map ( ( search , index ) => ( { ...search , order : index } ) ) ;
0 commit comments