From 66c3b02742de16072450589613e9ad485cc85ee2 Mon Sep 17 00:00:00 2001 From: Diogo Ferreira Date: Mon, 23 Oct 2023 19:57:37 +0200 Subject: [PATCH] feat: on stacks created show starts in X minutes our X hours (#116) * feat: on stacks created show starts in X minutes our X hours if is less then 24h away. * fix: convert pluralize to arrow function * update: replace logic with formatDistanceToNow from date-fns --- packages/app/components/StacksTable.tsx | 35 +++++++++++++++---------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/packages/app/components/StacksTable.tsx b/packages/app/components/StacksTable.tsx index b410c9fa..90fab566 100644 --- a/packages/app/components/StacksTable.tsx +++ b/packages/app/components/StacksTable.tsx @@ -1,6 +1,7 @@ "use client"; import { PropsWithChildren, useState } from "react"; +import { formatDistanceToNow } from "date-fns"; import { BodyText, Button, @@ -20,10 +21,7 @@ import { orderPairSymbolsText, totalOrderSlotsDone, } from "@/models/order"; -import { - formatTimestampToDate, - formatTimestampToDateWithSuffix, -} from "@/utils/datetime"; +import { formatTimestampToDate } from "@/utils/datetime"; import { StackOrder, StackOrderProps, @@ -154,23 +152,32 @@ const CellWrapper = ({ children }: PropsWithChildren) => ( ); const OrdersProgressText = ({ stackOrder }: StackOrderProps) => { - if (stackOrder.cancelledAt) + if (stackOrder.cancelledAt) { return ( Cancelled at {formatTimestampToDate(stackOrder.cancelledAt)} ); + } + + if (totalOrderSlotsDone(stackOrder) !== 0) { + return ( + <> + + {totalStackOrdersDone(stackOrder).toString()} + + {`/ ${stackOrder.orderSlots.length} orders`} + + ); + } - return totalOrderSlotsDone(stackOrder) === 0 ? ( + const firtTimeSlot = Number(stackOrder.orderSlots[0]); + const date = new Date(firtTimeSlot * 1000); // Convert seconds to milliseconds + const distanceToNow = formatDistanceToNow(date, { addSuffix: true }); + + return ( - Starts on {formatTimestampToDateWithSuffix(stackOrder.orderSlots[0])} + {`Starts ${distanceToNow}`} - ) : ( - <> - - {totalStackOrdersDone(stackOrder).toString()} - - {`/ ${stackOrder.orderSlots.length} orders`} - ); };