From f3c99e941d0f2a7ee8fa4d7f152f97a8c7d447e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anna-Sara=20S=C3=A9lea?= Date: Mon, 5 May 2025 19:15:30 +0200 Subject: [PATCH] Added purchases to customer --- resources/js/Pages/Customer.tsx | 32 ++++++++++++++--- resources/js/Pages/Dashboard.tsx | 62 +++++++++++++++++++++----------- 2 files changed, 69 insertions(+), 25 deletions(-) diff --git a/resources/js/Pages/Customer.tsx b/resources/js/Pages/Customer.tsx index 368ac3a..950fc25 100644 --- a/resources/js/Pages/Customer.tsx +++ b/resources/js/Pages/Customer.tsx @@ -15,6 +15,10 @@ interface CustomerProps { id: number amount: number }] + deposits: [{ + id: number + amount: number + }] } }; @@ -52,9 +56,7 @@ export default function Customer({customer}: CustomerProps) {

Saldo: {customer.amount_left ? customer.amount_left : 0} kr

- { customer.deposit && -

Inbetalad summa: {customer.deposit} kr

- } +

Inbetalad summa: {customer.deposit ? customer.deposit : 0} kr

Vårnadshavare: {customer.guardian_name}

Ge ev överblivet saldo till vBytes: {customer.give_leftover ? "Ja" : "Nej"}

@@ -94,7 +96,7 @@ export default function Customer({customer}: CustomerProps) { required className="input" type="number" - name="amount" + name="deposit" value={data.deposit} placeholder="Summa" onChange={(e) => setData('deposit', e.target.value)} @@ -111,7 +113,7 @@ export default function Customer({customer}: CustomerProps) {
- Tidigare köp + Köp
@@ -129,6 +131,26 @@ export default function Customer({customer}: CustomerProps) {
+
+ + Inbetalningar +
+ + + +
+
+ {customer.deposits && customer.deposits.map( deposit => { + return
+

{deposit.amount} kr

+
+ })} +
+ + + +
+
diff --git a/resources/js/Pages/Dashboard.tsx b/resources/js/Pages/Dashboard.tsx index efa66e6..c248282 100644 --- a/resources/js/Pages/Dashboard.tsx +++ b/resources/js/Pages/Dashboard.tsx @@ -1,6 +1,6 @@ import AuthenticatedLayout from '@/Layouts/AuthenticatedLayout'; import { Head } from '@inertiajs/react'; -import { useState } from 'react'; +import { SetStateAction, useState } from 'react'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { faArrowRight } from '@fortawesome/free-solid-svg-icons' @@ -21,7 +21,9 @@ interface Customer { export default function Dashboard({customers}: CustomerProps) { const [searchItem, setSearchItem] = useState('') + const [activeTab, setActiveTab] = useState('') const [filteredCustomers, setFilteredCustomers] = useState(customers) + const letterArray = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","Å","Ä","Ö"]; const handleInputChange = (e: any) => { const searchTerm = e.target.value; @@ -34,6 +36,14 @@ export default function Dashboard({customers}: CustomerProps) { setFilteredCustomers(filteredItems); } + const handleInputClick = (searchTerm: any) => { + const filteredItems = customers.filter((customer) => + customer.name.toLowerCase().startsWith(searchTerm.toLowerCase()) + ); + + setFilteredCustomers(filteredItems); + } + return ( @@ -41,25 +51,37 @@ export default function Dashboard({customers}: CustomerProps) {

Deltagare

- -
- {filteredCustomers && filteredCustomers.map( customer => { - return -

{customer.name}

- - - -
- })} -
- - + +
+
    + { letterArray && letterArray.map( letter => { + return
  • [setActiveTab(letter) ,handleInputClick(letter)]}> + {letter} +
  • + }) + } +
  • [setActiveTab(""), setFilteredCustomers(customers), setSearchItem("") ]}> + Rensa +
  • + +
+
+
+ {filteredCustomers && filteredCustomers.map( customer => { + return +

{customer.name}

+ + + +
+ })} +