mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-30 11:34:15 -05:00
35 lines
1.2 KiB
JavaScript
35 lines
1.2 KiB
JavaScript
|
import { useCallback } from 'react'
|
||
|
import { useDetachCompileContext as useCompileContext } from '../context/detach-compile-context'
|
||
|
import { useProjectContext } from '../context/project-context'
|
||
|
import * as eventTracking from '../../infrastructure/event-tracking'
|
||
|
|
||
|
export function useStopOnFirstError(opts = {}) {
|
||
|
const { eventSource } = opts
|
||
|
const { stopOnFirstError, setStopOnFirstError } = useCompileContext()
|
||
|
const { _id: projectId } = useProjectContext()
|
||
|
|
||
|
const enableStopOnFirstError = useCallback(() => {
|
||
|
if (!stopOnFirstError) {
|
||
|
const opts = { projectId }
|
||
|
if (eventSource) {
|
||
|
opts.source = eventSource
|
||
|
}
|
||
|
eventTracking.sendMB('stop-on-first-error-enabled', opts)
|
||
|
}
|
||
|
setStopOnFirstError(true)
|
||
|
}, [eventSource, projectId, stopOnFirstError, setStopOnFirstError])
|
||
|
|
||
|
const disableStopOnFirstError = useCallback(() => {
|
||
|
const opts = { projectId }
|
||
|
if (eventSource) {
|
||
|
opts.source = eventSource
|
||
|
}
|
||
|
if (stopOnFirstError) {
|
||
|
eventTracking.sendMB('stop-on-first-error-disabled', opts)
|
||
|
}
|
||
|
setStopOnFirstError(false)
|
||
|
}, [eventSource, projectId, stopOnFirstError, setStopOnFirstError])
|
||
|
|
||
|
return { enableStopOnFirstError, disableStopOnFirstError }
|
||
|
}
|