From eece86107d327d63201c7de89b1c193b35b774c8 Mon Sep 17 00:00:00 2001 From: Arun Jain Date: Wed, 13 Aug 2025 14:18:50 +0530 Subject: [PATCH 1/9] feat: add support for freemium license --- .../ClustersAndEnvironments/ClusterList.tsx | 90 +++-- src/Pages/License/ActivateLicense.tsx | 14 +- .../UpgradeToEnterpriseDialog.tsx | 77 +++++ .../ic-upgrade-enterprise.svg | 320 ++++++++++++++++++ src/Pages/Shared/UpgradeToEnterprise/index.ts | 1 + .../ResourceBrowser/PageHeader.buttons.tsx | 49 ++- src/css/icons.scss | 5 + 7 files changed, 516 insertions(+), 40 deletions(-) create mode 100644 src/Pages/Shared/UpgradeToEnterprise/UpgradeToEnterpriseDialog.tsx create mode 100644 src/Pages/Shared/UpgradeToEnterprise/ic-upgrade-enterprise.svg create mode 100644 src/Pages/Shared/UpgradeToEnterprise/index.ts diff --git a/src/Pages/GlobalConfigurations/ClustersAndEnvironments/ClusterList.tsx b/src/Pages/GlobalConfigurations/ClustersAndEnvironments/ClusterList.tsx index 1542ecad0d..183621a659 100644 --- a/src/Pages/GlobalConfigurations/ClustersAndEnvironments/ClusterList.tsx +++ b/src/Pages/GlobalConfigurations/ClustersAndEnvironments/ClusterList.tsx @@ -55,6 +55,7 @@ import { importComponentFromFELibrary } from '@Components/common' import { URLS } from '@Config/routes' import CreateCluster from '@Pages/GlobalConfigurations/ClustersAndEnvironments/CreateCluster/CreateCluster.component' import { CreateClusterTypeEnum } from '@Pages/GlobalConfigurations/ClustersAndEnvironments/CreateCluster/types' +import { UpgradeToEnterpriseDialog } from '@Pages/Shared/UpgradeToEnterprise' import { getClusterList, getEnvironmentList } from './cluster.service' import { @@ -84,8 +85,9 @@ const PodSpreadModal = importComponentFromFELibrary('PodSpreadModal', null, 'fun const HibernationRulesModal = importComponentFromFELibrary('HibernationRulesModal', null, 'function') const ClusterList = () => { - const { isSuperAdmin } = useMainContext() + const { isSuperAdmin, licenseData } = useMainContext() const isK8sClient = window._env_.K8S_CLIENT + const isFreemium = licenseData?.isFreemium const { push } = useHistory() const { search } = useLocation() @@ -121,6 +123,7 @@ const ClusterList = () => { ) const [showUnmappedEnvs, setShowUnmappedEnvs] = useState(false) + const [showUpgradeToEnterprise, setShowUpgradeToEnterprise] = useState(false) const clusterIdVsEnvMap: Record = useMemo( () => @@ -350,6 +353,58 @@ const ClusterList = () => { ) } + const handleOpenUpgradeDialog = () => { + setShowUpgradeToEnterprise(true) + } + + const handleCloseUpgradeDialog = () => { + setShowUpgradeToEnterprise(false) + } + + const renderAddClusterEnvButton = () => { + if (isEnvironmentsView) { + return ( +