diff --git a/services/web/frontend/js/features/ide-react/components/toolbar/share-project-button.tsx b/services/web/frontend/js/features/ide-react/components/toolbar/share-project-button.tsx
index 48a6a22aa8..1e5abcad5e 100644
--- a/services/web/frontend/js/features/ide-react/components/toolbar/share-project-button.tsx
+++ b/services/web/frontend/js/features/ide-react/components/toolbar/share-project-button.tsx
@@ -7,12 +7,14 @@ import { useTranslation } from 'react-i18next'
import { useEditorAnalytics } from '@/shared/hooks/use-editor-analytics'
import { useEditorContext } from '@/shared/context/editor-context'
import { useProjectContext } from '@/shared/context/project-context'
+import useIsNetworkStalled from '@/features/ide-react/hooks/use-is-network-stalled'
export default function ShareProjectButton() {
const { t } = useTranslation()
const { sendEventOnce } = useEditorAnalytics()
const { isProjectOwner } = useEditorContext()
const { project } = useProjectContext()
+ const isDisabledDueToNetworkStall = useIsNetworkStalled()
const [showShareModal, setShowShareModal] = useState(false)
@@ -53,6 +55,7 @@ export default function ShareProjectButton() {
variant="primary"
leadingIcon={}
onClick={handleOpenShareModal}
+ disabled={isDisabledDueToNetworkStall}
>
{t('share')}
{accessRequestCount > 0 && (
diff --git a/services/web/frontend/js/features/ide-react/components/toolbar/upgrade-button.tsx b/services/web/frontend/js/features/ide-react/components/toolbar/upgrade-button.tsx
index 4661218e2a..c485199f26 100644
--- a/services/web/frontend/js/features/ide-react/components/toolbar/upgrade-button.tsx
+++ b/services/web/frontend/js/features/ide-react/components/toolbar/upgrade-button.tsx
@@ -1,6 +1,8 @@
import { useTranslation } from 'react-i18next'
import * as eventTracking from '../../../../infrastructure/event-tracking'
import OLButton from '@/shared/components/ol/ol-button'
+import classNames from 'classnames'
+import useIsNetworkStalled from '@/features/ide-react/hooks/use-is-network-stalled'
export default function UpgradeButton({
className = '',
@@ -12,6 +14,7 @@ export default function UpgradeButton({
source?: string
}) {
const { t } = useTranslation()
+ const isDisabledDueToNetworkStall = useIsNetworkStalled()
function handleClick() {
eventTracking.send('subscription-funnel', source, 'upgrade')
@@ -23,11 +26,18 @@ export default function UpgradeButton({
{t('upgrade')}
diff --git a/services/web/frontend/stylesheets/components/button.scss b/services/web/frontend/stylesheets/components/button.scss
index 8bdd49256c..5a63eba2cd 100644
--- a/services/web/frontend/stylesheets/components/button.scss
+++ b/services/web/frontend/stylesheets/components/button.scss
@@ -195,6 +195,11 @@
&:hover {
background: var(--btn-premium-hover-background);
}
+
+ &:disabled,
+ &.disabled {
+ background: var(--bs-btn-disabled-bg);
+ }
}
&.btn-premium-secondary {