Files
overleaf-cep/services/web/frontend/js/features/ide-react/components/toolbar/upgrade-button.tsx
T
Davinder Singh 1b95b31049 [WEB] Disable share and upgrade buttons when offline (#35923)
* disabling buttons in offline mode

* setting href as undefined when button is disabled

* Fix disabled state for premium button by removing gradient override

* Add disabled class to premium button for correct disabled styling

GitOrigin-RevId: b7dd59e05d8c818d58399e31d961e93bb0f188a9
2026-09-17 11:40:41 +00:00

47 lines
1.3 KiB
TypeScript

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 = '',
referrer = 'editor-header-upgrade-prompt',
source = 'code-editor',
}: {
className?: string
referrer?: string
source?: string
}) {
const { t } = useTranslation()
const isDisabledDueToNetworkStall = useIsNetworkStalled()
function handleClick() {
eventTracking.send('subscription-funnel', source, 'upgrade')
eventTracking.sendMB('upgrade-button-click', { source })
}
return (
<div className="ide-redesign-toolbar-button-container">
<OLButton
variant="premium"
size="sm"
href={
isDisabledDueToNetworkStall
? undefined
: `/user/subscription/choose-your-plan?itm_referrer=${referrer}&paywall-type=${source}`
}
target="_blank"
rel="noreferrer"
onClick={handleClick}
disabled={isDisabledDueToNetworkStall}
className={classNames(className, {
disabled: isDisabledDueToNetworkStall,
})}
>
{t('upgrade')}
</OLButton>
</div>
)
}