| | |
| | | const dateFormatter = (date) => |
| | | new Date(date).toLocaleDateString(); |
| | | |
| | | const aggregateOrdersByDay = (orders) => |
| | | orders |
| | | .filter((order) => order.status !== 'cancelled') |
| | | .reduce( |
| | | (acc, curr) => { |
| | | const day = format(curr.date, 'yyyy-MM-dd'); |
| | | if (!acc[day]) { |
| | | acc[day] = 0; |
| | | } |
| | | acc[day] += curr.total; |
| | | return acc; |
| | | }, |
| | | {} |
| | | ); |
| | | // const aggregateOrdersByDay = (orders) => |
| | | // orders |
| | | // .filter((order) => order.status !== 'cancelled') |
| | | // .reduce( |
| | | // (acc, curr) => { |
| | | // const day = format(curr.date, 'yyyy-MM-dd'); |
| | | // if (!acc[day]) { |
| | | // acc[day] = 0; |
| | | // } |
| | | // acc[day] += curr.total; |
| | | // return acc; |
| | | // }, |
| | | // {} |
| | | // ); |
| | | |
| | | const getRevenuePerDay = (orders) => { |
| | | const daysWithRevenue = aggregateOrdersByDay(orders); |
| | | return lastMonthDays.map(date => ({ |
| | | date: date.getTime(), |
| | | total: daysWithRevenue[format(date, 'yyyy-MM-dd')] || 0, |
| | | })); |
| | | }; |
| | | // const getRevenuePerDay = (orders) => { |
| | | // const daysWithRevenue = aggregateOrdersByDay(orders); |
| | | // return lastMonthDays.map(date => ({ |
| | | // date: date.getTime(), |
| | | // total: daysWithRevenue[format(date, 'yyyy-MM-dd')] || 0, |
| | | // })); |
| | | // }; |
| | | |
| | | const NbChart = (props) => { |
| | | const { orders } = props; |