Fix server/client component boundary issue with reasonColor/reasonLabel helper functions by moving them to shared utils
This commit is contained in:
@@ -4,6 +4,7 @@ import Link from "next/link";
|
|||||||
import { useMemo, useTransition } from "react";
|
import { useMemo, useTransition } from "react";
|
||||||
import { AbsenceReason } from "@prisma/client";
|
import { AbsenceReason } from "@prisma/client";
|
||||||
import { Baby, CalendarX2, Check, ChevronRight, Loader2 } from "lucide-react";
|
import { Baby, CalendarX2, Check, ChevronRight, Loader2 } from "lucide-react";
|
||||||
|
import { reasonColor, reasonLabel } from "@/lib/absence-utils";
|
||||||
import { toast } from "sonner";
|
import { toast } from "sonner";
|
||||||
|
|
||||||
import { reportAbsence } from "@/actions/absences";
|
import { reportAbsence } from "@/actions/absences";
|
||||||
@@ -331,14 +332,4 @@ function AbsenceRow({ absence }: { absence: AbsenceListItem }) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function reasonLabel(reason: AbsenceReason) {
|
|
||||||
if (reason === AbsenceReason.ILLNESS) return "Krank";
|
|
||||||
if (reason === AbsenceReason.VACATION) return "Urlaub";
|
|
||||||
return "Sonstiges";
|
|
||||||
}
|
|
||||||
|
|
||||||
function reasonColor(reason: AbsenceReason) {
|
|
||||||
if (reason === AbsenceReason.ILLNESS) return "var(--danger)";
|
|
||||||
if (reason === AbsenceReason.VACATION) return "var(--warn)";
|
|
||||||
return "var(--accent)";
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
import { AbsenceReason } from "@prisma/client";
|
import { AbsenceReason } from "@prisma/client";
|
||||||
import { CalendarDays, Circle, MessageSquareText, UserRound } from "lucide-react";
|
import { CalendarDays, Circle, MessageSquareText, UserRound } from "lucide-react";
|
||||||
|
import { reasonColor, reasonLabel } from "@/lib/absence-utils";
|
||||||
|
|
||||||
import { Badge } from "@/components/ui/badge";
|
import { Badge } from "@/components/ui/badge";
|
||||||
import {
|
import {
|
||||||
@@ -176,17 +177,7 @@ function getInitials(name: string) {
|
|||||||
.toUpperCase();
|
.toUpperCase();
|
||||||
}
|
}
|
||||||
|
|
||||||
export function reasonLabel(reason: AbsenceReason) {
|
|
||||||
if (reason === AbsenceReason.ILLNESS) return "Krank";
|
|
||||||
if (reason === AbsenceReason.VACATION) return "Urlaub";
|
|
||||||
return "Sonstiges";
|
|
||||||
}
|
|
||||||
|
|
||||||
export function reasonColor(reason: AbsenceReason) {
|
|
||||||
if (reason === AbsenceReason.ILLNESS) return "var(--danger)";
|
|
||||||
if (reason === AbsenceReason.VACATION) return "var(--warn)";
|
|
||||||
return "var(--accent)";
|
|
||||||
}
|
|
||||||
|
|
||||||
export function formatDateRange(startDate: string, endDate: string) {
|
export function formatDateRange(startDate: string, endDate: string) {
|
||||||
const start = new Date(`${startDate}T00:00:00`);
|
const start = new Date(`${startDate}T00:00:00`);
|
||||||
|
|||||||
@@ -21,10 +21,9 @@ import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
|
|||||||
import { Input } from "@/components/ui/input";
|
import { Input } from "@/components/ui/input";
|
||||||
import {
|
import {
|
||||||
AbsenceTable,
|
AbsenceTable,
|
||||||
reasonColor,
|
|
||||||
reasonLabel,
|
|
||||||
type AbsenceTableItem,
|
type AbsenceTableItem,
|
||||||
} from "./absence-table";
|
} from "./absence-table";
|
||||||
|
import { reasonColor, reasonLabel } from "@/lib/absence-utils";
|
||||||
|
|
||||||
export const metadata = { title: "Abwesenheiten · Kita-Planer" };
|
export const metadata = { title: "Abwesenheiten · Kita-Planer" };
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
import { AbsenceReason } from "@prisma/client";
|
||||||
|
|
||||||
|
export function reasonLabel(reason: AbsenceReason) {
|
||||||
|
if (reason === AbsenceReason.ILLNESS) return "Krank";
|
||||||
|
if (reason === AbsenceReason.VACATION) return "Urlaub";
|
||||||
|
return "Sonstiges";
|
||||||
|
}
|
||||||
|
|
||||||
|
export function reasonColor(reason: AbsenceReason) {
|
||||||
|
if (reason === AbsenceReason.ILLNESS) return "var(--danger)";
|
||||||
|
if (reason === AbsenceReason.VACATION) return "var(--warn)";
|
||||||
|
return "var(--accent)";
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user