Skip to content

Commit 135bf97

Browse files
committed
feat: hide stack manager on basis of flag from env variables
1 parent b3aa150 commit 135bf97

File tree

4 files changed

+25
-24
lines changed

4 files changed

+25
-24
lines changed

src/components/common/navigation/NavigationRoutes.tsx

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ import { DEFAULT_GIT_OPS_FEATURE_FLAGS } from './constants'
8181
import { ParsedTabsData, ParsedTabsDataV1 } from '../DynamicTabs/types'
8282
import { SwitchThemeDialog } from '@Pages/Shared'
8383
import { SwitchThemeDialogProps } from '@Pages/Shared/SwitchThemeDialog/types'
84-
import { getShowStackManager } from 'src/utils'
84+
import { EnvironmentDataStateType } from './types'
8585

8686
// Monaco Editor worker initialization
8787
self.MonacoEnvironment = {
@@ -152,16 +152,12 @@ export default function NavigationRoutes() {
152152
}
153153
const [environmentId, setEnvironmentId] = useState(null)
154154
const contextValue = useMemo(() => ({ environmentId, setEnvironmentId }), [environmentId])
155-
const [environmentDataState, setEnvironmentDataState] = useState<
156-
Pick<
157-
MainContext,
158-
'isAirgapped' | 'isManifestScanningEnabled' | 'canOnlyViewPermittedEnvOrgLevel' | 'featureGitOpsFlags'
159-
>
160-
>({
155+
const [environmentDataState, setEnvironmentDataState] = useState<EnvironmentDataStateType>({
161156
isAirgapped: false,
162157
isManifestScanningEnabled: false,
163158
canOnlyViewPermittedEnvOrgLevel: false,
164159
featureGitOpsFlags: structuredClone(DEFAULT_GIT_OPS_FEATURE_FLAGS),
160+
devtronManagedLicensingEnabled: false,
165161
})
166162
const [userPreferences, setUserPreferences] = useState<UserPreferencesType>(null)
167163
const [userPreferencesError, setUserPreferencesError] = useState<ServerErrors>(null)
@@ -173,7 +169,7 @@ export default function NavigationRoutes() {
173169
appTheme,
174170
} = useTheme()
175171

176-
const { isAirgapped, isManifestScanningEnabled, canOnlyViewPermittedEnvOrgLevel } = environmentDataState
172+
const { isAirgapped, isManifestScanningEnabled, canOnlyViewPermittedEnvOrgLevel, devtronManagedLicensingEnabled } = environmentDataState
177173

178174
const handleCloseLicenseInfoDialog = () => {
179175
setLicenseInfoDialogType(null)
@@ -342,6 +338,7 @@ export default function NavigationRoutes() {
342338
isManifestScanningEnabled: false,
343339
canOnlyViewPermittedEnvOrgLevel: false,
344340
featureGitOpsFlags: structuredClone(DEFAULT_GIT_OPS_FEATURE_FLAGS),
341+
devtronManagedLicensingEnabled: false,
345342
}
346343

347344
if (!getEnvironmentData) {
@@ -361,6 +358,7 @@ export default function NavigationRoutes() {
361358
isManifestScanningEnabled: result.isManifestScanningEnabled,
362359
canOnlyViewPermittedEnvOrgLevel: result.canOnlyViewPermittedEnvOrgLevel,
363360
featureGitOpsFlags: parsedFeatureGitOpsFlags,
361+
devtronManagedLicensingEnabled: result.devtronManagedLicensingEnabled || false,
364362
}
365363
} catch {
366364
return fallbackResponse
@@ -408,6 +406,7 @@ export default function NavigationRoutes() {
408406
isManifestScanningEnabled: environmentDataResponse.isManifestScanningEnabled,
409407
canOnlyViewPermittedEnvOrgLevel: environmentDataResponse.canOnlyViewPermittedEnvOrgLevel,
410408
featureGitOpsFlags: environmentDataResponse.featureGitOpsFlags,
409+
devtronManagedLicensingEnabled: environmentDataResponse.devtronManagedLicensingEnabled,
411410
})
412411

413412
setServerMode(serverModeResponse)
@@ -484,11 +483,13 @@ export default function NavigationRoutes() {
484483
}
485484
const _isOnboardingPage = isOnboardingPage()
486485

487-
const handleOpenLicenseInfoDialog = (initialDialogTab?: LicenseInfoDialogType.ABOUT | LicenseInfoDialogType.LICENSE) => {
486+
const handleOpenLicenseInfoDialog = (
487+
initialDialogTab?: LicenseInfoDialogType.ABOUT | LicenseInfoDialogType.LICENSE,
488+
) => {
488489
setLicenseInfoDialogType(initialDialogTab || LicenseInfoDialogType.ABOUT)
489490
}
490491

491-
const showStackManager = getShowStackManager(currentServerInfo.serverInfo?.installationType, !!licenseData)
492+
const showStackManager = !devtronManagedLicensingEnabled
492493

493494
return (
494495
<MainContextProvider

src/components/common/navigation/types.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,12 @@
1515
*/
1616

1717
import { URLS } from '@Config/routes'
18-
import { customEnv, IconsProps, URLS as CommonURLS } from '@devtron-labs/devtron-fe-common-lib'
18+
import {
19+
customEnv,
20+
IconsProps,
21+
URLS as CommonURLS,
22+
EnvironmentDataValuesDTO,
23+
} from '@devtron-labs/devtron-fe-common-lib'
1924

2025
export interface NavigationListItemType {
2126
title: string
@@ -32,3 +37,7 @@ export interface NavigationListItemType {
3237
moduleName?: string
3338
moduleNameTrivy?: string
3439
}
40+
41+
export interface EnvironmentDataStateType extends Omit<EnvironmentDataValuesDTO, 'isAirGapEnvironment'> {
42+
isAirgapped: boolean
43+
}

src/components/v2/devtronStackManager/DevtronStackManager.component.tsx

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ import clair from '../../../assets/icons/ic-trivy-to-clair.svg'
8181
import warn from '../../../assets/icons/ic-error-medium.svg'
8282
import { SuccessModalComponent } from './SuccessModalComponent'
8383
import { EMPTY_STATE_STATUS } from '../../../config/constantMessaging'
84-
import { getShowStackManager } from 'src/utils'
8584

8685
const getInstallationStatusLabel = (
8786
installationStatus: ModuleStatus,
@@ -304,18 +303,14 @@ export const NavItem = ({
304303
)
305304
}
306305

307-
const showAboutDevtronTab = getShowStackManager(currentServerInfo?.serverInfo?.installationType, !!licenseData)
308-
309306
return (
310307
<div className="flex column left">
311308
<div className="section-heading cn-6 fs-12 fw-6 pl-8 mb-8 dc__uppercase">Integrations</div>
312309
{ModulesSection.map((route) => getNavLink(route))}
313-
{showAboutDevtronTab && (
314-
<>
315-
<hr className="mt-8 mb-8 w-100 checklist__divider" />
316-
{getNavLink(AboutSection)}
317-
</>
318-
)}
310+
<>
311+
<hr className="mt-8 mb-8 w-100 checklist__divider" />
312+
{getNavLink(AboutSection)}
313+
</>
319314
</div>
320315
)
321316
}

src/utils.tsx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import {
55
DATE_TIME_FORMATS,
66
getCentralAPIHealthObjectFromLocalStorage,
77
} from '@devtron-labs/devtron-fe-common-lib'
8-
import { InstallationType } from '@Components/v2/devtronStackManager/DevtronStackManager.type'
98
import { Routes } from '@Config/constants'
109

1110
const setCentralAPIHealthInLocalStorage = (health: boolean, existingHealthObj: CentralAPILocalConfig) => {
@@ -48,6 +47,3 @@ export const getCentralAPIHealth = async (): Promise<void> => {
4847
setCentralAPIHealthInLocalStorage(false, existingHealthObj)
4948
}
5049
}
51-
52-
export const getShowStackManager = (installationType: InstallationType, showLicenseData: boolean) =>
53-
installationType === InstallationType.ENTERPRISE ? showLicenseData : true

0 commit comments

Comments
 (0)