mirror of
https://github.com/overleaf/overleaf.git
synced 2024-10-31 21:21:03 -04:00
c8daef59dc
[Settings] Metrics for institutional leavers survey GitOrigin-RevId: 776d556789e8c9d0ea4c524ce4daa6bf05435810
65 lines
1.7 KiB
TypeScript
65 lines
1.7 KiB
TypeScript
import { useEffect } from 'react'
|
|
import { Alert } from 'react-bootstrap'
|
|
import { useTranslation } from 'react-i18next'
|
|
import usePersistedState from '../../../shared/hooks/use-persisted-state'
|
|
import { useUserEmailsContext } from '../context/user-email-context'
|
|
import { sendMB } from '../../../infrastructure/event-tracking'
|
|
|
|
function sendMetrics(segmentation: 'view' | 'click' | 'close') {
|
|
sendMB('institutional-leavers-survey-notification', { type: segmentation })
|
|
}
|
|
|
|
export function LeaversSurveyAlert() {
|
|
const { t } = useTranslation()
|
|
|
|
const {
|
|
showInstitutionalLeaversSurveyUntil,
|
|
setShowInstitutionalLeaversSurveyUntil,
|
|
} = useUserEmailsContext()
|
|
|
|
const [hide, setHide] = usePersistedState(
|
|
'hideInstitutionalLeaversSurvey',
|
|
false,
|
|
true
|
|
)
|
|
|
|
function handleDismiss() {
|
|
setShowInstitutionalLeaversSurveyUntil(0)
|
|
setHide(true)
|
|
sendMetrics('close')
|
|
}
|
|
|
|
function handleLinkClick() {
|
|
sendMetrics('click')
|
|
}
|
|
|
|
const shouldDisplay =
|
|
!hide && Date.now() <= showInstitutionalLeaversSurveyUntil
|
|
|
|
useEffect(() => {
|
|
if (shouldDisplay) {
|
|
sendMetrics('view')
|
|
}
|
|
}, [shouldDisplay])
|
|
|
|
if (!shouldDisplay) {
|
|
return null
|
|
}
|
|
|
|
return (
|
|
<Alert className="mb-0" bsStyle="info" onDismiss={handleDismiss}>
|
|
<p>
|
|
<strong>{t('limited_offer')}</strong>
|
|
{`: ${t('institutional_leavers_survey_notification')} `}
|
|
<a
|
|
href="https://docs.google.com/forms/d/e/1FAIpQLSfYdeeoY5p1d31r5iUx1jw0O-Gd66vcsBi_Ntu3lJRMjV2EJA/viewform"
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
onClick={handleLinkClick}
|
|
>
|
|
{t('take_short_survey')}
|
|
</a>
|
|
</p>
|
|
</Alert>
|
|
)
|
|
}
|