From 9038dd8934b87b4f8ffad4db1c179e2b5e68accf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kysel=C3=A1k?= Date: Thu, 4 Jan 2024 19:11:43 +0000 Subject: [PATCH] feat: redesign list of transactions The returned wallet data including list of transactions is completely redesigned. --- src/SearchWalletForm.tsx | 2 +- src/WalletFound.tsx | 54 ++++++++++++++++++++++++++++------------ src/WalletPage.test.tsx | 11 +++----- 3 files changed, 43 insertions(+), 24 deletions(-) diff --git a/src/SearchWalletForm.tsx b/src/SearchWalletForm.tsx index 3f82aa3..6d6120f 100644 --- a/src/SearchWalletForm.tsx +++ b/src/SearchWalletForm.tsx @@ -18,7 +18,7 @@ export function SearchWalletForm({ onSearch }: Props) { return fieldError ? 'border border-red-500' : 'border border-slate-700'; } return ( -
+
-

Wallet

-

- Address: {walletData[1][0].address} -

-

Balance: {walletData[1][0].balance}

- {walletData[2].length > 0 &&

Transactions

} -
    +
    +
    +
    +

    Wallet

    +

    + {walletData[1][0].address} +

    +
    +
    + {'\u039E ' + walletData[1][0].balance} +
    +
    + +
      {walletData[2].length > 0 ? ( walletData[2].map((transaction) => ( -
    • -

      Hash: {transaction.hash}

      -

      Amount: {transaction.amount}

      -

      - Timestamp: {new Date(transaction.timestamp).toLocaleString()} -

      -

      Block #: {transaction.blockNumber}

      +
    • +
      +
      +

      + {new Date(transaction.timestamp).toLocaleString()} +

      +

      + {transaction.blockNumber} +

      +
      +
      + {'\u039E ' + parseFloat(transaction.amount).toFixed(2)} +
      +
    • )) ) : ( -
    • +
    • No transaction found.

    • )} diff --git a/src/WalletPage.test.tsx b/src/WalletPage.test.tsx index 60f16bb..f30d8e8 100644 --- a/src/WalletPage.test.tsx +++ b/src/WalletPage.test.tsx @@ -32,13 +32,10 @@ test('should return wallet data for valid wallet address', async () => { user.click(searchButton); }); - const balance = await waitFor(() => screen.findByText(/Balance/i), { timeout: 5000 }); + const balance = await waitFor(() => screen.findByTitle(/Balance/i), { timeout: 5000 }); expect(balance).toBeInTheDocument(); - const txHeadline = screen.getByText(/Transactions/i); - expect(txHeadline).toBeInTheDocument(); - - const blocks = screen.getAllByText(/Block #/i); + const blocks = screen.getAllByTitle(/Block #/i); expect(blocks.length).toBe(10); }, 10000); @@ -55,10 +52,10 @@ test('should return wallet data with no transaction for valid empty wallet', asy user.click(searchButton); }); - const balance = await waitFor(() => screen.findByText(/Balance/i), { timeout: 5000 }); + const balance = await waitFor(() => screen.findByTitle(/Balance/i), { timeout: 5000 }); expect(balance).toBeInTheDocument(); - const blocks = screen.queryByText(/Block #/i); + const blocks = screen.queryByTitle(/Block #/i); expect(blocks).not.toBeInTheDocument(); const noTransaction = screen.getByText(/No transaction found/i);