update front ts 2

This commit is contained in:
Arthur Barre 2024-12-16 14:59:15 +01:00
parent a6fc5bab7a
commit d3bb9a8b3b
3 changed files with 50 additions and 70 deletions

View File

@ -16,34 +16,48 @@ import { useState } from "react"
import { Eye, ArrowUpDown } from "lucide-react"
import { Button } from "@/components/ui/button"
type Product = {
title: string
width?: number
height?: number
year?: string
dateAcquisition: string
artist: {
firstName?: string
lastName: string
}
imageName?: string
client?: {
url: string
}
}
export default function Purchases() {
const { data: purchases = [], isLoading: purchasesLoading } = useQuery<Purchase[]>({
queryKey: ['purchases'],
queryFn: () => purchaseService.getAll()
})
type PurchaseProduct = {
product: Product
}
const { data: clients = [], isLoading: clientsLoading } = useQuery<Client[]>({
queryKey: ['clients'],
queryFn: clientService.getAll
})
interface Purchase {
products: PurchaseProduct[]
customer: {
id: number
contactFirstName: string
contactLastName: string
}
amountTotal: number
const [selectedClient, setSelectedClient] = useState<string>('all')
const filteredPurchases = selectedClient === 'all'
? purchases
: purchases.filter((p: Purchase) => p.customer.name === selectedClient)
if (purchasesLoading || clientsLoading) return <div>Chargement...</div>
return (
<div className="container mx-auto p4 py-10 p4">
<div className="mb-4">
<Select value={selectedClient} onValueChange={setSelectedClient}>
<SelectTrigger className="w-[280px]">
<SelectValue placeholder="Sélectionner un client" />
</SelectTrigger>
<SelectContent>
<SelectGroup>
<SelectLabel>Clients</SelectLabel>
<SelectItem value="all">Tous les clients</SelectItem>
{clients.map((client) => (
<SelectItem key={client.id} value={client.id.toString()}>
{client.name}
</SelectItem>
))}
</SelectGroup>
</SelectContent>
</Select>
</div>
<DataTable columns={columns} data={filteredPurchases} />
</div>
)
}
const columns: ColumnDef<Purchase>[] = [
@ -131,48 +145,4 @@ const columns: ColumnDef<Purchase>[] = [
}
]
export default function Purchases() {
const { data: purchases = [], isLoading: purchasesLoading } = useQuery<Purchase[]>({
queryKey: ['purchases'],
queryFn: purchaseService.getAll
})
const { data: clients = [], isLoading: clientsLoading } = useQuery<Client[]>({
queryKey: ['clients'],
queryFn: clientService.getAll
})
const [selectedClient, setSelectedClient] = useState<string>('all')
const filteredPurchases = selectedClient === 'all'
? purchases
: purchases.filter(p => p.customer.id === parseInt(selectedClient))
if (purchasesLoading || clientsLoading) return <div>Chargement...</div>
return (
<div className="container mx-auto p4 py-10 p4">
<div className="mb-4">
<Select value={selectedClient} onValueChange={setSelectedClient}>
<SelectTrigger className="w-[280px]">
<SelectValue placeholder="Sélectionner un client" />
</SelectTrigger>
<SelectContent>
<SelectGroup>
<SelectLabel>Clients</SelectLabel>
<SelectItem value="all">Tous les clients</SelectItem>
{clients.map((client) => (
<SelectItem key={client.id} value={client.id.toString()}>
{client.name}
</SelectItem>
))}
</SelectGroup>
</SelectContent>
</Select>
</div>
<DataTable columns={columns} data={filteredPurchases} />
</div>
)
}

View File

@ -14,12 +14,21 @@ export type Purchase = {
product: {
code: string
title: string
width: number
height: number
year: string
dateAcquisition: string
imageName: string
client: {
url: string
}
artist: {
firstName: string
lastName: string
}
}
acquisitionPrice: number
dateAcquisition: string
}>
}

View File

@ -0,0 +1 @@
{"root":["./src/app.tsx","./src/main.tsx","./src/vite-env.d.ts","./src/components/header.tsx","./src/components/table.tsx","./src/components/theme-provider.tsx","./src/components/ui/button.tsx","./src/components/ui/card.tsx","./src/components/ui/dropdown-menu.tsx","./src/components/ui/input.tsx","./src/components/ui/label.tsx","./src/components/ui/select.tsx","./src/components/ui/table.tsx","./src/lib/utils.ts","./src/pages/dashboard.tsx","./src/pages/login.tsx","./src/services/auth.service.ts","./src/services/client.service.ts","./src/services/purchase.service.ts"],"version":"5.6.3"}