eletrotupi / tcc/ frontend/lib/utils/time.ts80250865fa1e6f700b369882fb59ee19938f0ed0
1.0 KB | 25 lines Raw
1
import { format, isToday, isYesterday } from 'date-fns';
2
import { ptBR } from 'date-fns/locale';
3

4
type TimeBadgeVariant = 'morning' | 'afternoon' | 'night' | 'latenight';
5

6
export const TIME_BADGES: Record<TimeBadgeVariant, { label: string; variant: string; }> = {
7
  morning:   { label: 'Manhã',     variant: "green" },
8
  afternoon: { label: 'Tarde',     variant: "orange" },
9
  night:     { label: 'Noite',     variant: "blue" },
10
  latenight: { label: 'Madrugada', variant: "purple" },
11
};
12

13
export const getTimeBadge = (date: Date) => {
14
  const h = date.getHours();
15
  if (h >= 6  && h < 12) return TIME_BADGES.morning;
16
  if (h >= 12 && h < 18) return TIME_BADGES.afternoon;
17
  if (h >= 18 && h < 24) return TIME_BADGES.night;
18
  return TIME_BADGES.latenight;
19
}
20

21
export const formatMoment = (date: Date): string => {
22
  if (isToday(date))     return `Hoje às ${format(date, "HH'h'mm")}`;
23
  if (isYesterday(date)) return `Ontem às ${format(date, "HH'h'mm")}`;
24
  return format(date, "d 'de' MMM 'às' HH'h'mm", { locale: ptBR });
25
}