Merge pull request #8851 from overleaf/ab-fix-compile-time-warning-redisplay

Fix the compile time warning being displayed again after dismiss

GitOrigin-RevId: 4b3d80cfa7664e13154418aa510cb9265e282525
This commit is contained in:
Alexandre Bourdin 2022-07-13 17:19:20 +02:00 committed by Copybot
parent 1787026eac
commit a62fb305c9

View file

@ -11,9 +11,9 @@ const ONE_DAY = 24 * 60 * 60 * 24 * 1000
function CompileTimeWarning() {
const { t } = useTranslation()
const [lastDisplay, setLastDisplay] = usePersistedState(
'compile-time-warning-displayed-at',
0,
const [displayStatus, setDisplayStatus] = usePersistedState(
'compile-time-warning-display-status',
{ lastDisplayTime: 0, dismissed: false },
true
)
@ -22,24 +22,28 @@ function CompileTimeWarning() {
useEffect(() => {
if (showCompileTimeWarning) {
if (lastDisplay && Date.now() - lastDisplay < ONE_DAY) {
if (
displayStatus &&
Date.now() - displayStatus.lastDisplayTime < ONE_DAY
) {
return
}
setLastDisplay(Date.now())
setDisplayStatus({ lastDisplayTime: Date.now(), dismissed: false })
eventTracking.sendMB('compile-time-warning-displayed', {})
}
}, [showCompileTimeWarning, lastDisplay, setLastDisplay])
}, [showCompileTimeWarning, displayStatus, setDisplayStatus])
const getTimeSinceDisplayed = useCallback(() => {
return (Date.now() - lastDisplay) / 1000
}, [lastDisplay])
return (Date.now() - displayStatus.lastDisplayTime) / 1000
}, [displayStatus])
const closeWarning = useCallback(() => {
eventTracking.sendMB('compile-time-warning-dismissed', {
'time-since-displayed': getTimeSinceDisplayed(),
})
setShowCompileTimeWarning(false)
}, [getTimeSinceDisplayed, setShowCompileTimeWarning])
setDisplayStatus(displayStatus => ({ ...displayStatus, dismissed: true }))
}, [getTimeSinceDisplayed, setShowCompileTimeWarning, setDisplayStatus])
const handleUpgradeClick = useCallback(
event => {
@ -49,11 +53,12 @@ function CompileTimeWarning() {
'time-since-displayed': getTimeSinceDisplayed(),
})
setShowCompileTimeWarning(false)
setDisplayStatus(displayStatus => ({ ...displayStatus, dismissed: true }))
},
[getTimeSinceDisplayed, setShowCompileTimeWarning]
[getTimeSinceDisplayed, setShowCompileTimeWarning, setDisplayStatus]
)
if (!showCompileTimeWarning) {
if (!showCompileTimeWarning || displayStatus.dismissed) {
return null
}