mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-07 20:31:06 -05:00
Merge pull request #4025 from overleaf/ae-timeout-upgrade
Only show upgrade message on timeout if not already premium GitOrigin-RevId: 1378b0a98c6b511d63f2ce1192d3fdca16e8db26
This commit is contained in:
parent
79f58598eb
commit
01c8a8a04d
3 changed files with 45 additions and 2 deletions
|
@ -8,7 +8,7 @@ import { useEditorContext } from '../../../shared/context/editor-context'
|
|||
import StartFreeTrialButton from '../../../shared/components/start-free-trial-button'
|
||||
|
||||
function PreviewError({ name }) {
|
||||
const { isProjectOwner } = useEditorContext({
|
||||
const { hasPremiumCompile, isProjectOwner } = useEditorContext({
|
||||
isProjectOwner: PropTypes.bool,
|
||||
})
|
||||
const {
|
||||
|
@ -74,7 +74,7 @@ function PreviewError({ name }) {
|
|||
entryAriaLabel={t('compile_error_entry_description')}
|
||||
level="error"
|
||||
/>
|
||||
{name === 'timedout' && enableSubscriptions ? (
|
||||
{name === 'timedout' && enableSubscriptions && !hasPremiumCompile ? (
|
||||
<TimeoutUpgradePrompt isProjectOwner={isProjectOwner} />
|
||||
) : null}
|
||||
</>
|
||||
|
|
|
@ -19,6 +19,7 @@ EditorContext.Provider.propTypes = {
|
|||
brandedMenu: PropTypes.string,
|
||||
submitBtnHtml: PropTypes.string,
|
||||
}),
|
||||
hasPremiumCompile: PropTypes.bool,
|
||||
loading: PropTypes.bool,
|
||||
projectRootDocId: PropTypes.string,
|
||||
projectId: PropTypes.string.isRequired,
|
||||
|
@ -66,6 +67,11 @@ export function EditorProvider({ children, ide, settings }) {
|
|||
ide.$scope
|
||||
)
|
||||
|
||||
const [compileGroup] = useScopeValue(
|
||||
'project.features.compileGroup',
|
||||
ide.$scope
|
||||
)
|
||||
|
||||
const [rootFolder] = useScopeValue('rootFolder', ide.$scope)
|
||||
|
||||
const renameProject = useCallback(
|
||||
|
@ -98,6 +104,7 @@ export function EditorProvider({ children, ide, settings }) {
|
|||
|
||||
const editorContextValue = {
|
||||
cobranding,
|
||||
hasPremiumCompile: compileGroup === 'priority',
|
||||
loading,
|
||||
projectId: window.project_id,
|
||||
projectRootDocId,
|
||||
|
|
|
@ -16,6 +16,9 @@ export const TimedOutError = args => {
|
|||
owner: {
|
||||
_id: window.user.id,
|
||||
},
|
||||
features: {
|
||||
compileGroup: 'standard',
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
@ -34,6 +37,39 @@ TimedOutError.args = {
|
|||
},
|
||||
}
|
||||
|
||||
export const TimedOutErrorWithPriorityCompile = args => {
|
||||
useFetchMock(fetchMock => {
|
||||
fetchMock.post('express:/event/:key', 202)
|
||||
})
|
||||
|
||||
const ide = {
|
||||
$scope: {
|
||||
$watch: () => () => null,
|
||||
project: {
|
||||
owner: {
|
||||
_id: window.user.id,
|
||||
},
|
||||
features: {
|
||||
compileGroup: 'priority',
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
return (
|
||||
<ApplicationProvider>
|
||||
<EditorProvider ide={ide} settings={{}}>
|
||||
<PreviewLogsPane {...args} />
|
||||
</EditorProvider>
|
||||
</ApplicationProvider>
|
||||
)
|
||||
}
|
||||
TimedOutErrorWithPriorityCompile.args = {
|
||||
errors: {
|
||||
timedout: {},
|
||||
},
|
||||
}
|
||||
|
||||
export default {
|
||||
title: 'Preview Logs / Pane',
|
||||
component: PreviewLogsPane,
|
||||
|
|
Loading…
Reference in a new issue