feat: Add tickets module and PayPal integration

Introduces a new 'Tickets' module for users to submit and manage issues within their condominium. This includes defining ticket types, statuses, priorities, and categories.

Additionally, this commit integrates PayPal as a payment option for family fee payments, enabling users to pay directly via PayPal using their client ID.

Key changes:
- Added `Ticket` related types and enums.
- Implemented `TicketService` functions for CRUD operations.
- Integrated `@paypal/react-paypal-js` library.
- Added `paypalClientId` to `AppSettings` and `Condo` types.
- Updated `FamilyDetail` page to include PayPal payment option.
- Added 'Segnalazioni' navigation link to `Layout`.
This commit is contained in:
2025-12-07 19:49:59 +01:00
parent 2566b406e1
commit 5311400615
14 changed files with 977 additions and 146 deletions

View File

@@ -1,7 +1,7 @@
import React, { useEffect, useState } from 'react';
import { NavLink, Outlet } from 'react-router-dom';
import { Users, Settings, Building, LogOut, Menu, X, ChevronDown, Check, LayoutDashboard, Megaphone, Info, AlertTriangle, Hammer, Calendar } from 'lucide-react';
import { Users, Settings, Building, LogOut, Menu, X, ChevronDown, Check, LayoutDashboard, Megaphone, Info, AlertTriangle, Hammer, Calendar, MessageSquareWarning } from 'lucide-react';
import { CondoService } from '../services/mockDb';
import { Condo, Notice } from '../types';
@@ -217,6 +217,11 @@ export const Layout: React.FC = () => {
<Users className="w-5 h-5" />
<span className="font-medium">Famiglie</span>
</NavLink>
<NavLink to="/tickets" className={navClass} onClick={closeMenu}>
<MessageSquareWarning className="w-5 h-5" />
<span className="font-medium">Segnalazioni</span>
</NavLink>
<NavLink to="/settings" className={navClass} onClick={closeMenu}>
<Settings className="w-5 h-5" />
@@ -250,4 +255,4 @@ export const Layout: React.FC = () => {
</main>
</div>
);
};
};