stop-on-first-error-setting.tsx 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. import ToggleSetting from '../toggle-setting'
  2. import { useTranslation } from 'react-i18next'
  3. import { useDetachCompileContext as useCompileContext } from '@/shared/context/detach-compile-context'
  4. import { useCallback } from 'react'
  5. import { useStopOnFirstError } from '@/shared/hooks/use-stop-on-first-error'
  6. export default function StopOnFirstErrorSetting() {
  7. const { stopOnFirstError } = useCompileContext()
  8. const { enableStopOnFirstError, disableStopOnFirstError } =
  9. useStopOnFirstError({ eventSource: 'settings-modal' })
  10. const { t } = useTranslation()
  11. const changeStopOnFirstError = useCallback(
  12. (enabled: boolean) => {
  13. if (enabled) {
  14. enableStopOnFirstError()
  15. } else {
  16. disableStopOnFirstError()
  17. }
  18. },
  19. [enableStopOnFirstError, disableStopOnFirstError]
  20. )
  21. return (
  22. <ToggleSetting
  23. id="stopOnFirstError"
  24. label={t('stop_on_first_error')}
  25. description={t(
  26. 'stops_compiling_after_the_first_error_so_you_can_fix_issues_one_at_a_time'
  27. )}
  28. checked={stopOnFirstError}
  29. onChange={changeStopOnFirstError}
  30. />
  31. )
  32. }