"use client"; import { LoadingState, ErrorState, EmptyState } from "@/components/ds"; import { HospitalityApiError } from "@/modules/hospitality/services/hospitality-api"; export function HospitalityPageLoader({ label = "در حال بارگذاری…" }: { label?: string }) { return ; } export function HospitalityPageError({ error, onRetry, }: { error: unknown; onRetry?: () => void; }) { if (error instanceof HospitalityApiError && error.status === 403) { return ( ); } const message = error instanceof Error ? error.message : "خطا در دریافت داده‌ها"; return ; } export function exportToCsv(title: string, rows: Record[], columns: string[]) { if (rows.length === 0) return; const header = columns.join(","); const body = rows .map((r) => columns.map((c) => JSON.stringify(r[c] ?? "")).join(",")) .join("\n"); const blob = new Blob(["\uFEFF" + header + "\n" + body], { type: "text/csv;charset=utf-8" }); const url = URL.createObjectURL(blob); const a = document.createElement("a"); a.href = url; a.download = `${title}-export.csv`; a.click(); URL.revokeObjectURL(url); }