From bf05e368161499ff40025d8fb735b4c0b0d63972 Mon Sep 17 00:00:00 2001 From: gaurav rao Date: Mon, 1 Sep 2025 15:00:09 +0530 Subject: [PATCH 1/2] feat: add AM/PM and casing options to formatUnixToDateTime helper (#171) --- vite/src/utils/formatUtils/formatDateUtils.ts | 13 ++++++++++--- vite/src/views/customers/CustomersTable.tsx | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/vite/src/utils/formatUtils/formatDateUtils.ts b/vite/src/utils/formatUtils/formatDateUtils.ts index 143269e27..c5aadc6c2 100644 --- a/vite/src/utils/formatUtils/formatDateUtils.ts +++ b/vite/src/utils/formatUtils/formatDateUtils.ts @@ -1,5 +1,5 @@ import { format } from "date-fns"; - +type TimeCase = "upper" | "lower"; export const formatDateStr = (date: Date | string) => { return format(new Date(date), "dd MMM yyyy"); }; @@ -17,10 +17,17 @@ export const formatUnixToDate = ( return format(new Date(unix), excludeYear ? "d MMM" : "d MMM yyyy"); }; -export const formatUnixToDateTime = (unix: number | null | undefined) => { +export const formatUnixToDateTime = (unix: number | null | undefined, + options?: { ampm?: boolean; case?: TimeCase }) => { if (!unix) return { date: "", time: "" }; const date = format(new Date(unix), "d MMM"); - const time = format(new Date(unix), "HH:mm"); + + const pattern = options?.ampm ? "HH:mm a" : "HH:mm"; + let time = format(new Date(unix), pattern); + + if (options?.case === "lower") time = time.toLowerCase(); + if (options?.case === "upper") time = time.toUpperCase(); + return { date, time }; }; diff --git a/vite/src/views/customers/CustomersTable.tsx b/vite/src/views/customers/CustomersTable.tsx index b6e0d2d35..d135a855d 100644 --- a/vite/src/views/customers/CustomersTable.tsx +++ b/vite/src/views/customers/CustomersTable.tsx @@ -200,7 +200,7 @@ export const CustomersTable = ({ {formatUnixToDateTime(customer.created_at).date} {" "} - {formatUnixToDateTime(customer.created_at).time}{" "} + {formatUnixToDateTime(customer.created_at,{ ampm: true, case: "lower" }).time}{" "} Date: Mon, 1 Sep 2025 21:20:55 +0530 Subject: [PATCH 2/2] [Fix] Prevent removing the last Metered Feature row #175 --- vite/src/views/credits/CreditSystemConfig.tsx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/vite/src/views/credits/CreditSystemConfig.tsx b/vite/src/views/credits/CreditSystemConfig.tsx index 99969e781..5423bc2da 100644 --- a/vite/src/views/credits/CreditSystemConfig.tsx +++ b/vite/src/views/credits/CreditSystemConfig.tsx @@ -20,6 +20,7 @@ import React, { useEffect, useState } from "react"; import { Button } from "@/components/ui/button"; import { useFeaturesContext } from "../features/FeaturesContext"; import { X } from "lucide-react"; +import { toast } from "sonner"; function CreditSystemConfig({ creditSystem, @@ -74,6 +75,10 @@ function CreditSystemConfig({ const removeSchemaItem = (index: number) => { const newSchema = [...creditSystemConfig.schema]; + if(newSchema.length == 1){ + toast.error("At Least One Row Should Be There") + return + } newSchema.splice(index, 1); setCreditSystemConfig({ ...creditSystemConfig, schema: newSchema }); };