feat: update Servizio component to integrate AdminServizioActions and enhance user actions
This commit is contained in:
parent
8c7f0cd9b3
commit
8f662c56c1
3 changed files with 49 additions and 48 deletions
|
|
@ -52,7 +52,7 @@ import {
|
||||||
import { SaldoButton } from "./annuncio_actions";
|
import { SaldoButton } from "./annuncio_actions";
|
||||||
import { AnnuncioCard, AnnuncioDisplay } from "./annuncio_card";
|
import { AnnuncioCard, AnnuncioDisplay } from "./annuncio_card";
|
||||||
import { AnnunciCompatibili } from "./compatibili_dialog";
|
import { AnnunciCompatibili } from "./compatibili_dialog";
|
||||||
import { ServizioInfos } from "./servizio_actions";
|
import { AdminServizioActions, ServizioInfos } from "./servizio_actions";
|
||||||
|
|
||||||
export const ServizioList = ({
|
export const ServizioList = ({
|
||||||
data,
|
data,
|
||||||
|
|
@ -317,8 +317,9 @@ const Content = () => {
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<ServizioInfos />
|
<AdminServizioActions />
|
||||||
</div>
|
</div>
|
||||||
|
<ServizioInfos />
|
||||||
|
|
||||||
<Main />
|
<Main />
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ import {
|
||||||
} from "~/forms/FormEditServizioAdmin";
|
} from "~/forms/FormEditServizioAdmin";
|
||||||
import { FormNewOrder } from "~/forms/FormNewOrdine";
|
import { FormNewOrder } from "~/forms/FormNewOrdine";
|
||||||
import { FormServizio, type FormValues } from "~/forms/FormServizio";
|
import { FormServizio, type FormValues } from "~/forms/FormServizio";
|
||||||
import { cn, formatCurrency } from "~/lib/utils";
|
import { formatCurrency } from "~/lib/utils";
|
||||||
import { useTranslation } from "~/providers/I18nProvider";
|
import { useTranslation } from "~/providers/I18nProvider";
|
||||||
import { useServizio } from "~/providers/ServizioProvider";
|
import { useServizio } from "~/providers/ServizioProvider";
|
||||||
import type { AnnunciId } from "~/schemas/public/Annunci";
|
import type { AnnunciId } from "~/schemas/public/Annunci";
|
||||||
|
|
@ -68,7 +68,6 @@ import TipologiaPosizioneEnum from "~/schemas/public/TipologiaPosizioneEnum";
|
||||||
import type { UsersId } from "~/schemas/public/Users";
|
import type { UsersId } from "~/schemas/public/Users";
|
||||||
import { api } from "~/utils/api";
|
import { api } from "~/utils/api";
|
||||||
import { Confirm } from "../confirm";
|
import { Confirm } from "../confirm";
|
||||||
import { Separator } from "../ui/separator";
|
|
||||||
import {
|
import {
|
||||||
Table,
|
Table,
|
||||||
TableBody,
|
TableBody,
|
||||||
|
|
@ -82,51 +81,52 @@ export const ServizioInfos = () => {
|
||||||
return (
|
return (
|
||||||
<div className="grid w-full grid-cols-2 gap-2 sm:grid-cols-4">
|
<div className="grid w-full grid-cols-2 gap-2 sm:grid-cols-4">
|
||||||
<ServizioPrezzo />
|
<ServizioPrezzo />
|
||||||
<ServizioActions />
|
<UserActions />
|
||||||
|
{/* <ServizioActions /> */}
|
||||||
<ServizioOrders />
|
<ServizioOrders />
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const ServizioActions = () => {
|
// const ServizioActions = () => {
|
||||||
const { isAdmin } = useServizio();
|
// const { isAdmin } = useServizio();
|
||||||
return (
|
// return (
|
||||||
<Dialog>
|
// <Dialog>
|
||||||
<DialogTrigger asChild>
|
// <DialogTrigger asChild>
|
||||||
<Button className="flex-1" variant="outline">
|
// <Button className="flex-1" variant="outline">
|
||||||
<SlidersHorizontal />
|
// <SlidersHorizontal />
|
||||||
<span>Impostazioni</span>
|
// <span>Impostazioni</span>
|
||||||
</Button>
|
// </Button>
|
||||||
</DialogTrigger>
|
// </DialogTrigger>
|
||||||
<DialogContent className="sm:max-w-2xl">
|
// <DialogContent className="sm:max-w-2xl">
|
||||||
<DialogHeader>
|
// <DialogHeader>
|
||||||
<DialogTitle>Azioni Servizio</DialogTitle>
|
// <DialogTitle>Azioni Servizio</DialogTitle>
|
||||||
<DialogDescription className="sr-only">
|
// <DialogDescription className="sr-only">
|
||||||
Azioni disponibili per questo servizio
|
// Azioni disponibili per questo servizio
|
||||||
</DialogDescription>
|
// </DialogDescription>
|
||||||
</DialogHeader>
|
// </DialogHeader>
|
||||||
<div className="flex flex-col items-center gap-4">
|
// <div className="flex flex-col items-center gap-4">
|
||||||
{isAdmin && (
|
// {isAdmin && (
|
||||||
<div className="w-full text-center">
|
// <div className="w-full text-center">
|
||||||
<span>Azioni Admin</span>
|
// <span>Azioni Admin</span>
|
||||||
<Separator />
|
// <Separator />
|
||||||
</div>
|
// </div>
|
||||||
)}
|
// )}
|
||||||
<AdminActions />
|
// <AdminServizioActions />
|
||||||
{isAdmin && (
|
// {isAdmin && (
|
||||||
<div className="w-full text-center">
|
// <div className="w-full text-center">
|
||||||
<span>Azioni Utente</span>
|
// <span>Azioni Utente</span>
|
||||||
<Separator />
|
// <Separator />
|
||||||
</div>
|
// </div>
|
||||||
)}
|
// )}
|
||||||
<UserActions />
|
// <UserActions />
|
||||||
</div>
|
// </div>
|
||||||
</DialogContent>
|
// </DialogContent>
|
||||||
</Dialog>
|
// </Dialog>
|
||||||
);
|
// );
|
||||||
};
|
// };
|
||||||
|
|
||||||
const AdminActions = () => {
|
export const AdminServizioActions = () => {
|
||||||
const { servizio, isAdmin, userId } = useServizio();
|
const { servizio, isAdmin, userId } = useServizio();
|
||||||
if (!isAdmin) return null;
|
if (!isAdmin) return null;
|
||||||
return (
|
return (
|
||||||
|
|
@ -137,7 +137,7 @@ const AdminActions = () => {
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const UserActions = ({ className }: { className?: string }) => {
|
const UserActions = () => {
|
||||||
const { servizio, isAdmin } = useServizio();
|
const { servizio, isAdmin } = useServizio();
|
||||||
|
|
||||||
const canUserEdit = servizio.isOkAcconto && servizio.decorrenza !== null;
|
const canUserEdit = servizio.isOkAcconto && servizio.decorrenza !== null;
|
||||||
|
|
@ -149,10 +149,10 @@ const UserActions = ({ className }: { className?: string }) => {
|
||||||
|
|
||||||
if (isAdmin || canUserEdit) {
|
if (isAdmin || canUserEdit) {
|
||||||
return (
|
return (
|
||||||
<div className={cn("flex flex-wrap items-center gap-2", className)}>
|
<>
|
||||||
<EditParametri />
|
<EditParametri />
|
||||||
<InterruzioneServizio />
|
<InterruzioneServizio />
|
||||||
</div>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|
@ -676,7 +676,7 @@ const EditParametri = () => {
|
||||||
<CredenzaTrigger asChild>
|
<CredenzaTrigger asChild>
|
||||||
<Button
|
<Button
|
||||||
aria-label="Parametri di ricerca"
|
aria-label="Parametri di ricerca"
|
||||||
className=""
|
className="w-full"
|
||||||
disabled={
|
disabled={
|
||||||
!isAdmin &&
|
!isAdmin &&
|
||||||
(servizio.isInterrotto ||
|
(servizio.isInterrotto ||
|
||||||
|
|
|
||||||
|
|
@ -1336,7 +1336,7 @@ export const it: LangDict = {
|
||||||
},
|
},
|
||||||
parametri: {
|
parametri: {
|
||||||
title: "Parametri di ricerca",
|
title: "Parametri di ricerca",
|
||||||
btn: "Parametri",
|
btn: "Parametri ricerca",
|
||||||
},
|
},
|
||||||
interruzione: {
|
interruzione: {
|
||||||
btn: "Interruzione",
|
btn: "Interruzione",
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue