mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
Merge pull request #18927 from overleaf/dp-remove-grammarly-promo
Remove Grammarly advert GitOrigin-RevId: 6652cfafc47f8a42efc9acc1745a50e4ab8cc208
This commit is contained in:
parent
0b4d9aebe4
commit
c342dc70a5
5 changed files with 0 additions and 112 deletions
|
@ -163,7 +163,6 @@
|
|||
"checking_project_github_status": "",
|
||||
"choose_a_custom_color": "",
|
||||
"choose_from_group_members": "",
|
||||
"claim_discount": "",
|
||||
"clear_cached_files": "",
|
||||
"clear_search": "",
|
||||
"click_here_to_view_sl_in_lng": "",
|
||||
|
|
|
@ -1,107 +0,0 @@
|
|||
import { useCallback, useEffect, useState } from 'react'
|
||||
import { Button } from 'react-bootstrap'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import Notification from '@/shared/components/notification'
|
||||
import useRemindMeLater from '@/shared/hooks/use-remind-me-later'
|
||||
import GrammarlyLogo from '@/shared/svgs/grammarly-logo'
|
||||
import * as eventTracking from '../../../infrastructure/event-tracking'
|
||||
import useWaitForGrammarlyCheck from '@/shared/hooks/use-wait-for-grammarly-check'
|
||||
import getMeta from '@/utils/meta'
|
||||
|
||||
export default function GrammarlyAdvert() {
|
||||
const { isOverleaf } = getMeta('ol-ExposedSettings')
|
||||
|
||||
const [show, setShow] = useState(false)
|
||||
const { t } = useTranslation()
|
||||
|
||||
// grammarly can take some time to load, we should assume its installed and hide until we know for sure
|
||||
const grammarlyInstalled = useWaitForGrammarlyCheck({ initialState: false })
|
||||
|
||||
const { stillDissmissed, remindThemLater, saveDismissed } =
|
||||
useRemindMeLater('grammarly_advert')
|
||||
|
||||
useEffect(() => {
|
||||
const showGrammarlyAdvert = grammarlyInstalled && !stillDissmissed
|
||||
|
||||
if (showGrammarlyAdvert) {
|
||||
eventTracking.sendMB('grammarly-advert-shown')
|
||||
setShow(true)
|
||||
}
|
||||
}, [stillDissmissed, grammarlyInstalled, setShow])
|
||||
|
||||
const handleDismiss = useCallback(() => {
|
||||
setShow(false)
|
||||
saveDismissed()
|
||||
eventTracking.sendMB('grammarly-advert-dismissed')
|
||||
}, [saveDismissed])
|
||||
|
||||
const handleClickClaim = useCallback(() => {
|
||||
eventTracking.sendMB('promo-click', {
|
||||
location: 'notification',
|
||||
name: 'grammarly-advert',
|
||||
type: 'click',
|
||||
})
|
||||
|
||||
saveDismissed()
|
||||
setShow(false)
|
||||
|
||||
window.open(
|
||||
'https://grammarly.go2cloud.org/aff_c?offer_id=373&aff_id=142242'
|
||||
)
|
||||
}, [saveDismissed])
|
||||
|
||||
const handleLater = useCallback(() => {
|
||||
eventTracking.sendMB('promo-click', {
|
||||
location: 'notification',
|
||||
name: 'grammarly-advert',
|
||||
type: 'pause',
|
||||
})
|
||||
setShow(false)
|
||||
remindThemLater()
|
||||
}, [remindThemLater])
|
||||
|
||||
if (!isOverleaf || !show) {
|
||||
return null
|
||||
}
|
||||
|
||||
const actions = (
|
||||
<div>
|
||||
<Button
|
||||
bsStyle={null}
|
||||
className="btn-secondary"
|
||||
onClick={handleClickClaim}
|
||||
>
|
||||
{t('claim_discount')}
|
||||
</Button>
|
||||
<Button className="btn-bg-ghost" bsStyle={null} onClick={handleLater}>
|
||||
{t('maybe_later')}
|
||||
</Button>
|
||||
</div>
|
||||
)
|
||||
|
||||
return (
|
||||
<Notification
|
||||
action={actions}
|
||||
ariaLive="polite"
|
||||
className="editor-notification ol-overlay hidden-xs-container"
|
||||
content={
|
||||
<div>
|
||||
<p>
|
||||
Get 25% off Grammarly Premium with this exclusive offer for Overleaf
|
||||
users.
|
||||
</p>
|
||||
</div>
|
||||
}
|
||||
customIcon={
|
||||
<div>
|
||||
<GrammarlyLogo width="50" height="50" background="#fff" />
|
||||
</div>
|
||||
}
|
||||
isActionBelowContent
|
||||
isDismissible
|
||||
onDismiss={handleDismiss}
|
||||
title="Love Grammarly? Then you're in luck!"
|
||||
type="offer"
|
||||
/>
|
||||
)
|
||||
}
|
|
@ -3,7 +3,6 @@ import { FullSizeLoadingSpinner } from '../../../shared/components/loading-spinn
|
|||
import withErrorBoundary from '../../../infrastructure/error-boundary'
|
||||
import { ErrorBoundaryFallback } from '../../../shared/components/error-boundary-fallback'
|
||||
import importOverleafModules from '../../../../macros/import-overleaf-module.macro'
|
||||
import GrammarlyAdvert from './grammarly-advert'
|
||||
|
||||
const editorPromotions = importOverleafModules('editorPromotions') as {
|
||||
import: { default: ElementType }
|
||||
|
@ -21,7 +20,6 @@ function SourceEditor() {
|
|||
{editorPromotions.map(({ import: { default: Component }, path }) => (
|
||||
<Component key={path} />
|
||||
))}
|
||||
<GrammarlyAdvert />
|
||||
<CodeMirrorEditor />
|
||||
</Suspense>
|
||||
)
|
||||
|
|
|
@ -713,7 +713,6 @@ CodeMirror
|
|||
}
|
||||
}
|
||||
|
||||
.grammarly-advert,
|
||||
.legacy-editor-warning {
|
||||
width: 500px;
|
||||
|
||||
|
|
|
@ -238,7 +238,6 @@
|
|||
"choose_from_group_members": "Choose from group members",
|
||||
"choose_your_plan": "Choose your plan",
|
||||
"city": "City",
|
||||
"claim_discount": "Claim discount",
|
||||
"clear_cached_files": "Clear cached files",
|
||||
"clear_search": "clear search",
|
||||
"clear_sessions": "Clear Sessions",
|
||||
|
|
Loading…
Reference in a new issue