chore: update biome schema version and refactor code style
- Updated biome schema version from 2.3.1 to 2.3.11 in biome.json. - Refactored package.json for better readability and updated dependencies. - Adjusted class names in InformationBubble, ChatAttachments, ChatBubble, FileUpload, Loading, and other components for consistent styling. - Changed height classes from fixed pixel values to relative values for better responsiveness. - Removed unnecessary comments and unused variables in user.controller.ts.
This commit is contained in:
parent
f7831d6b57
commit
539f4dc4f8
14 changed files with 182 additions and 183 deletions
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://biomejs.dev/schemas/2.3.1/schema.json",
|
"$schema": "https://biomejs.dev/schemas/2.3.11/schema.json",
|
||||||
"assist": {
|
"assist": {
|
||||||
"actions": {
|
"actions": {
|
||||||
"source": {
|
"source": {
|
||||||
|
|
@ -9,7 +9,6 @@
|
||||||
},
|
},
|
||||||
"enabled": true
|
"enabled": true
|
||||||
},
|
},
|
||||||
|
|
||||||
"files": {
|
"files": {
|
||||||
"ignoreUnknown": true,
|
"ignoreUnknown": true,
|
||||||
"includes": [
|
"includes": [
|
||||||
|
|
@ -84,7 +83,6 @@
|
||||||
"complexity": {
|
"complexity": {
|
||||||
"noUselessFragments": "off"
|
"noUselessFragments": "off"
|
||||||
},
|
},
|
||||||
|
|
||||||
"correctness": {
|
"correctness": {
|
||||||
"noUndeclaredVariables": "on",
|
"noUndeclaredVariables": "on",
|
||||||
"useExhaustiveDependencies": "off",
|
"useExhaustiveDependencies": "off",
|
||||||
|
|
@ -124,11 +122,14 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"plugins": ["biome_plugins/missing.grit", "biome_plugins/null.grit"],
|
"plugins": [
|
||||||
|
"biome_plugins/missing.grit",
|
||||||
|
"biome_plugins/null.grit"
|
||||||
|
],
|
||||||
"vcs": {
|
"vcs": {
|
||||||
"clientKind": "git",
|
"clientKind": "git",
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"root": "../../",
|
"root": "../../",
|
||||||
"useIgnoreFile": false
|
"useIgnoreFile": false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,137 +1,137 @@
|
||||||
{
|
{
|
||||||
"name": "infoalloggi",
|
"name": "infoalloggi",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "next build",
|
"build": "next build",
|
||||||
"d": "npm run-p dev stripe-dev -cl",
|
"d": "npm run-p dev stripe-dev -cl",
|
||||||
"dev": "next dev --turbopack",
|
"dev": "next dev --turbopack",
|
||||||
"dev-https": "cross-env NEXT_PUBLIC_BASE_URL='https://localhost:3000' INTERNAL_BASE_URL='https://localhost:3000' BASE_URL='https://localhost:3000' next dev --experimental-https --turbopack",
|
"dev-https": "cross-env NEXT_PUBLIC_BASE_URL='https://localhost:3000' INTERNAL_BASE_URL='https://localhost:3000' BASE_URL='https://localhost:3000' next dev --experimental-https --turbopack",
|
||||||
"email": "cross-env NEXT_PUBLIC_BASE_URL='https://localhost:3000' email dev --port 3500",
|
"email": "cross-env NEXT_PUBLIC_BASE_URL='https://localhost:3000' email dev --port 3500",
|
||||||
"idev": "cross-env NODE_OPTIONS='--inspect' next dev --turbopack",
|
"idev": "cross-env NODE_OPTIONS='--inspect' next dev --turbopack",
|
||||||
"knip": "knip --no-exit-code --no-config-hints",
|
"knip": "knip --no-exit-code --no-config-hints",
|
||||||
"lint": "biome lint",
|
"lint": "biome lint",
|
||||||
"format": "biome format --write",
|
"format": "biome format --write",
|
||||||
"pg-typegen": "npx kanel",
|
"pg-typegen": "npx kanel",
|
||||||
"start": "next start",
|
"start": "next start",
|
||||||
"stripe-dev": "stripe listen --forward-to https://localhost:3000/api/stripe-webhook",
|
"stripe-dev": "stripe listen --forward-to https://localhost:3000/api/stripe-webhook",
|
||||||
"test": "npm run lint && npm run types",
|
"test": "npm run lint && npm run types",
|
||||||
"types": "tsc --noEmit",
|
"types": "tsc --noEmit",
|
||||||
"analyze": "cross-env ANALYZE=true next build"
|
"analyze": "cross-env ANALYZE=true next build"
|
||||||
},
|
},
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@dnd-kit/core": "^6.3.1",
|
"@dnd-kit/core": "^6.3.1",
|
||||||
"@dnd-kit/sortable": "^10.0.0",
|
"@dnd-kit/sortable": "^10.0.0",
|
||||||
"@dnd-kit/utilities": "^3.2.2",
|
"@dnd-kit/utilities": "^3.2.2",
|
||||||
"@fattureincloud/fattureincloud-ts-sdk": "^2.1.1",
|
"@fattureincloud/fattureincloud-ts-sdk": "^2.1.1",
|
||||||
"@hookform/resolvers": "^5.2.2",
|
"@hookform/resolvers": "^5.2.2",
|
||||||
"@next/bundle-analyzer": "^16.0.2",
|
"@next/bundle-analyzer": "^16.0.2",
|
||||||
"@radix-ui/react-dialog": "^1.1.15",
|
"@radix-ui/react-dialog": "^1.1.15",
|
||||||
"@radix-ui/react-popover": "^1.1.14",
|
"@radix-ui/react-popover": "^1.1.14",
|
||||||
"@radix-ui/react-scroll-area": "^1.2.10",
|
"@radix-ui/react-scroll-area": "^1.2.10",
|
||||||
"@radix-ui/react-slot": "^1.2.3",
|
"@radix-ui/react-slot": "^1.2.3",
|
||||||
"@radix-ui/react-toggle-group": "^1.1.10",
|
"@radix-ui/react-toggle-group": "^1.1.10",
|
||||||
"@radix-ui/react-tooltip": "^1.2.8",
|
"@radix-ui/react-tooltip": "^1.2.8",
|
||||||
"@react-email/components": "^1.0.4",
|
"@react-email/components": "^1.0.4",
|
||||||
"@react-email/render": "^2.0.2",
|
"@react-email/render": "^2.0.2",
|
||||||
"@stripe/react-stripe-js": "^3.9.0",
|
"@stripe/react-stripe-js": "^3.9.0",
|
||||||
"@stripe/stripe-js": "^7.8.0",
|
"@stripe/stripe-js": "^7.8.0",
|
||||||
"@t3-oss/env-nextjs": "^0.13.8",
|
"@t3-oss/env-nextjs": "^0.13.8",
|
||||||
"@tailwindcss/forms": "^0.5.10",
|
"@tailwindcss/forms": "^0.5.10",
|
||||||
"@tailwindcss/postcss": "^4.1.11",
|
"@tailwindcss/postcss": "^4.1.11",
|
||||||
"@tailwindcss/typography": "^0.5.16",
|
"@tailwindcss/typography": "^0.5.16",
|
||||||
"@tanstack/react-query": "^5.74.4",
|
"@tanstack/react-query": "^5.74.4",
|
||||||
"@tanstack/react-table": "^8.21.3",
|
"@tanstack/react-table": "^8.21.3",
|
||||||
"@tanstack/react-virtual": "^3.13.12",
|
"@tanstack/react-virtual": "^3.13.12",
|
||||||
"@tiptap/core": "^3.15.3",
|
"@tiptap/core": "^3.15.3",
|
||||||
"@tiptap/extension-link": "^3.15.3",
|
"@tiptap/extension-link": "^3.15.3",
|
||||||
"@tiptap/extension-underline": "^3.15.3",
|
"@tiptap/extension-underline": "^3.15.3",
|
||||||
"@tiptap/pm": "^3.15.3",
|
"@tiptap/pm": "^3.15.3",
|
||||||
"@tiptap/react": "^3.15.3",
|
"@tiptap/react": "^3.15.3",
|
||||||
"@tiptap/starter-kit": "^3.15.3",
|
"@tiptap/starter-kit": "^3.15.3",
|
||||||
"@trpc/client": "^11.1.0",
|
"@trpc/client": "^11.1.0",
|
||||||
"@trpc/next": "^11.4.3",
|
"@trpc/next": "^11.4.3",
|
||||||
"@trpc/react-query": "^11.1.0",
|
"@trpc/react-query": "^11.1.0",
|
||||||
"@trpc/server": "^11.1.0",
|
"@trpc/server": "^11.1.0",
|
||||||
"class-variance-authority": "^0.7.1",
|
"class-variance-authority": "^0.7.1",
|
||||||
"clsx": "^2.1.1",
|
"clsx": "^2.1.1",
|
||||||
"cmdk": "^1.1.1",
|
"cmdk": "^1.1.1",
|
||||||
"cookies-next": "^6.1.1",
|
"cookies-next": "^6.1.1",
|
||||||
"date-fns": "^4.1.0",
|
"date-fns": "^4.1.0",
|
||||||
"embla-carousel-react": "^8.6.0",
|
"embla-carousel-react": "^8.6.0",
|
||||||
"framer-motion": "^12.26.2",
|
"framer-motion": "^12.26.2",
|
||||||
"frimousse": "^0.3.0",
|
"frimousse": "^0.3.0",
|
||||||
"html2canvas-pro": "^1.5.13",
|
"html2canvas-pro": "^1.5.13",
|
||||||
"ioredis": "^5.9.1",
|
"ioredis": "^5.9.1",
|
||||||
"jose": "^6.0.12",
|
"jose": "^6.0.12",
|
||||||
"jspdf": "^4.0.0",
|
"jspdf": "^4.0.0",
|
||||||
"kysely": "^0.28.9",
|
"kysely": "^0.28.9",
|
||||||
"kysely-plugin-serialize": "^0.8.2",
|
"kysely-plugin-serialize": "^0.8.2",
|
||||||
"leaflet": "^1.9.4",
|
"leaflet": "^1.9.4",
|
||||||
"leaflet-defaulticon-compatibility": "^0.1.2",
|
"leaflet-defaulticon-compatibility": "^0.1.2",
|
||||||
"lucide-react": "^0.562.0",
|
"lucide-react": "^0.562.0",
|
||||||
"next": "15.4.10",
|
"next": "15.4.10",
|
||||||
"next-themes": "^0.4.6",
|
"next-themes": "^0.4.6",
|
||||||
"nextjs-progressbar": "^0.0.16",
|
"nextjs-progressbar": "^0.0.16",
|
||||||
"nodemailer": "^7.0.12",
|
"nodemailer": "^7.0.12",
|
||||||
"nodemailer-html-to-text": "^3.2.0",
|
"nodemailer-html-to-text": "^3.2.0",
|
||||||
"nuqs": "^2.8.6",
|
"nuqs": "^2.8.6",
|
||||||
"pg": "^8.16.3",
|
"pg": "^8.16.3",
|
||||||
"postcss": "^8.5.6",
|
"postcss": "^8.5.6",
|
||||||
"radix-ui": "^1.4.3",
|
"radix-ui": "^1.4.3",
|
||||||
"react": "^19.1.0",
|
"react": "^19.1.0",
|
||||||
"react-colorful": "^5.6.1",
|
"react-colorful": "^5.6.1",
|
||||||
"react-day-picker": "^9.11.1",
|
"react-day-picker": "^9.11.1",
|
||||||
"react-dom": "^19.1.1",
|
"react-dom": "^19.1.1",
|
||||||
"react-email": "^5.2.3",
|
"react-email": "^5.2.3",
|
||||||
"react-hook-form": "^7.71.1",
|
"react-hook-form": "^7.71.1",
|
||||||
"react-hot-toast": "^2.5.2",
|
"react-hot-toast": "^2.5.2",
|
||||||
"react-is": "^19.2.0",
|
"react-is": "^19.2.0",
|
||||||
"react-leaflet": "^5.0.0",
|
"react-leaflet": "^5.0.0",
|
||||||
"react-number-format": "^5.4.4",
|
"react-number-format": "^5.4.4",
|
||||||
"react-pdf": "^10.2.0",
|
"react-pdf": "^10.2.0",
|
||||||
"react-phone-number-input": "^3.4.14",
|
"react-phone-number-input": "^3.4.14",
|
||||||
"react-reverse-portal": "^2.3.0",
|
"react-reverse-portal": "^2.3.0",
|
||||||
"react-select": "^5.10.2",
|
"react-select": "^5.10.2",
|
||||||
"react-to-print": "^3.2.0",
|
"react-to-print": "^3.2.0",
|
||||||
"react-use": "^17.6.0",
|
"react-use": "^17.6.0",
|
||||||
"recharts": "^2.15.4",
|
"recharts": "^2.15.4",
|
||||||
"sharp": "^0.34.5",
|
"sharp": "^0.34.5",
|
||||||
"stripe": "^20.1.2",
|
"stripe": "^20.1.2",
|
||||||
"superjson": "2.2.2",
|
"superjson": "2.2.2",
|
||||||
"tailwind-merge": "3.3",
|
"tailwind-merge": "3.3",
|
||||||
"tailwind-scrollbar": "^4.0.2",
|
"tailwind-scrollbar": "^4.0.2",
|
||||||
"tailwindcss": "^4.1.11",
|
"tailwindcss": "^4.1.11",
|
||||||
"tunnel-rat": "^0.1.2",
|
"tunnel-rat": "^0.1.2",
|
||||||
"tw-animate-css": "^1.3.6",
|
"tw-animate-css": "^1.3.6",
|
||||||
"type-fest": "^5.4.1",
|
"type-fest": "^5.4.1",
|
||||||
"uuid": "^13.0.0",
|
"uuid": "^13.0.0",
|
||||||
"vaul": "^1.1.2",
|
"vaul": "^1.1.2",
|
||||||
"zod": "^4.1.12"
|
"zod": "^4.1.12"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@biomejs/biome": "^2.3.1",
|
"@biomejs/biome": "^2.3.1",
|
||||||
"@hookform/devtools": "^4.4.0",
|
"@hookform/devtools": "^4.4.0",
|
||||||
"@react-email/preview-server": "^5.2.3",
|
"@react-email/preview-server": "^5.2.3",
|
||||||
"@total-typescript/ts-reset": "^0.6.1",
|
"@total-typescript/ts-reset": "^0.6.1",
|
||||||
"@types/leaflet": "^1.9.20",
|
"@types/leaflet": "^1.9.20",
|
||||||
"@types/node": "^24.2.0",
|
"@types/node": "^24.2.0",
|
||||||
"@types/nodemailer": "^7.0.5",
|
"@types/nodemailer": "^7.0.5",
|
||||||
"@types/nodemailer-html-to-text": "^3.1.3",
|
"@types/nodemailer-html-to-text": "^3.1.3",
|
||||||
"@types/pg": "^8.15.5",
|
"@types/pg": "^8.15.5",
|
||||||
"@types/react": "^19.1.8",
|
"@types/react": "^19.1.8",
|
||||||
"@types/react-dom": "^19.1.7",
|
"@types/react-dom": "^19.1.7",
|
||||||
"@types/react-is": "^19.2.0",
|
"@types/react-is": "^19.2.0",
|
||||||
"@types/uuid": "^10.0.0",
|
"@types/uuid": "^10.0.0",
|
||||||
"cross-env": "^10.1.0",
|
"cross-env": "^10.1.0",
|
||||||
"jiti": "^2.6.1",
|
"jiti": "^2.6.1",
|
||||||
"kanel": "^3.14.2",
|
"kanel": "^3.14.2",
|
||||||
"kanel-kysely": "^0.7.1",
|
"kanel-kysely": "^0.7.1",
|
||||||
"knip": "^5.81.0",
|
"knip": "^5.81.0",
|
||||||
"npm-run-all": "^4.1.5",
|
"npm-run-all": "^4.1.5",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.2"
|
||||||
},
|
},
|
||||||
"ct3aMetadata": {
|
"ct3aMetadata": {
|
||||||
"initVersion": "7.9.0"
|
"initVersion": "7.9.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ const InformationBubble = ({
|
||||||
<HybridTooltip>
|
<HybridTooltip>
|
||||||
<HybridTooltipTrigger
|
<HybridTooltipTrigger
|
||||||
className={cn(
|
className={cn(
|
||||||
`-top-2 -right-2 absolute flex size-6 items-center justify-center rounded-full bg-white`,
|
`absolute -top-2 -right-2 flex size-6 items-center justify-center rounded-full bg-white`,
|
||||||
className,
|
className,
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ export const ChatAttachments = ({
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
>
|
>
|
||||||
{attachments && attachments.length > 0 && (
|
{attachments && attachments.length > 0 && (
|
||||||
<span className="-top-1 absolute right-0 rounded-full bg-blue-500 px-1 font-bold text-white text-xs">
|
<span className="absolute -top-1 right-0 rounded-full bg-blue-500 px-1 font-bold text-white text-xs">
|
||||||
{attachments.length}
|
{attachments.length}
|
||||||
</span>
|
</span>
|
||||||
)}
|
)}
|
||||||
|
|
@ -71,7 +71,7 @@ export const ChatAttachments = ({
|
||||||
userId={chatUserData.id}
|
userId={chatUserData.id}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div className="h-auto max-h-[40rem] max-w-lg overflow-auto rounded-lg">
|
<div className="h-auto max-h-160 max-w-lg overflow-auto rounded-lg">
|
||||||
{attachmentsLoading ? (
|
{attachmentsLoading ? (
|
||||||
<LoadingPage />
|
<LoadingPage />
|
||||||
) : (
|
) : (
|
||||||
|
|
@ -137,7 +137,7 @@ export const ChatAttachments = ({
|
||||||
>
|
>
|
||||||
<Paperclip /> {t.allegati.i_tuoi_allegati}
|
<Paperclip /> {t.allegati.i_tuoi_allegati}
|
||||||
{attachments && attachments.length > 0 && (
|
{attachments && attachments.length > 0 && (
|
||||||
<span className="-top-1 -right-1 absolute flex size-5 items-center justify-center rounded-full bg-red-600 text-white text-xs">
|
<span className="absolute -top-1 -right-1 flex size-5 items-center justify-center rounded-full bg-red-600 text-white text-xs">
|
||||||
{attachments.length}
|
{attachments.length}
|
||||||
</span>
|
</span>
|
||||||
)}
|
)}
|
||||||
|
|
|
||||||
|
|
@ -100,7 +100,7 @@ const ChatBubbleMessage = React.forwardRef<
|
||||||
<div
|
<div
|
||||||
className={cn(
|
className={cn(
|
||||||
chatBubbleMessageVariants({ className, layout, variant }),
|
chatBubbleMessageVariants({ className, layout, variant }),
|
||||||
"max-w-full whitespace-pre-wrap break-words",
|
"wrap-break-word max-w-full whitespace-pre-wrap",
|
||||||
)}
|
)}
|
||||||
ref={ref}
|
ref={ref}
|
||||||
{...props}
|
{...props}
|
||||||
|
|
@ -173,7 +173,7 @@ const ChatBubbleActionWrapper = React.forwardRef<
|
||||||
{show && (
|
{show && (
|
||||||
<div
|
<div
|
||||||
className={cn(
|
className={cn(
|
||||||
"-translate-y-1/2 absolute top-1/2 flex opacity-0 transition-opacity duration-200 group-hover:opacity-100",
|
"absolute top-1/2 flex -translate-y-1/2 opacity-0 transition-opacity duration-200 group-hover:opacity-100",
|
||||||
variant === "sent"
|
variant === "sent"
|
||||||
? "-left-1 -translate-x-full flex-row-reverse"
|
? "-left-1 -translate-x-full flex-row-reverse"
|
||||||
: "-right-1 translate-x-full",
|
: "-right-1 translate-x-full",
|
||||||
|
|
|
||||||
|
|
@ -817,7 +817,7 @@ function FileUploadDropzone(props: FileUploadDropzoneProps) {
|
||||||
tabIndex={context.disabled ? undefined : 0}
|
tabIndex={context.disabled ? undefined : 0}
|
||||||
{...dropzoneProps}
|
{...dropzoneProps}
|
||||||
className={cn(
|
className={cn(
|
||||||
"relative flex select-none flex-col items-center justify-center gap-2 rounded-lg border-2 border-dashed p-6 outline-none transition-colors hover:bg-accent/30 focus-visible:border-ring/50 data-[disabled]:pointer-events-none data-[dragging]:border-primary/30 data-[invalid]:border-destructive data-[dragging]:bg-accent/30 data-[invalid]:ring-destructive/20",
|
"relative flex select-none flex-col items-center justify-center gap-2 rounded-lg border-2 border-dashed p-6 outline-none transition-colors hover:bg-accent/30 focus-visible:border-ring/50 data-disabled:pointer-events-none data-dragging:border-primary/30 data-invalid:border-destructive data-dragging:bg-accent/30 data-invalid:ring-destructive/20",
|
||||||
className,
|
className,
|
||||||
)}
|
)}
|
||||||
onClick={onClick}
|
onClick={onClick}
|
||||||
|
|
@ -1231,12 +1231,12 @@ function FileUploadItemProgress(props: FileUploadItemProgressProps) {
|
||||||
role="progressbar"
|
role="progressbar"
|
||||||
{...progressProps}
|
{...progressProps}
|
||||||
className={cn(
|
className={cn(
|
||||||
"-translate-x-1/2 -translate-y-1/2 absolute top-1/2 left-1/2",
|
"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2",
|
||||||
className,
|
className,
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
<svg
|
<svg
|
||||||
className="rotate-[-90deg] transform"
|
className="-rotate-90 transform"
|
||||||
fill="none"
|
fill="none"
|
||||||
height={size}
|
height={size}
|
||||||
stroke="currentColor"
|
stroke="currentColor"
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ export const LoadingPage = () => {
|
||||||
return (
|
return (
|
||||||
<div className="flex h-full max-h-full w-full animate-pulse items-center justify-center py-20">
|
<div className="flex h-full max-h-full w-full animate-pulse items-center justify-center py-20">
|
||||||
<div className="relative flex size-40 animate-spin items-center justify-center rounded-full border-8 border-muted-foreground border-t-red-400 text-4xl text-red-400"></div>
|
<div className="relative flex size-40 animate-spin items-center justify-center rounded-full border-8 border-muted-foreground border-t-red-400 text-4xl text-red-400"></div>
|
||||||
<ASvg className="-translate-y-2 absolute size-24" />
|
<ASvg className="absolute size-24 -translate-y-2" />
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -293,7 +293,7 @@ const AddAnnuncio = ({
|
||||||
</Button>
|
</Button>
|
||||||
</DialogTrigger>
|
</DialogTrigger>
|
||||||
<DialogContent
|
<DialogContent
|
||||||
className="sm:max-w-[425px]"
|
className="sm:max-w-106.25"
|
||||||
onInteractOutside={(e) => {
|
onInteractOutside={(e) => {
|
||||||
if (selectedAnnunci.length !== 0) {
|
if (selectedAnnunci.length !== 0) {
|
||||||
e.preventDefault(); // Prevent closing the dialog if there are selected announcements
|
e.preventDefault(); // Prevent closing the dialog if there are selected announcements
|
||||||
|
|
@ -559,7 +559,6 @@ const EditServizioAdmin = () => {
|
||||||
</CollapsibleTrigger>
|
</CollapsibleTrigger>
|
||||||
<CollapsibleContent>
|
<CollapsibleContent>
|
||||||
{(() => {
|
{(() => {
|
||||||
// biome-ignore lint/correctness/noUnusedVariables: <need to extract>
|
|
||||||
const { annunci, ...rest } = servizio;
|
const { annunci, ...rest } = servizio;
|
||||||
return <pre>{JSON.stringify(rest, null, 2)}</pre>;
|
return <pre>{JSON.stringify(rest, null, 2)}</pre>;
|
||||||
})()}
|
})()}
|
||||||
|
|
|
||||||
|
|
@ -183,8 +183,8 @@ function CarouselPrevious({
|
||||||
className={cn(
|
className={cn(
|
||||||
"absolute size-8 rounded-full",
|
"absolute size-8 rounded-full",
|
||||||
orientation === "horizontal"
|
orientation === "horizontal"
|
||||||
? "-left-12 -translate-y-1/2 top-1/2"
|
? "top-1/2 -left-12 -translate-y-1/2"
|
||||||
: "-top-12 -translate-x-1/2 left-1/2 rotate-90",
|
: "-top-12 left-1/2 -translate-x-1/2 rotate-90",
|
||||||
className,
|
className,
|
||||||
)}
|
)}
|
||||||
data-slot="carousel-previous"
|
data-slot="carousel-previous"
|
||||||
|
|
@ -213,8 +213,8 @@ function CarouselNext({
|
||||||
className={cn(
|
className={cn(
|
||||||
"absolute size-8 rounded-full",
|
"absolute size-8 rounded-full",
|
||||||
orientation === "horizontal"
|
orientation === "horizontal"
|
||||||
? "-right-12 -translate-y-1/2 top-1/2"
|
? "top-1/2 -right-12 -translate-y-1/2"
|
||||||
: "-bottom-12 -translate-x-1/2 left-1/2 rotate-90",
|
: "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
|
||||||
className,
|
className,
|
||||||
)}
|
)}
|
||||||
data-slot="carousel-next"
|
data-slot="carousel-next"
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ function SelectTrigger({
|
||||||
return (
|
return (
|
||||||
<SelectPrimitive.Trigger
|
<SelectPrimitive.Trigger
|
||||||
className={cn(
|
className={cn(
|
||||||
"flex w-fit items-center justify-between gap-2 whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs outline-hidden transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[size=default]:h-9 data-[size=sm]:h-8 data-[placeholder]:text-muted-foreground *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 dark:bg-input/30 dark:aria-invalid:ring-destructive/40 dark:hover:bg-input/50 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
"flex w-fit items-center justify-between gap-2 whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs outline-hidden transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[size=default]:h-9 data-[size=sm]:h-8 data-placeholder:text-muted-foreground *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 dark:bg-input/30 dark:aria-invalid:ring-destructive/40 dark:hover:bg-input/50 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
||||||
className,
|
className,
|
||||||
)}
|
)}
|
||||||
data-size={size}
|
data-size={size}
|
||||||
|
|
@ -60,9 +60,9 @@ function SelectContent({
|
||||||
<SelectPrimitive.Portal>
|
<SelectPrimitive.Portal>
|
||||||
<SelectPrimitive.Content
|
<SelectPrimitive.Content
|
||||||
className={cn(
|
className={cn(
|
||||||
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-y-auto overflow-x-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=closed]:animate-out data-[state=open]:animate-in",
|
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-32 origin-(--radix-select-content-transform-origin) overflow-y-auto overflow-x-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=closed]:animate-out data-[state=open]:animate-in",
|
||||||
position === "popper" &&
|
position === "popper" &&
|
||||||
"data-[side=left]:-translate-x-1 data-[side=top]:-translate-y-1 data-[side=right]:translate-x-1 data-[side=bottom]:translate-y-1",
|
"data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1",
|
||||||
className,
|
className,
|
||||||
)}
|
)}
|
||||||
data-slot="select-content"
|
data-slot="select-content"
|
||||||
|
|
@ -74,7 +74,7 @@ function SelectContent({
|
||||||
className={cn(
|
className={cn(
|
||||||
"p-1",
|
"p-1",
|
||||||
position === "popper" &&
|
position === "popper" &&
|
||||||
"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1",
|
"h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width) scroll-my-1",
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
{children}
|
{children}
|
||||||
|
|
@ -106,7 +106,7 @@ function SelectItem({
|
||||||
return (
|
return (
|
||||||
<SelectPrimitive.Item
|
<SelectPrimitive.Item
|
||||||
className={cn(
|
className={cn(
|
||||||
"relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
|
"relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
|
||||||
className,
|
className,
|
||||||
)}
|
)}
|
||||||
data-slot="select-item"
|
data-slot="select-item"
|
||||||
|
|
@ -128,7 +128,7 @@ function SelectSeparator({
|
||||||
}: React.ComponentProps<typeof SelectPrimitive.Separator>) {
|
}: React.ComponentProps<typeof SelectPrimitive.Separator>) {
|
||||||
return (
|
return (
|
||||||
<SelectPrimitive.Separator
|
<SelectPrimitive.Separator
|
||||||
className={cn("-mx-1 pointer-events-none my-1 h-px bg-border", className)}
|
className={cn("pointer-events-none -mx-1 my-1 h-px bg-border", className)}
|
||||||
data-slot="select-separator"
|
data-slot="select-separator"
|
||||||
{...props}
|
{...props}
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -1051,7 +1051,7 @@ export const AnnuncioEditForm = ({ data }: { data: AnnunciWithMedia }) => {
|
||||||
<FormMessage />
|
<FormMessage />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p className="h-[42px]">{field.value?.join(", ")}</p>
|
<p className="h-10.5">{field.value?.join(", ")}</p>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
|
|
@ -1105,7 +1105,7 @@ export const AnnuncioEditForm = ({ data }: { data: AnnunciWithMedia }) => {
|
||||||
<FormMessage />
|
<FormMessage />
|
||||||
{field.value !== null && (
|
{field.value !== null && (
|
||||||
<Button
|
<Button
|
||||||
className="-top-2 absolute right-0 flex items-center gap-1"
|
className="absolute -top-2 right-0 flex items-center gap-1"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
form.setValue("disponibile_da", null);
|
form.setValue("disponibile_da", null);
|
||||||
}}
|
}}
|
||||||
|
|
@ -1123,7 +1123,7 @@ export const AnnuncioEditForm = ({ data }: { data: AnnunciWithMedia }) => {
|
||||||
<FormControl>
|
<FormControl>
|
||||||
<Button
|
<Button
|
||||||
className={cn(
|
className={cn(
|
||||||
"h-[42px] w-full pl-3 text-left font-medium",
|
"h-10.5 w-full pl-3 text-left font-medium",
|
||||||
!field.value && "text-muted-foreground",
|
!field.value && "text-muted-foreground",
|
||||||
"rounded-lg border border-neutral-300 shadow-xs outline-hidden file:border-0 file:bg-transparent file:font-medium file:text-sm disabled:cursor-not-allowed disabled:opacity-50 dark:focus:border-transparent",
|
"rounded-lg border border-neutral-300 shadow-xs outline-hidden file:border-0 file:bg-transparent file:font-medium file:text-sm disabled:cursor-not-allowed disabled:opacity-50 dark:focus:border-transparent",
|
||||||
)}
|
)}
|
||||||
|
|
@ -1395,7 +1395,7 @@ export const AnnuncioEditForm = ({ data }: { data: AnnunciWithMedia }) => {
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
{field.value !== null && field.value !== 0 && (
|
{field.value !== null && field.value !== 0 && (
|
||||||
<Button
|
<Button
|
||||||
className="-top-2 absolute right-0 flex items-center gap-1"
|
className="absolute -top-2 right-0 flex items-center gap-1"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
form.setValue("piano_palazzo", null);
|
form.setValue("piano_palazzo", null);
|
||||||
}}
|
}}
|
||||||
|
|
@ -1441,7 +1441,7 @@ export const AnnuncioEditForm = ({ data }: { data: AnnunciWithMedia }) => {
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
{field.value !== null && field.value !== 0 && (
|
{field.value !== null && field.value !== 0 && (
|
||||||
<Button
|
<Button
|
||||||
className="-top-2 absolute right-0 flex items-center gap-1"
|
className="absolute -top-2 right-0 flex items-center gap-1"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
form.setValue("unita_condominio", null);
|
form.setValue("unita_condominio", null);
|
||||||
}}
|
}}
|
||||||
|
|
@ -1487,7 +1487,7 @@ export const AnnuncioEditForm = ({ data }: { data: AnnunciWithMedia }) => {
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
{field.value !== null && field.value !== 0 && (
|
{field.value !== null && field.value !== 0 && (
|
||||||
<Button
|
<Button
|
||||||
className="-top-2 absolute right-0 flex items-center gap-1"
|
className="absolute -top-2 right-0 flex items-center gap-1"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
form.setValue("numero_vani", null);
|
form.setValue("numero_vani", null);
|
||||||
}}
|
}}
|
||||||
|
|
@ -1533,7 +1533,7 @@ export const AnnuncioEditForm = ({ data }: { data: AnnunciWithMedia }) => {
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
{field.value !== null && field.value !== 0 && (
|
{field.value !== null && field.value !== 0 && (
|
||||||
<Button
|
<Button
|
||||||
className="-top-2 absolute right-0 flex items-center gap-1"
|
className="absolute -top-2 right-0 flex items-center gap-1"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
form.setValue("numero_camere", null);
|
form.setValue("numero_camere", null);
|
||||||
}}
|
}}
|
||||||
|
|
@ -1578,7 +1578,7 @@ export const AnnuncioEditForm = ({ data }: { data: AnnunciWithMedia }) => {
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
{field.value !== null && field.value !== 0 && (
|
{field.value !== null && field.value !== 0 && (
|
||||||
<Button
|
<Button
|
||||||
className="-top-2 absolute right-0 flex items-center gap-1"
|
className="absolute -top-2 right-0 flex items-center gap-1"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
form.setValue("numero_bagni", null);
|
form.setValue("numero_bagni", null);
|
||||||
}}
|
}}
|
||||||
|
|
@ -1623,7 +1623,7 @@ export const AnnuncioEditForm = ({ data }: { data: AnnunciWithMedia }) => {
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
{field.value !== null && field.value !== 0 && (
|
{field.value !== null && field.value !== 0 && (
|
||||||
<Button
|
<Button
|
||||||
className="-top-2 absolute right-0 flex items-center gap-1"
|
className="absolute -top-2 right-0 flex items-center gap-1"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
form.setValue("numero_balconi", null);
|
form.setValue("numero_balconi", null);
|
||||||
}}
|
}}
|
||||||
|
|
@ -1668,7 +1668,7 @@ export const AnnuncioEditForm = ({ data }: { data: AnnunciWithMedia }) => {
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
{field.value !== null && field.value !== 0 && (
|
{field.value !== null && field.value !== 0 && (
|
||||||
<Button
|
<Button
|
||||||
className="-top-2 absolute right-0 flex items-center gap-1"
|
className="absolute -top-2 right-0 flex items-center gap-1"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
form.setValue("numero_terrazzi", null);
|
form.setValue("numero_terrazzi", null);
|
||||||
}}
|
}}
|
||||||
|
|
@ -1713,7 +1713,7 @@ export const AnnuncioEditForm = ({ data }: { data: AnnunciWithMedia }) => {
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
{field.value !== null && field.value !== 0 && (
|
{field.value !== null && field.value !== 0 && (
|
||||||
<Button
|
<Button
|
||||||
className="-top-2 absolute right-0 flex items-center gap-1"
|
className="absolute -top-2 right-0 flex items-center gap-1"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
form.setValue("numero_box", null);
|
form.setValue("numero_box", null);
|
||||||
}}
|
}}
|
||||||
|
|
@ -1758,7 +1758,7 @@ export const AnnuncioEditForm = ({ data }: { data: AnnunciWithMedia }) => {
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
{field.value !== null && field.value !== 0 && (
|
{field.value !== null && field.value !== 0 && (
|
||||||
<Button
|
<Button
|
||||||
className="-top-2 absolute right-0 flex items-center gap-1"
|
className="absolute -top-2 right-0 flex items-center gap-1"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
form.setValue("numero_postiauto", null);
|
form.setValue("numero_postiauto", null);
|
||||||
}}
|
}}
|
||||||
|
|
@ -1806,7 +1806,7 @@ export const AnnuncioEditForm = ({ data }: { data: AnnunciWithMedia }) => {
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<FormControl>
|
<FormControl>
|
||||||
<p className="h-[42px]">{field.value?.join(", ")}</p>
|
<p className="h-10.5">{field.value?.join(", ")}</p>
|
||||||
</FormControl>
|
</FormControl>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
)}
|
)}
|
||||||
|
|
@ -1825,7 +1825,7 @@ export const AnnuncioEditForm = ({ data }: { data: AnnunciWithMedia }) => {
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<FormControl>
|
<FormControl>
|
||||||
<p className="h-[42px]">
|
<p className="h-10.5">
|
||||||
{field.value
|
{field.value
|
||||||
? filteredCaratteristiche(field.value)
|
? filteredCaratteristiche(field.value)
|
||||||
.map((v) => v.text)
|
.map((v) => v.text)
|
||||||
|
|
|
||||||
|
|
@ -810,7 +810,7 @@ export const FormNewServizioAcquisto = ({
|
||||||
<FormControl>
|
<FormControl>
|
||||||
<Button
|
<Button
|
||||||
className={cn(
|
className={cn(
|
||||||
"h-[42px] w-full pl-3 text-left font-medium",
|
"h-10.5 w-full pl-3 text-left font-medium",
|
||||||
!field.value && "text-muted-foreground",
|
!field.value && "text-muted-foreground",
|
||||||
"rounded-lg border border-neutral-300 shadow-xs outline-hidden file:border-0 file:bg-transparent file:font-medium file:text-sm disabled:cursor-not-allowed disabled:opacity-50 dark:focus:border-transparent",
|
"rounded-lg border border-neutral-300 shadow-xs outline-hidden file:border-0 file:bg-transparent file:font-medium file:text-sm disabled:cursor-not-allowed disabled:opacity-50 dark:focus:border-transparent",
|
||||||
)}
|
)}
|
||||||
|
|
@ -1006,7 +1006,7 @@ export const FormNewServizioAcquisto = ({
|
||||||
<FormControl>
|
<FormControl>
|
||||||
<Button
|
<Button
|
||||||
className={cn(
|
className={cn(
|
||||||
"h-[42px] w-full pl-3 text-left font-medium",
|
"h-10.5 w-full pl-3 text-left font-medium",
|
||||||
!field.value && "text-muted-foreground",
|
!field.value && "text-muted-foreground",
|
||||||
"rounded-lg border border-neutral-300 shadow-xs outline-hidden file:border-0 file:bg-transparent file:font-medium file:text-sm disabled:cursor-not-allowed disabled:opacity-50 dark:focus:border-transparent",
|
"rounded-lg border border-neutral-300 shadow-xs outline-hidden file:border-0 file:bg-transparent file:font-medium file:text-sm disabled:cursor-not-allowed disabled:opacity-50 dark:focus:border-transparent",
|
||||||
)}
|
)}
|
||||||
|
|
@ -1185,7 +1185,7 @@ export const FormNewServizioAcquisto = ({
|
||||||
<Tooltip delayDuration={0}>
|
<Tooltip delayDuration={0}>
|
||||||
<TooltipTrigger className="relative flex items-center gap-x-2">
|
<TooltipTrigger className="relative flex items-center gap-x-2">
|
||||||
{t.anagrafica.sesso}{" "}
|
{t.anagrafica.sesso}{" "}
|
||||||
<HelpCircleIcon className="-right-6 absolute size-5" />
|
<HelpCircleIcon className="absolute -right-6 size-5" />
|
||||||
</TooltipTrigger>
|
</TooltipTrigger>
|
||||||
<TooltipContent>
|
<TooltipContent>
|
||||||
{t.anagrafica.sesso_disclamer}
|
{t.anagrafica.sesso_disclamer}
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ const FAQSection = () => {
|
||||||
<h2 className="font-bold text-3xl tracking-tighter md:text-4xl">
|
<h2 className="font-bold text-3xl tracking-tighter md:text-4xl">
|
||||||
{t.faq.titolo}
|
{t.faq.titolo}
|
||||||
</h2>
|
</h2>
|
||||||
<p className="mx-auto max-w-[600px] text-muted-foreground md:text-xl/relaxed lg:text-base/relaxed xl:text-xl/relaxed">
|
<p className="mx-auto max-w-150 text-muted-foreground md:text-xl/relaxed lg:text-base/relaxed xl:text-xl/relaxed">
|
||||||
{t.faq.descrizione}
|
{t.faq.descrizione}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -83,7 +83,7 @@ const FAQSection = () => {
|
||||||
//defaultValue="0"
|
//defaultValue="0"
|
||||||
type="single"
|
type="single"
|
||||||
>
|
>
|
||||||
<div className="-top-16 absolute" id={`faq-${item.id}`} />
|
<div className="absolute -top-16" id={`faq-${item.id}`} />
|
||||||
<h3 className="font-semibold text-2xl">{item.label}</h3>
|
<h3 className="font-semibold text-2xl">{item.label}</h3>
|
||||||
<div className="flex flex-col gap-1">
|
<div className="flex flex-col gap-1">
|
||||||
{item.qas.map((f, i) => (
|
{item.qas.map((f, i) => (
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,6 @@ export const editAnagraficaHandler = async ({
|
||||||
data: UsersAnagraficaUpdate;
|
data: UsersAnagraficaUpdate;
|
||||||
}) => {
|
}) => {
|
||||||
try {
|
try {
|
||||||
// biome-ignore lint/correctness/noUnusedVariables: <ignore>
|
|
||||||
const { idanagrafica, userid, ...rest } = data;
|
const { idanagrafica, userid, ...rest } = data;
|
||||||
if (!userId) {
|
if (!userId) {
|
||||||
throw new TRPCError({
|
throw new TRPCError({
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue