Hospitality metricshospitality
Pure occupancy, ADR and RevPAR functions with ratio-of-sums aggregation and Format-based display helpers.
설치
pnpm
pnpm dlx shadcn@4.23.0 add @uikit/hospitality-metrics의존 아이템style
Default
- Occupancy
- 18%
- ADR
- ₩123
- RevPAR
- ₩22
- Skipped rows
- 1
hospitality-metrics-demo.tsx
import { aggregateMetrics, formatMetric } from "@/lib/hospitality-metrics";import { useFormat } from "@/lib/locale";
const rows = [ { sold: 8, available: 10, revenue: 960 }, { sold: 1, available: 40, revenue: 150 }, { sold: 5, available: 5, revenue: Number.NaN },];
export default function HospitalityMetricsDemo() { const format = useFormat(); const totals = aggregateMetrics(rows); return ( <dl className="grid grid-cols-[auto_1fr] gap-x-4 gap-y-1 text-sm"> <dt className="text-muted-foreground">Occupancy</dt> <dd>{formatMetric(format, "occupancy", totals.occupancy)}</dd> <dt className="text-muted-foreground">ADR</dt> <dd>{formatMetric(format, "adr", totals.adr)}</dd> <dt className="text-muted-foreground">RevPAR</dt> <dd>{formatMetric(format, "revpar", totals.revpar)}</dd> <dt className="text-muted-foreground">Skipped rows</dt> <dd>{totals.skipped}</dd> </dl> );}