export const MAINTENANCE_CODE = "MAINTENANCE_MODE"; export const MAINTENANCE_PATH = "/maintenance"; export const DEFAULT_MAINTENANCE_MESSAGE = "سامانه موقتاً در دسترس نیست. لطفاً چند دقیقه دیگر مجدداً تلاش کنید."; /** * تشخیص پاسخ حالت تعمیرات backend. * * هر دو شرط لازم است: یک ۵۰۳ خالی می‌تواند از reverse proxy یا load balancer هم * بیاید و آن حالت تعمیرات نیست. */ export function isMaintenanceError(error) { const response = error?.response; if (response?.status !== 503) return false; return response?.data?.errors?.[0]?.code === MAINTENANCE_CODE; } export function maintenanceMessage(data) { return data?.errors?.[0]?.message ?? DEFAULT_MAINTENANCE_MESSAGE; } /** خطای redirect نکست با throw کار می‌کند و نباید در catchهای عمومی بلعیده شود. */ export function isNextRedirectError(error) { return typeof error?.digest === "string" && error.digest.startsWith("NEXT_REDIRECT"); }