diff --git a/apps/infoalloggi/src/components/area-riservata/userViewHeader.tsx b/apps/infoalloggi/src/components/area-riservata/userViewHeader.tsx
index e668652..0938956 100644
--- a/apps/infoalloggi/src/components/area-riservata/userViewHeader.tsx
+++ b/apps/infoalloggi/src/components/area-riservata/userViewHeader.tsx
@@ -3,6 +3,7 @@ import {
ExternalLink,
Mail,
MessagesSquare,
+ NotebookPen,
Paperclip,
Search,
ShoppingBag,
@@ -12,7 +13,18 @@ import {
import Link from "next/link";
import { usePathname } from "next/navigation";
import { useRouter } from "next/router";
+import { useState } from "react";
import toast from "react-hot-toast";
+import LoadingButton from "~/components/custom_ui/loading-button";
+import { Textarea } from "~/components/custom_ui/textarea";
+import {
+ Dialog,
+ DialogContent,
+ DialogDescription,
+ DialogHeader,
+ DialogTitle,
+ DialogTrigger,
+} from "~/components/ui/dialog";
import { useUserViewContext } from "~/lib/userViewContext";
import { api } from "~/utils/api";
import { Confirm } from "../confirm";
@@ -45,7 +57,7 @@ export const UserViewHeader = () => {
if (!data) return
Errore
;
return (
-
+
{data.username}
@@ -72,6 +84,7 @@ export const UserViewHeader = () => {
Invita al sito
+
@@ -205,8 +218,8 @@ const IntestazioneMaker = () => {
}
// Format names
- const cognome = titleCase(data.cognome);
- const nome = titleCase(data.nome);
+ const cognome = data.cognome.toUpperCase();
+ const nome = data.nome.toUpperCase();
const viaResidenza = titleCase(data.via_residenza);
const comuneNascita = titleCase(comune_nascita.nome);
const comuneResidenza = titleCase(comune_residenza.nome);
@@ -260,3 +273,51 @@ function titleCase(str: string | null | undefined): string {
})
.join(" ");
}
+
+const NoteUtenteDialog = () => {
+ const { id, note } = useUserViewContext();
+ const [newNote, setNewNote] = useState(note || "");
+ const utils = api.useUtils();
+ const { mutate, isPending } = api.users.editUser.useMutation({
+ onSuccess: async () => {
+ toast.success("Note aggiornate con successo");
+ await utils.users.invalidate();
+ },
+ onError: (error) => {
+ toast.error(error.message);
+ },
+ });
+
+ return (
+
+ );
+};
diff --git a/apps/infoalloggi/src/schemas/public/Users.ts b/apps/infoalloggi/src/schemas/public/Users.ts
index b9d82a4..a91d6f6 100644
--- a/apps/infoalloggi/src/schemas/public/Users.ts
+++ b/apps/infoalloggi/src/schemas/public/Users.ts
@@ -37,6 +37,8 @@ export default interface UsersTable {
salt: ColumnType
;
mustChangePassword: ColumnType;
+
+ note: ColumnType;
}
export type Users = Selectable;
diff --git a/apps/infoalloggi/src/server/api/routers/comunicazioni.ts b/apps/infoalloggi/src/server/api/routers/comunicazioni.ts
index 6c2b819..aafbd6f 100644
--- a/apps/infoalloggi/src/server/api/routers/comunicazioni.ts
+++ b/apps/infoalloggi/src/server/api/routers/comunicazioni.ts
@@ -16,6 +16,7 @@ import {
getEmails,
} from "~/server/services/email.service";
import { NewMail } from "~/server/services/mailer";
+import { CONDIZIONI_DEFAULT } from "~/server/services/prezziario.service";
import { genPdfSchedaAnnuncioBase64 } from "~/server/services/puppeteer.service";
import { zAnnuncioId, zOrdineId, zUserId } from "~/server/utils/zod_types";
@@ -246,7 +247,7 @@ export const comunicazioniRouter = createTRPCRouter({
generate: {
type: "condizioni",
stringId: (ordine.testo_condizioni ||
- "CONDIZIONI_CERCHI") as TestiEStringheStingaId,
+ CONDIZIONI_DEFAULT) as TestiEStringheStingaId,
},
encoding: "base64",
contentType: "application/pdf",
@@ -266,7 +267,7 @@ export const comunicazioniRouter = createTRPCRouter({
userId: ordine.userid,
},
},
- lock_expires: new Date(), // Lock expires in 1
+ lock_expires: new Date(Date.now() + 3000), // Lock for 30 sec
});
} catch (e) {
throw new Error(
diff --git a/apps/infoalloggi/src/server/api/routers/event_queue.ts b/apps/infoalloggi/src/server/api/routers/event_queue.ts
index 3d13efd..6602f73 100644
--- a/apps/infoalloggi/src/server/api/routers/event_queue.ts
+++ b/apps/infoalloggi/src/server/api/routers/event_queue.ts
@@ -1,4 +1,7 @@
-import { apiProcedure, createTRPCRouter } from "~/server/api/trpc";
+import {
+ apiProcedure,
+ createTRPCRouter,
+} from "~/server/api/trpc";
import { processEvents } from "~/server/controllers/event_queue.controller";
export const eventQueueRouter = createTRPCRouter({