import { reactive } from 'vue'

// 전역 치명적 오류 상태. 컴포넌트 트리 밖에서 관리해, 렌더 오류로 화면이
// 깨져도(흰 화면) App.vue 가 폴백 UI 를 대신 렌더할 수 있게 한다.
export const appError = reactive({ hasError: false })

export function reportFatal(err) {
  // 콘솔에는 원본을 남기고, 사용자에겐 폴백 화면을 보여준다.
  // eslint-disable-next-line no-console
  console.error('[fatal]', err)
  appError.hasError = true
}

export function clearFatal() {
  appError.hasError = false
}
