11import { t } from "@lingui/macro" ;
2- import { Anchor , Button , Group , Menu , Popover , Text } from '@mantine/core' ;
2+ import { Anchor , Button , Group , Menu , Popover , Text , Tooltip } from '@mantine/core' ;
33import { Event , IdParam , Invoice , MessageType , Order } from "../../../types.ts" ;
44import {
55 IconAlertCircle ,
@@ -10,7 +10,6 @@ import {
1010 IconClockPause ,
1111 IconCopy ,
1212 IconCreditCard ,
13- IconCurrencyDollar ,
1413 IconDotsVertical ,
1514 IconFileInvoice ,
1615 IconFileOff ,
@@ -317,12 +316,23 @@ export const OrdersTable = ({orders, event}: OrdersTableProps) => {
317316 enableHiding : true ,
318317 cell : ( info : CellContext < Order , unknown > ) => {
319318 const order = info . row . original ;
320- const itemCount = order . order_items ?. length || order . attendees ?. length || 0 ;
319+ const totalQuantity = order . order_items ?. reduce ( ( sum , item ) => sum + item . quantity , 0 ) || 0 ;
320+ const itemBreakdown = order . order_items ?. map ( item =>
321+ `${ item . quantity } x ${ item . item_name } `
322+ ) . join ( '\n' ) || '' ;
323+
321324 return (
322- < div className = { classes . itemsBadge } >
323- < IconTicket size = { 14 } />
324- { formatNumber ( itemCount ) } { t `item(s)` }
325- </ div >
325+ < Tooltip
326+ label = { itemBreakdown }
327+ multiline
328+ withArrow
329+ disabled = { ! itemBreakdown }
330+ >
331+ < div className = { classes . itemsBadge } >
332+ < IconTicket size = { 14 } />
333+ { formatNumber ( totalQuantity ) } { t `item(s)` }
334+ </ div >
335+ </ Tooltip >
326336 ) ;
327337 } ,
328338 } ,
@@ -341,10 +351,12 @@ export const OrdersTable = ({orders, event}: OrdersTableProps) => {
341351 { t `Tax` } : { formatCurrency ( order . total_tax , order . currency ) } •
342352 { ' ' } { t `Fees` } : { formatCurrency ( order . total_fee , order . currency ) }
343353 </ Text >
344- { order . total_refunded > 0 && (
345- < Text className = { classes . refundedAmount } >
346- < IconCurrencyDollar size = { 12 } />
347- { t `Refunded` } : { formatCurrency ( order . total_refunded , order . currency ) }
354+ { order . refund_status && (
355+ < Text className = { classes . refundedAmount } data-refund-status = { order . refund_status } >
356+ { order . refund_status === 'REFUNDED' && t `Refunded: ${ formatCurrency ( order . total_refunded , order . currency ) } ` }
357+ { order . refund_status === 'PARTIALLY_REFUNDED' && t `Partially refunded: ${ formatCurrency ( order . total_refunded , order . currency ) } ` }
358+ { order . refund_status === 'REFUND_PENDING' && t `Refund pending` }
359+ { order . refund_status === 'REFUND_FAILED' && t `Refund failed` }
348360 </ Text >
349361 ) }
350362 </ div >
0 commit comments