Skip to content

Commit 3d9334e

Browse files
committed
chore: version bump to 1.15.3-beta-3
1 parent a57ec47 commit 3d9334e

6 files changed

Lines changed: 48 additions & 36 deletions

File tree

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@devtron-labs/devtron-fe-common-lib",
3-
"version": "1.15.3-pre-4",
3+
"version": "1.15.3-beta-3",
44
"description": "Supporting common component library",
55
"type": "module",
66
"main": "dist/index.js",

src/Shared/Hooks/useUserPreferences/service.ts

Lines changed: 26 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import { ROUTES } from '@Common/Constants'
1818
import { get, getUrlWithSearchParams, patch, showError } from '@Common/index'
1919
import { THEME_PREFERENCE_MAP } from '@Shared/Providers/ThemeProvider/types'
2020
import { BaseAppMetaData } from '@Shared/Services'
21-
import { ResourceKindType } from '@Shared/types'
2221

2322
import { USER_PREFERENCES_ATTRIBUTE_KEY } from './constants'
2423
import {
@@ -39,11 +38,7 @@ import { getUserPreferenceResourcesMetadata } from './utils'
3938
* @description This function fetches the user preferences from the server. It uses the `get` method to make a request to the server and retrieves the user preferences based on the `USER_PREFERENCES_ATTRIBUTE_KEY`. The result is parsed and returned as a `UserPreferencesType` object.
4039
* @throws Will throw an error if the request fails or if the result is not in the expected format.
4140
*/
42-
export const getUserPreferences = async ({
43-
resourceKindType,
44-
}: {
45-
resourceKindType?: ResourceKindType
46-
}): Promise<UserPreferencesType> => {
41+
export const getUserPreferences = async (): Promise<UserPreferencesType> => {
4742
const queryParamsPayload: Pick<GetUserPreferencesQueryParamsType, 'key'> = {
4843
key: USER_PREFERENCES_ATTRIBUTE_KEY,
4944
}
@@ -62,32 +57,13 @@ export const getUserPreferences = async ({
6257
? ViewIsPipelineRBACConfiguredRadioTabs.ACCESS_ONLY
6358
: ViewIsPipelineRBACConfiguredRadioTabs.ALL_ENVIRONMENTS
6459

65-
const getPreferredResourcesData = () => {
66-
let resources
67-
switch (resourceKindType) {
68-
case ResourceKindType.devtronApplication:
69-
resources = {
70-
[UserPreferenceResourceActions.RECENTLY_VISITED]:
71-
parsedResult.resources?.[ResourceKindType.devtronApplication]?.[
72-
UserPreferenceResourceActions.RECENTLY_VISITED
73-
] || ([] as BaseAppMetaData[]),
74-
}
75-
break
76-
default:
77-
resources = {}
78-
}
79-
return resources
80-
}
81-
8260
return {
8361
pipelineRBACViewSelectedTab,
8462
themePreference:
8563
parsedResult.computedAppTheme === 'system-dark' || parsedResult.computedAppTheme === 'system-light'
8664
? THEME_PREFERENCE_MAP.auto
8765
: parsedResult.computedAppTheme,
88-
resources: {
89-
[resourceKindType]: resourceKindType ? getPreferredResourcesData() : {},
90-
},
66+
resources: parsedResult.resources,
9167
}
9268
}
9369
/**
@@ -103,6 +79,7 @@ const getUserPreferencePayload = async ({
10379
path,
10480
value,
10581
resourceKind,
82+
userPreferencesResponse,
10683
}: UserPathValueMapType): Promise<Partial<UserPreferencesPayloadValueType>> => {
10784
switch (path) {
10885
case 'themePreference':
@@ -116,10 +93,24 @@ const getUserPreferencePayload = async ({
11693
value.pipelineRBACViewSelectedTab === ViewIsPipelineRBACConfiguredRadioTabs.ACCESS_ONLY,
11794
}
11895

119-
case 'resources':
96+
case 'resources': {
97+
const existingResources = userPreferencesResponse?.resources || {}
98+
99+
const updatedResources = {
100+
...existingResources,
101+
[resourceKind]: {
102+
...existingResources[resourceKind],
103+
[UserPreferenceResourceActions.RECENTLY_VISITED]:
104+
getUserPreferenceResourcesMetadata(value as BaseAppMetaData[], resourceKind)[resourceKind]?.[
105+
UserPreferenceResourceActions.RECENTLY_VISITED
106+
] || [],
107+
},
108+
}
109+
120110
return {
121-
resources: getUserPreferenceResourcesMetadata(value as BaseAppMetaData[], resourceKind),
111+
resources: updatedResources,
122112
}
113+
}
123114
default:
124115
return {}
125116
}
@@ -130,12 +121,18 @@ export const updateUserPreferences = async ({
130121
value,
131122
resourceKind,
132123
shouldThrowError = false,
124+
userPreferencesResponse,
133125
}: UserPreferenceResourceProps): Promise<boolean> => {
134126
try {
135127
const payload: UpdateUserPreferencesPayloadType = {
136128
key: USER_PREFERENCES_ATTRIBUTE_KEY,
137129
value: JSON.stringify(
138-
await getUserPreferencePayload({ path, value, resourceKind } as UserPathValueMapType),
130+
await getUserPreferencePayload({
131+
path,
132+
value,
133+
resourceKind,
134+
userPreferencesResponse,
135+
} as UserPathValueMapType),
139136
),
140137
}
141138

src/Shared/Hooks/useUserPreferences/types.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,11 @@ export enum ViewIsPipelineRBACConfiguredRadioTabs {
3131
export enum UserPreferenceResourceActions {
3232
RECENTLY_VISITED = 'recently-visited',
3333
}
34-
export type PreferredResourceKindType = ResourceKindType.devtronApplication
34+
export type PreferredResourceKindType =
35+
| ResourceKindType.devtronApplication
36+
| ResourceKindType.job
37+
| ResourceKindType.appGroup
38+
| ResourceKindType.cluster
3539

3640
export interface UserPreferenceRecentlyVisitedAppsTypes {
3741
appId: number
@@ -84,6 +88,7 @@ export interface UserPreferencesType {
8488
export interface UpdatedUserPreferencesType extends UserPreferencesType, Pick<ThemeConfigType, 'appTheme'> {}
8589

8690
export interface UseUserPreferencesProps {
91+
userPreferenceResourceKind?: ResourceKindType
8792
migrateUserPreferences?: (userPreferencesResponse: UserPreferencesType) => Promise<UserPreferencesType>
8893
}
8994

@@ -92,20 +97,24 @@ export type UserPathValueMapType =
9297
path: 'themePreference'
9398
value: Required<Pick<UpdatedUserPreferencesType, 'themePreference' | 'appTheme'>>
9499
resourceKind?: never
100+
userPreferencesResponse?: never
95101
}
96102
| {
97103
path: 'pipelineRBACViewSelectedTab'
98104
value: Required<Pick<UserPreferencesType, 'pipelineRBACViewSelectedTab'>>
99105
resourceKind?: never
106+
userPreferencesResponse?: never
100107
}
101108
| {
102109
path: 'resources'
103110
value: Required<BaseAppMetaData[]>
104111
resourceKind: PreferredResourceKindType
112+
userPreferencesResponse?
105113
}
106114

107115
export type UserPreferenceResourceProps = UserPathValueMapType & {
108116
shouldThrowError?: boolean
117+
userPreferencesResponse?
109118
}
110119

111120
export interface UserPreferenceFilteredListTypes extends UserPreferenceRecentlyVisitedAppsTypes {

src/Shared/Hooks/useUserPreferences/useUserPrefrences.tsx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ export const useUserPreferences = ({ migrateUserPreferences }: UseUserPreference
4040
appName,
4141
resourceKind,
4242
}: UserPreferenceRecentlyVisitedAppsTypes) => {
43-
const userPreferencesResponse = await getUserPreferences({ resourceKindType: resourceKind })
43+
const userPreferencesResponse = await getUserPreferences()
4444

4545
const uniqueFilteredApps = getFilteredUniqueAppList({
4646
userPreferencesResponse,
@@ -59,7 +59,12 @@ export const useUserPreferences = ({ migrateUserPreferences }: UseUserPreference
5959
},
6060
},
6161
}))
62-
await updateUserPreferences({ path: 'resources', value: uniqueFilteredApps, resourceKind })
62+
await updateUserPreferences({
63+
path: 'resources',
64+
value: uniqueFilteredApps,
65+
resourceKind,
66+
userPreferencesResponse,
67+
})
6368
}
6469

6570
const handleInitializeUserPreferencesFromResponse = (userPreferencesResponse: UserPreferencesType) => {
@@ -74,7 +79,7 @@ export const useUserPreferences = ({ migrateUserPreferences }: UseUserPreference
7479
const handleFetchUserPreferences = async () => {
7580
try {
7681
setUserPreferencesError(null)
77-
const userPreferencesResponse = await getUserPreferences({})
82+
const userPreferencesResponse = await getUserPreferences()
7883
if (migrateUserPreferences) {
7984
const migratedUserPreferences = await migrateUserPreferences(userPreferencesResponse)
8085
handleInitializeUserPreferencesFromResponse(migratedUserPreferences)

src/Shared/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -499,6 +499,7 @@ export enum ResourceKindType {
499499
cdPipeline = 'cd-pipeline',
500500
ciPipeline = 'ci-pipeline',
501501
project = 'project',
502+
appGroup = 'app-group',
502503
}
503504

504505
/**

0 commit comments

Comments
 (0)