import { ChevronDownCircle, ChevronRightCircle, Package } from "lucide-react";
import { useState } from "react";
import { LoadingPage } from "~/components/loading";
import { ServizioContent } from "~/components/servizio/main";
import {
Collapsible,
CollapsibleContent,
CollapsibleTrigger,
} from "~/components/ui/collapsible";
import { cn } from "~/lib/utils";
import { ServizioProvider } from "~/providers/ServizioProvider";
import type { UsersId } from "~/schemas/public/Users";
import type { ServizioData } from "~/server/controllers/servizio.controller";
import { api } from "~/utils/api";
export const TabRicerca = ({
userId,
isAdmin,
}: {
userId: UsersId;
isAdmin: boolean;
}) => {
const { data, isLoading } = api.servizio.getAllServizioAnnunci.useQuery({
userId,
});
if (isLoading) return ;
if (!data || data.length === 0) {
return (
Nessun servizio attualmente inserito
);
}
const first_choice = data.findIndex((s) => !s.isInterrotto && s.isOkAcconto);
const second_choice = data.findIndex((s) => !s.isInterrotto);
const getDefaultOpen = (idx: number) => {
if (first_choice !== -1) return idx === first_choice;
if (second_choice !== -1) return idx === second_choice;
return idx === 0;
};
return (
{data.map((servizio, idx) => {
return (
);
})}
);
};
const Row = ({
servizio,
userId,
isAdmin,
defaultOpen = false,
}: {
servizio: ServizioData;
userId: UsersId;
isAdmin: boolean;
defaultOpen: boolean;
}) => {
const [isOpen, setIsOpen] = useState(defaultOpen);
return (
{isOpen ? (
) : (
)}
Affitto {servizio.tipologia}
{(() => {
if (servizio.isInterrotto)
return Interrotto;
if (servizio.isOkAcconto && servizio.decorrenza !== null) {
return Attivo;
}
return Inattivo;
})()}
{servizio.created_at.toLocaleDateString("it", {
day: "2-digit",
month: "short",
})}
);
};