7
7
UseUserPreferencesProps ,
8
8
ViewIsPipelineRBACConfiguredRadioTabs ,
9
9
} from './types'
10
- import { getUserPreferences } from './service'
10
+ import { getUserPreferences , updateUserPreferences } from './service'
11
11
12
12
export const useUserPreferences = ( { migrateUserPreferences } : UseUserPreferencesProps ) => {
13
13
const [ userPreferences , setUserPreferences ] = useState < UserPreferencesType > ( null )
@@ -25,11 +25,12 @@ export const useUserPreferences = ({ migrateUserPreferences }: UseUserPreference
25
25
// Ensure all items have valid `appId` and `appName`
26
26
const validApps = _recentApps . filter ( ( app ) => app ?. appId && app ?. appName )
27
27
28
- // Combine current app with previous list
29
- const combinedList = [ { appId, appName } , ...validApps ]
28
+ // Convert to a Map for uniqueness while maintaining stacking order
29
+ const uniqueApps = [
30
+ { appId, appName } , // Ensure new app is on top
31
+ ...validApps . filter ( ( app ) => app . appId !== appId ) , // Keep previous order, remove duplicate
32
+ ] . slice ( 0 , 6 ) // Limit to 6 items
30
33
31
- // Filter out invalid app and limit to 6 && Ensure unique entries using a Set
32
- const uniqueApps = Array . from ( new Map ( combinedList . map ( ( app ) => [ app . appId , app ] ) ) . values ( ) ) . slice ( 0 , 6 )
33
34
const uniqueFilteredApps = isInvalidAppId ? uniqueApps . filter ( ( app ) => app . appId !== Number ( appId ) ) : uniqueApps
34
35
setUserPreferences ( ( prev ) => ( {
35
36
...prev ,
@@ -41,6 +42,7 @@ export const useUserPreferences = ({ migrateUserPreferences }: UseUserPreference
41
42
} ,
42
43
} ,
43
44
} ) )
45
+ await updateUserPreferences ( null , uniqueFilteredApps )
44
46
}
45
47
46
48
const handleInitializeUserPreferencesFromResponse = ( userPreferencesResponse : UserPreferencesType ) => {
0 commit comments