From fbf2043c00f560d6614f282aeb4512364c6c387c Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Wed, 25 Jan 2023 13:38:59 +0700 Subject: optimize render cost --- src/components/transactions/TransactionDetail.js | 56 +++++++++++++++++++++--- 1 file changed, 51 insertions(+), 5 deletions(-) (limited to 'src/components/transactions/TransactionDetail.js') diff --git a/src/components/transactions/TransactionDetail.js b/src/components/transactions/TransactionDetail.js index 6d304d31..7659a321 100644 --- a/src/components/transactions/TransactionDetail.js +++ b/src/components/transactions/TransactionDetail.js @@ -1,13 +1,15 @@ +import { useState } from "react"; import DescriptionRow from "../elements/DescriptionRow"; +import Disclosure from "../elements/Disclosure"; -const CustomerSection = ({ address }) => { +const DetailAddress = ({ address }) => { const fullAddress = []; if (address?.street) fullAddress.push(address.street); if (address?.sub_district?.name) fullAddress.push(address.sub_district.name); if (address?.district?.name) fullAddress.push(address.district.name); if (address?.city?.name) fullAddress.push(address.city.name); return ( -
+
{ address?.name } { address?.email || '-' } { address?.mobile || '-' } @@ -16,6 +18,50 @@ const CustomerSection = ({ address }) => { ); }; -export { - CustomerSection -}; \ No newline at end of file +const TransactionDetailAddress = ({ transaction }) => { + const [ activeSection, setActiveSection ] = useState({ + purchase: false, + shipping: false, + invoice: false, + }); + + const toggleSection = ( name ) => { + setActiveSection({ + ...activeSection, + [name]: !activeSection[name] + }); + }; + + return ( +
+ toggleSection('purchase')} + /> + { activeSection.purchase && ( + + ) } + + toggleSection('shipping')} + /> + { activeSection.shipping && ( + + ) } + + toggleSection('invoice')} + /> + { activeSection.invoice && ( + + ) } +
+ ); +}; + +export { TransactionDetailAddress }; \ No newline at end of file -- cgit v1.2.3