From 0176f89cb7d23d86fbfa7467c3ee0893c5a6393d Mon Sep 17 00:00:00 2001 From: g Date: Mon, 15 Dec 2025 17:57:18 +0000 Subject: [PATCH] Add CSV export for orders and update UI symbols MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Introduces an exportOrdersToCSV function in lib/api-client.ts to allow exporting orders by status as a CSV file. Updates various UI components to use the '•' (bullet) symbol instead of '·' (middle dot) and replaces some emoji/unicode characters for improved consistency and compatibility. Also normalizes the 'use client' directive to include a BOM in many files. --- components/KeepOnline.ts | 4 +- components/admin/AdminAnalytics.tsx | 4 +- components/admin/BanUserCard.tsx | 2 +- components/admin/InvitationsListCard.tsx | 4 +- components/admin/InviteVendorCard.tsx | 2 +- components/admin/OrdersTable.tsx | 2 +- components/admin/RecentOrdersCard.tsx | 4 +- components/admin/SystemStatusCard.tsx | 2 +- components/admin/VendorsCard.tsx | 4 +- components/animated-counter.tsx | 4 +- components/animated-stats-section.tsx | 4 +- components/audio-preloader.tsx | 2 +- components/christmas-decorations.tsx | 16 ++-- components/dashboard/BuyerOrderInfo.tsx | 10 +- components/dashboard/ChatDetail.tsx | 4 +- components/dashboard/ChatTable.tsx | 4 +- components/dashboard/NewChatForm.tsx | 4 +- components/dashboard/content.tsx | 4 +- components/dashboard/dashboard.tsx | 2 +- components/dashboard/order-stats.tsx | 2 +- components/dashboard/page-loading.tsx | 4 +- .../promotions/EditPromotionForm.tsx | 4 +- .../dashboard/promotions/NewPromotionForm.tsx | 4 +- .../dashboard/promotions/ProductSelector.tsx | 4 +- .../promotions/PromotionDetailsModal.tsx | 6 +- .../dashboard/promotions/PromotionsList.tsx | 6 +- .../promotions/PromotionsPageSkeleton.tsx | 4 +- components/home-navbar.tsx | 4 +- components/layout/KeepOnlineWrapper.tsx | 4 +- components/layout/layout.tsx | 2 +- components/layout/nav-item.tsx | 4 +- components/layout/sidebar.tsx | 2 +- components/layout/theme-provider.tsx | 2 +- components/modals/broadcast-dialog.tsx | 4 +- components/modals/image-viewer-modal.tsx | 4 +- components/modals/import-products-modal.tsx | 6 +- components/modals/product-modal.tsx | 6 +- components/modals/product-selector.tsx | 4 +- components/modals/profit-analysis-modal.tsx | 2 +- components/modals/shipping-modal.tsx | 4 +- components/snow-loader.tsx | 4 +- components/theme-switcher.tsx | 4 +- components/theme-toggle.tsx | 2 +- components/ui/accordion.tsx | 2 +- components/ui/alert-dialog.tsx | 2 +- components/ui/alert.tsx | 2 +- components/ui/avatar.tsx | 2 +- components/ui/badge.tsx | 4 +- components/ui/breadcrumb.tsx | 2 +- components/ui/button.tsx | 2 +- components/ui/calendar.tsx | 2 +- components/ui/card.tsx | 2 +- components/ui/carousel.tsx | 2 +- components/ui/chart.tsx | 2 +- components/ui/checkbox.tsx | 2 +- components/ui/collapsible.tsx | 2 +- components/ui/command.tsx | 2 +- components/ui/context-menu.tsx | 2 +- components/ui/date-picker.tsx | 4 +- components/ui/dialog.tsx | 2 +- components/ui/drawer.tsx | 2 +- components/ui/dropdown-menu.tsx | 2 +- components/ui/form.tsx | 2 +- components/ui/input.tsx | 2 +- components/ui/label.tsx | 2 +- components/ui/menubar.tsx | 2 +- components/ui/navigation-menu.tsx | 2 +- components/ui/pagination.tsx | 2 +- components/ui/popover.tsx | 2 +- components/ui/progress.tsx | 2 +- components/ui/radio-group.tsx | 2 +- components/ui/resizable.tsx | 2 +- components/ui/scroll-area.tsx | 2 +- components/ui/select.tsx | 2 +- components/ui/separator.tsx | 2 +- components/ui/sheet.tsx | 2 +- components/ui/sidebar.tsx | 2 +- components/ui/skeleton.tsx | 2 +- components/ui/slider.tsx | 2 +- components/ui/switch.tsx | 2 +- components/ui/table.tsx | 2 +- components/ui/tabs.tsx | 2 +- components/ui/textarea.tsx | 2 +- components/ui/toast.tsx | 2 +- components/ui/toggle-group.tsx | 2 +- components/ui/toggle.tsx | 2 +- components/ui/tooltip.tsx | 2 +- components/ui/use-toast.ts | 2 +- lib/api-client.ts | 93 +++++++++++++++++++ lib/api.ts | 3 + public/git-info.json | 4 +- 91 files changed, 232 insertions(+), 136 deletions(-) diff --git a/components/KeepOnline.ts b/components/KeepOnline.ts index fe53598..53909cd 100644 --- a/components/KeepOnline.ts +++ b/components/KeepOnline.ts @@ -1,4 +1,4 @@ -"use client"; +"use client"; import { useKeepOnline } from "@/hooks/useKeepOnline"; @@ -14,4 +14,4 @@ const KeepOnline = () => { return null; } -export default KeepOnline; \ No newline at end of file +export default KeepOnline; diff --git a/components/admin/AdminAnalytics.tsx b/components/admin/AdminAnalytics.tsx index 3aa294b..8412baa 100644 --- a/components/admin/AdminAnalytics.tsx +++ b/components/admin/AdminAnalytics.tsx @@ -1,4 +1,4 @@ -"use client"; +"use client"; import React, { useState, useEffect } from "react"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; @@ -739,4 +739,4 @@ export default function AdminAnalytics() { ); -} \ No newline at end of file +} diff --git a/components/admin/BanUserCard.tsx b/components/admin/BanUserCard.tsx index 9ddcf0e..4143f65 100644 --- a/components/admin/BanUserCard.tsx +++ b/components/admin/BanUserCard.tsx @@ -1,4 +1,4 @@ -"use client"; +"use client"; import { useState } from "react"; import { fetchClient } from "@/lib/api-client"; diff --git a/components/admin/InvitationsListCard.tsx b/components/admin/InvitationsListCard.tsx index 18172d3..0c5e41d 100644 --- a/components/admin/InvitationsListCard.tsx +++ b/components/admin/InvitationsListCard.tsx @@ -1,4 +1,4 @@ -"use client"; +"use client"; import { useEffect, useState } from "react"; import { fetchClient } from "@/lib/api-client"; @@ -62,7 +62,7 @@ export default function InvitationsListCard() { Code: {inv.code}
- Created: {new Date(inv.createdAt).toLocaleString()} · Expires: {new Date(inv.expiresAt).toLocaleString()} + Created: {new Date(inv.createdAt).toLocaleString()} • Expires: {new Date(inv.expiresAt).toLocaleString()}
diff --git a/components/admin/InviteVendorCard.tsx b/components/admin/InviteVendorCard.tsx index b7295b6..a13a80b 100644 --- a/components/admin/InviteVendorCard.tsx +++ b/components/admin/InviteVendorCard.tsx @@ -1,4 +1,4 @@ -"use client"; +"use client"; import { useState } from "react"; import { fetchClient } from "@/lib/api-client"; diff --git a/components/admin/OrdersTable.tsx b/components/admin/OrdersTable.tsx index 2363d09..52b0415 100644 --- a/components/admin/OrdersTable.tsx +++ b/components/admin/OrdersTable.tsx @@ -1,4 +1,4 @@ -"use client"; +"use client"; import { useState } from "react"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; diff --git a/components/admin/RecentOrdersCard.tsx b/components/admin/RecentOrdersCard.tsx index 6f4c5f6..a4eb471 100644 --- a/components/admin/RecentOrdersCard.tsx +++ b/components/admin/RecentOrdersCard.tsx @@ -1,4 +1,4 @@ -"use client"; +"use client"; import { useEffect, useState } from "react"; import { fetchClient } from "@/lib/api-client"; @@ -81,7 +81,7 @@ export default function RecentOrdersCard() {
- User: {o.userId} · Total: £{Number(o.total).toFixed(2)} + User: {o.userId} • Total: £{Number(o.total).toFixed(2)}
{o.items && o.items.length > 0 && (