diff --git a/frontend/ee b/frontend/ee index d47523cfa1..0ae5dac299 160000 --- a/frontend/ee +++ b/frontend/ee @@ -1 +1 @@ -Subproject commit d47523cfa18e15e774781d3ccf4d16858970479b +Subproject commit 0ae5dac299e4a72e219243255722fbea2f530808 diff --git a/frontend/src/AppBuilder/AppCanvas/ConfigHandle/ConfigHandle.jsx b/frontend/src/AppBuilder/AppCanvas/ConfigHandle/ConfigHandle.jsx index f25d815159..05bcd8fbda 100644 --- a/frontend/src/AppBuilder/AppCanvas/ConfigHandle/ConfigHandle.jsx +++ b/frontend/src/AppBuilder/AppCanvas/ConfigHandle/ConfigHandle.jsx @@ -7,6 +7,7 @@ import SolidIcon from '@/_ui/Icon/solidIcons/index'; import { ToolTip } from '@/_components/ToolTip'; import { useModuleContext } from '@/AppBuilder/_contexts/ModuleContext'; import { DROPPABLE_PARENTS } from '../appCanvasConstants'; +import { Tooltip } from 'react-tooltip'; const CONFIG_HANDLE_HEIGHT = 20; const BUFFER_HEIGHT = 1; @@ -25,6 +26,7 @@ export const ConfigHandle = ({ subContainerIndex, }) => { const { moduleId } = useModuleContext(); + const isLicenseValid = useStore((state) => state.isLicenseValid(), shallow); const shouldFreeze = useStore((state) => state.getShouldFreeze()); const componentName = useStore((state) => state.getComponentDefinition(id, moduleId)?.component?.name || '', shallow); const isMultipleComponentsSelected = useStore( @@ -111,6 +113,9 @@ export const ConfigHandle = ({ } } }} + data-tooltip-id={`invalid-license-modules-${componentName?.toLowerCase()}`} + data-tooltip-html="Your plan is expired.
Renew to use the modules." + data-tooltip-place="right" > {licenseValid && isRestricted && ( @@ -201,6 +206,15 @@ export const ConfigHandle = ({ )} + {/* Tooltip for invalid license on ModuleViewer */} + {!isLicenseValid && componentType === 'ModuleViewer' && ( + + )} ); }; diff --git a/frontend/src/_styles/modules.scss b/frontend/src/_styles/modules.scss index c8410b41a3..239cc3201c 100644 --- a/frontend/src/_styles/modules.scss +++ b/frontend/src/_styles/modules.scss @@ -72,6 +72,10 @@ scrollbar-color: #6a727c4d transparent; } } + &.disabled{ + pointer-events: none; + opacity: 0.5; + } } .empty-module-container{