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