This commit is contained in:
Marco Pedone 2026-05-06 09:42:34 +02:00
parent b9b9d302ac
commit 59dc00f048
3 changed files with 40 additions and 20 deletions

View file

@ -1,5 +1,6 @@
import { format } from "date-fns"; import { format } from "date-fns";
import { Check, SlidersHorizontal } from "lucide-react" import { Check, SlidersHorizontal } from "lucide-react";
import { useState } from "react"; import { useState } from "react";
import toast from "react-hot-toast"; import toast from "react-hot-toast";
import { z } from "zod/v4"; import { z } from "zod/v4";
@ -524,7 +525,7 @@ const FormServizio = ({
id="scadenza_motivazione_transitoria" id="scadenza_motivazione_transitoria"
onChange={field.onChange} onChange={field.onChange}
placeholder={t.anagrafica.scegli_data} placeholder={t.anagrafica.scegli_data}
value={field.value || new Date()} value={field.value}
/> />
)} )}
<FormDescription> <FormDescription>

View file

@ -176,6 +176,7 @@ export const RichiesteTable = ({ data }: RichiesteTableProps) => {
const columns_titles = { const columns_titles = {
id: "ID Ordine", id: "ID Ordine",
created_at: "Creato il",
username: "Utente", username: "Utente",
note: "Note", note: "Note",
decorrenza: "Decorrenza", decorrenza: "Decorrenza",
@ -184,7 +185,7 @@ export const RichiesteTable = ({ data }: RichiesteTableProps) => {
annunci: "Annunci", annunci: "Annunci",
ordini: "Ordini", ordini: "Ordini",
interruzione_expires_at: "Scad. interr.", interruzione_expires_at: "Scad. interr.",
actions: "Azioni", actions: "Apri",
}; };
const statusOptions = Object.entries(StatusMapping).map(([key, label]) => ({ const statusOptions = Object.entries(StatusMapping).map(([key, label]) => ({
label, label,
@ -219,12 +220,44 @@ export const RichiesteTable = ({ data }: RichiesteTableProps) => {
}; };
const columns: ColumnDef<Column>[] = [ const columns: ColumnDef<Column>[] = [
{
cell: ({ row }) => {
return (
<Link
href={`/area-riservata/admin/user-view/servizio/${row.original.user_id}/${row.original.servizio_id}`}
target="_blank"
>
<Button aria-label="Apri servizio" size="sm" variant="outline">
<ExternalLink className="size-5" />
</Button>
</Link>
);
},
header: ({ column }) => (
<DataTableColumnHeader column={column} title={columns_titles.actions} />
),
enableHiding: false,
id: "actions",
},
{ {
accessorKey: "id", accessorKey: "id",
cell: () => null, cell: () => null,
enableHiding: false, enableHiding: false,
header: () => null, header: () => null,
}, },
{
accessorKey: "created_at",
sortingFn: "datetime",
cell: ({ row }) => {
return <p>{format(row.original.created_at, "dd/MM")}</p>;
},
header: ({ column }) => (
<DataTableColumnHeader
column={column}
title={columns_titles.created_at}
/>
),
},
{ {
accessorKey: "username", accessorKey: "username",
@ -628,22 +661,6 @@ export const RichiesteTable = ({ data }: RichiesteTableProps) => {
), ),
enableSorting: false, enableSorting: false,
}, },
{
cell: ({ row }) => {
return (
<Link
href={`/area-riservata/admin/user-view/servizio/${row.original.user_id}/${row.original.servizio_id}`}
target="_blank"
>
<Button aria-label="Apri servizio" size="sm" variant="outline">
<ExternalLink className="size-5" />
</Button>
</Link>
);
},
enableHiding: false,
id: "actions",
},
]; ];
const pinnedFiltri: PinnedFiltro[] = [ const pinnedFiltri: PinnedFiltro[] = [
@ -666,7 +683,7 @@ export const RichiesteTable = ({ data }: RichiesteTableProps) => {
columns={columns} columns={columns}
columns_titles={columns_titles} columns_titles={columns_titles}
data={tabledata} data={tabledata}
defaultSort={[{ desc: true, id: "decorrenza" }]} defaultSort={[{ desc: true, id: "created_at" }]}
onTableInit={(t) => (tableRef.current = t)} onTableInit={(t) => (tableRef.current = t)}
pinnedFiltri={pinnedFiltri} pinnedFiltri={pinnedFiltri}
searchColumn={searchFiltro} searchColumn={searchFiltro}

View file

@ -1139,6 +1139,7 @@ export const getCompatibileAnnunci = async ({
export type RichiesteData = Pick< export type RichiesteData = Pick<
Servizio, Servizio,
| "created_at"
| "servizio_id" | "servizio_id"
| "user_id" | "user_id"
| "isInterrotto" | "isInterrotto"
@ -1180,6 +1181,7 @@ export const getRichieste = async (): Promise<RichiesteData[]> => {
.innerJoin("users", "users.id", "servizio.user_id") .innerJoin("users", "users.id", "servizio.user_id")
.select([ .select([
"servizio.servizio_id", "servizio.servizio_id",
"servizio.created_at",
"servizio.user_id", "servizio.user_id",
"servizio.isInterrotto", "servizio.isInterrotto",
"servizio.isOkAcconto", "servizio.isOkAcconto",