diff --git a/CHANGELOG.md b/CHANGELOG.md index 58fcc4306..f862a2dce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -41,6 +41,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Improvements +- [#347](https://github.com/alleslabs/celatone-frontend/pull/347) Move tx table accordion arrow to the front and refactor block txs table + ### Bug fixes ## v1.0.5 diff --git a/src/lib/components/action-msg/ActionMessages.tsx b/src/lib/components/action-msg/ActionMessages.tsx index d723666b4..ba6a0fd57 100644 --- a/src/lib/components/action-msg/ActionMessages.tsx +++ b/src/lib/components/action-msg/ActionMessages.tsx @@ -1,4 +1,4 @@ -import type { BlockTransaction, Transaction } from "lib/types"; +import type { Transaction } from "lib/types"; import { ActionMsgType } from "lib/types"; import { extractMsgType } from "lib/utils"; @@ -7,7 +7,7 @@ import { SingleActionMsg } from "./SingleActionMsg"; import { SingleMsg } from "./SingleMsg"; interface RenderActionMessagesProps { - transaction: Transaction | BlockTransaction; + transaction: Transaction; } export const RenderActionMessages = ({ diff --git a/src/lib/components/table/AccordionTx.tsx b/src/lib/components/table/AccordionTx.tsx index e7ff5ffe5..034cae0da 100644 --- a/src/lib/components/table/AccordionTx.tsx +++ b/src/lib/components/table/AccordionTx.tsx @@ -38,7 +38,7 @@ export const AccordionTx = ({ message, allowFurtherAction, isSigner = false, - accordionSpacing = "206px", + accordionSpacing = "260px", }: AccordionTxProps) => { const [showButton, setShowButton] = useState(false); return ( diff --git a/src/lib/components/table/transactions/TransactionsTable.tsx b/src/lib/components/table/transactions/TransactionsTable.tsx index 291487942..a9a2d030f 100644 --- a/src/lib/components/table/transactions/TransactionsTable.tsx +++ b/src/lib/components/table/transactions/TransactionsTable.tsx @@ -10,6 +10,7 @@ interface TransactionsTableProps { isLoading: boolean; emptyState: JSX.Element; showRelations: boolean; + showTimestamp?: boolean; showAction?: boolean; } @@ -18,20 +19,24 @@ export const TransactionsTable = ({ isLoading, emptyState, showRelations, + showTimestamp = true, showAction = false, }: TransactionsTableProps) => { if (isLoading) return ; if (!transactions?.length) return emptyState; - const templateColumns = `150px 40px minmax(360px, 1fr) ${ + const templateColumns = `25px 180px 40px minmax(360px, 1fr) ${ showRelations ? "100px " : "" - }max(150px) max(220px) ${showAction ? "100px " : ""}60px`; + }max(160px) ${showTimestamp ? "max(220px) " : ""}${ + showAction ? "100px " : "" + }`; return ( {transactions.map((transaction) => ( @@ -40,6 +45,7 @@ export const TransactionsTable = ({ transaction={transaction} templateColumns={templateColumns} showRelations={showRelations} + showTimestamp={showTimestamp} showAction={showAction} /> ))} diff --git a/src/lib/components/table/transactions/TransactionsTableHeader.tsx b/src/lib/components/table/transactions/TransactionsTableHeader.tsx index 5af4fc399..3204c5eeb 100644 --- a/src/lib/components/table/transactions/TransactionsTableHeader.tsx +++ b/src/lib/components/table/transactions/TransactionsTableHeader.tsx @@ -6,20 +6,22 @@ import { TableHeader } from "../tableComponents"; export const TransactionsTableHeader = ({ templateColumns, showRelations, + showTimestamp, showAction, }: { templateColumns: GridProps["templateColumns"]; showRelations: boolean; + showTimestamp: boolean; showAction: boolean; }) => ( + Transaction Hash Messages {showRelations && Relations} Sender - Timestamp + {showTimestamp && Timestamp} {showAction && } - ); diff --git a/src/lib/components/table/transactions/TransactionsTableRow.tsx b/src/lib/components/table/transactions/TransactionsTableRow.tsx index 436829b9a..789b3ed6a 100644 --- a/src/lib/components/table/transactions/TransactionsTableRow.tsx +++ b/src/lib/components/table/transactions/TransactionsTableRow.tsx @@ -1,4 +1,12 @@ -import { Flex, Text, Grid, useDisclosure, Tag, Box } from "@chakra-ui/react"; +import { + Flex, + Text, + Grid, + useDisclosure, + Tag, + Box, + Badge, +} from "@chakra-ui/react"; import { AccordionTx } from "../AccordionTx"; import { TableRow } from "../tableComponents"; @@ -15,6 +23,7 @@ interface TransactionsTableRowProps { transaction: Transaction; templateColumns: string; showRelations: boolean; + showTimestamp: boolean; showAction: boolean; } @@ -22,6 +31,7 @@ export const TransactionsTableRow = ({ transaction, templateColumns, showRelations, + showTimestamp, showAction, }: TransactionsTableRowProps) => { const { isOpen, onToggle } = useDisclosure(); @@ -37,12 +47,28 @@ export const TransactionsTableRow = ({ transition="all .25s ease-in-out" cursor={isAccordion ? "pointer" : "default"} > + + {isAccordion && ( + + )} + - + <> + + {transaction.messages.length > 1 && ( + + {transaction.messages.length} + + )} + {transaction.success ? ( @@ -76,29 +102,22 @@ export const TransactionsTableRow = ({ /> - - - {formatUTC(transaction.created)} - - {`(${dateFromNow(transaction.created)})`} - - - + {showTimestamp && ( + + + {formatUTC(transaction.created)} + + {`(${dateFromNow(transaction.created)})`} + + + + )} {showAction && ( )} - - - {isAccordion && ( - - )} - {isAccordion && (