This commit is contained in:
NotII
2025-04-07 19:25:24 +01:00
parent 7f7dd78818
commit 2f48ee38c2
102 changed files with 1825 additions and 761 deletions

View File

@@ -1,7 +1,7 @@
"use client";
import { useEffect } from "react";
import { clientFetch } from "@/lib/client-utils";
import { clientFetch } from "@/lib/api";
const KeepOnline = () => {
useEffect(() => {

View File

@@ -2,7 +2,7 @@
import { Package, Users, CreditCard } from "lucide-react";
import { AnimatedCounter } from "./animated-counter";
import { PlatformStats } from "@/lib/stats-service";
import { PlatformStats } from "@/lib/api";
const formatCurrency = (value: number) => {
return new Intl.NumberFormat('en-GB', {

View File

@@ -10,7 +10,7 @@ import {
TooltipProvider,
TooltipTrigger,
} from "@/components/ui/tooltip";
import { getCookie } from "@/lib/client-utils";
import { getCookie } from "@/lib/api";
import axios from "axios";
import { useRouter } from "next/navigation";

View File

@@ -6,12 +6,12 @@ import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
import { Avatar, AvatarFallback } from "@/components/ui/avatar";
import { cn } from "@/lib/utils";
import { cn } from "@/lib/utils/general";
import { formatDistanceToNow } from "date-fns";
import axios from "axios";
import { toast } from "sonner";
import { ArrowLeft, Send, RefreshCw, File, FileText, Image as ImageIcon, Download } from "lucide-react";
import { getCookie, clientFetch } from "@/lib/client-utils";
import { getCookie, clientFetch } from "@/lib/api";
import { ImageViewerModal } from "@/components/modals/image-viewer-modal";
import BuyerOrderInfo from "./BuyerOrderInfo";

View File

@@ -11,7 +11,7 @@ import {
DropdownMenuItem,
DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu";
import { clientFetch } from "@/lib/client-utils";
import { clientFetch } from "@/lib/api";
interface UnreadCounts {
totalUnread: number;

View File

@@ -1,7 +1,7 @@
"use client"
import { useState, useEffect, useRef } from "react";
import { useRouter } from "next/navigation";
import React, { useState, useEffect, useRef, useCallback } from 'react';
import { useRouter } from 'next/navigation';
import {
Table,
TableBody,
@@ -22,7 +22,15 @@ import {
Eye,
User,
ChevronLeft,
ChevronRight
ChevronRight,
MessageSquare,
ArrowRightCircle,
X,
Clock,
CheckCheck,
Search,
Volume2,
VolumeX
} from "lucide-react";
import {
Select,
@@ -31,9 +39,11 @@ import {
SelectTrigger,
SelectValue,
} from "@/components/ui/select";
import { clientFetch } from "@/lib/client-utils";
import { toast } from "sonner";
import { getCookie } from "@/lib/client-utils";
import { clientFetch, getCookie } from "@/lib/api";
import { formatDistance } from 'date-fns';
import Link from 'next/link';
import { cn } from '@/lib/utils/general';
interface Chat {
_id: string;

View File

@@ -10,7 +10,7 @@ import { Textarea } from "@/components/ui/textarea";
import { ArrowLeft, Send, RefreshCw, Search, User } from "lucide-react";
import axios from "axios";
import { toast } from "sonner";
import { getCookie } from "@/lib/client-utils";
import { getCookie } from "@/lib/api";
import debounce from "lodash/debounce";
interface User {

View File

@@ -2,7 +2,7 @@
import { useState, useEffect } from "react"
import OrderStats from "./order-stats"
import { getGreeting } from "@/lib/utils"
import { getGreeting } from "@/lib/utils/general"
import { statsConfig } from "@/config/dashboard"
import { getRandomQuote } from "@/config/quotes"
import type { OrderStatsData } from "@/lib/types"
@@ -11,7 +11,7 @@ import { ShoppingCart, RefreshCcw } from "lucide-react"
import { Button } from "@/components/ui/button"
import { useToast } from "@/components/ui/use-toast"
import { Skeleton } from "@/components/ui/skeleton"
import { clientFetch } from "@/lib/client-utils"
import { clientFetch } from "@/lib/api"
interface ContentProps {
username: string

View File

@@ -21,7 +21,7 @@ import { Switch } from '@/components/ui/switch';
import { Textarea } from '@/components/ui/textarea';
import { toast } from '@/components/ui/use-toast';
import { Promotion, PromotionFormData } from '@/lib/types/promotion';
import { fetchClient } from '@/lib/client-service';
import { fetchClient } from '@/lib/api';
// Form schema validation with Zod (same as NewPromotionForm)
const formSchema = z.object({

View File

@@ -21,7 +21,7 @@ import { Switch } from '@/components/ui/switch';
import { Textarea } from '@/components/ui/textarea';
import { toast } from '@/components/ui/use-toast';
import { PromotionFormData } from '@/lib/types/promotion';
import { fetchClient } from '@/lib/client-service';
import { fetchClient } from '@/lib/api';
// Form schema validation with Zod
const formSchema = z.object({

View File

@@ -31,7 +31,7 @@ import {
import { toast } from '@/components/ui/use-toast';
import { Badge } from '@/components/ui/badge';
import { Promotion } from '@/lib/types/promotion';
import { fetchClient } from '@/lib/client-service';
import { fetchClient } from '@/lib/api';
import NewPromotionForm from './NewPromotionForm';
import EditPromotionForm from './EditPromotionForm';

View File

@@ -7,7 +7,7 @@ import { ShoppingCart, LogOut } from "lucide-react"
import { NavItem } from "./nav-item"
import { Button } from "@/components/ui/button"
import { sidebarConfig } from "@/config/sidebar"
import { logoutUser } from "@/lib/auth-utils"
import { logoutUser } from "@/lib/utils/auth"
import { toast } from "sonner"
const Sidebar: React.FC = () => {

View File

@@ -5,8 +5,8 @@ import { Button } from "@/components/ui/button";
import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from "@/components/ui/dialog";
import { Send, Bold, Italic, Code, Link as LinkIcon, Image as ImageIcon, X, Eye, EyeOff } from "lucide-react";
import { toast } from "sonner";
import { apiRequest } from "@/lib/storeHelper";
import { cn } from "@/lib/utils";
import { apiRequest } from "@/lib/api";
import { cn } from "@/lib/utils/general";
import { Textarea } from "@/components/ui/textarea";
import ReactMarkdown from 'react-markdown';

View File

@@ -20,7 +20,7 @@ import type { ProductModalProps, ProductData } from "@/lib/types";
import { toast } from "sonner";
import type React from "react";
import { Plus } from "lucide-react";
import { apiRequest } from "@/lib/storeHelper";
import { apiRequest } from "@/lib/api";
type CategorySelectProps = {
categories: { _id: string; name: string; parentId?: string }[];

View File

@@ -1,7 +1,7 @@
"use client";
import { useEffect, useState, useRef } from "react";
import { clientFetch } from "@/lib/client-utils";
import { clientFetch } from "@/lib/api";
import { toast } from "sonner";
import { Package, Bell } from "lucide-react";
import { useRouter } from "next/navigation";

View File

@@ -13,9 +13,9 @@ import {
DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu";
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
import { clientFetch } from "@/lib/client-utils";
import { clientFetch } from "@/lib/api";
import { toast } from "sonner";
import { getCookie } from "@/lib/client-utils";
import { getCookie } from "@/lib/api";
import axios from "axios";
interface Order {

View File

@@ -30,7 +30,7 @@ import {
MessageCircle
} from "lucide-react";
import Link from "next/link";
import { clientFetch } from '@/lib/client-utils';
import { clientFetch } from '@/lib/api';
import { toast } from "sonner";
import { Checkbox } from "@/components/ui/checkbox";
import {

View File

@@ -4,7 +4,7 @@ import * as React from "react"
import * as AccordionPrimitive from "@radix-ui/react-accordion"
import { ChevronDown } from "lucide-react"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const Accordion = AccordionPrimitive.Root

View File

@@ -3,7 +3,7 @@
import * as React from "react"
import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
import { buttonVariants } from "@/components/ui/button"
const AlertDialog = AlertDialogPrimitive.Root

View File

@@ -1,7 +1,7 @@
import * as React from "react"
import { cva, type VariantProps } from "class-variance-authority"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const alertVariants = cva(
"relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",

View File

@@ -3,7 +3,7 @@
import * as React from "react"
import * as AvatarPrimitive from "@radix-ui/react-avatar"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const Avatar = React.forwardRef<
React.ElementRef<typeof AvatarPrimitive.Root>,

View File

@@ -1,7 +1,7 @@
import * as React from "react";
import { cva, type VariantProps } from "class-variance-authority";
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const badgeVariants = cva(
"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",

View File

@@ -2,7 +2,7 @@ import * as React from "react"
import { Slot } from "@radix-ui/react-slot"
import { ChevronRight, MoreHorizontal } from "lucide-react"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const Breadcrumb = React.forwardRef<
HTMLElement,

View File

@@ -2,7 +2,7 @@ import * as React from "react"
import { Slot } from "@radix-ui/react-slot"
import { cva, type VariantProps } from "class-variance-authority"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const buttonVariants = cva(
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",

View File

@@ -4,7 +4,7 @@ import * as React from "react"
import { ChevronLeft, ChevronRight } from "lucide-react"
import { DayPicker } from "react-day-picker"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
import { buttonVariants } from "@/components/ui/button"
export type CalendarProps = React.ComponentProps<typeof DayPicker>

View File

@@ -1,6 +1,6 @@
import * as React from "react"
import { cn } from "@/lib/utils"
import { cn } from "@/lib/utils/general"
const Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ className, ...props }, ref) => (
<div ref={ref} className={cn("rounded-lg border bg-card text-card-foreground shadow-sm", className)} {...props} />

View File

@@ -6,7 +6,7 @@ import useEmblaCarousel, {
} from "embla-carousel-react"
import { ArrowLeft, ArrowRight } from "lucide-react"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
import { Button } from "@/components/ui/button"
type CarouselApi = UseEmblaCarouselType[1]

View File

@@ -3,7 +3,7 @@
import * as React from "react"
import * as RechartsPrimitive from "recharts"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
// Format: { THEME_NAME: CSS_SELECTOR }
const THEMES = { light: "", dark: ".dark" } as const

View File

@@ -4,7 +4,7 @@ import * as React from "react"
import * as CheckboxPrimitive from "@radix-ui/react-checkbox"
import { Check } from "lucide-react"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const Checkbox = React.forwardRef<
React.ElementRef<typeof CheckboxPrimitive.Root>,

View File

@@ -5,7 +5,7 @@ import { type DialogProps } from "@radix-ui/react-dialog"
import { Command as CommandPrimitive } from "cmdk"
import { Search } from "lucide-react"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
import { Dialog, DialogContent } from "@/components/ui/dialog"
const Command = React.forwardRef<

View File

@@ -4,7 +4,7 @@ import * as React from "react"
import * as ContextMenuPrimitive from "@radix-ui/react-context-menu"
import { Check, ChevronRight, Circle } from "lucide-react"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const ContextMenu = ContextMenuPrimitive.Root

View File

@@ -4,7 +4,7 @@ import * as React from "react"
import * as DialogPrimitive from "@radix-ui/react-dialog"
import { X } from "lucide-react"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const Dialog = DialogPrimitive.Root

View File

@@ -3,7 +3,7 @@
import * as React from "react"
import { Drawer as DrawerPrimitive } from "vaul"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const Drawer = ({
shouldScaleBackground = true,

View File

@@ -4,7 +4,7 @@ import * as React from "react"
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu"
import { Check, ChevronRight, Circle } from "lucide-react"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const DropdownMenu = DropdownMenuPrimitive.Root

View File

@@ -12,7 +12,7 @@ import {
useFormContext,
} from "react-hook-form"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
import { Label } from "@/components/ui/label"
const Form = FormProvider

View File

@@ -1,6 +1,6 @@
import * as React from "react"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const Input = React.forwardRef<HTMLInputElement, React.ComponentProps<"input">>(
({ className, type, ...props }, ref) => {

View File

@@ -4,7 +4,7 @@ import * as React from "react"
import * as LabelPrimitive from "@radix-ui/react-label"
import { cva, type VariantProps } from "class-variance-authority"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const labelVariants = cva(
"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"

View File

@@ -4,7 +4,7 @@ import * as React from "react"
import * as MenubarPrimitive from "@radix-ui/react-menubar"
import { Check, ChevronRight, Circle } from "lucide-react"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const MenubarMenu = MenubarPrimitive.Menu

View File

@@ -3,7 +3,7 @@ import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu"
import { cva } from "class-variance-authority"
import { ChevronDown } from "lucide-react"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const NavigationMenu = React.forwardRef<
React.ElementRef<typeof NavigationMenuPrimitive.Root>,

View File

@@ -1,7 +1,7 @@
import * as React from "react"
import { ChevronLeft, ChevronRight, MoreHorizontal } from "lucide-react"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
import { ButtonProps, buttonVariants } from "@/components/ui/button"
const Pagination = ({ className, ...props }: React.ComponentProps<"nav">) => (

View File

@@ -3,7 +3,7 @@
import * as React from "react"
import * as PopoverPrimitive from "@radix-ui/react-popover"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const Popover = PopoverPrimitive.Root

View File

@@ -3,7 +3,7 @@
import * as React from "react"
import * as ProgressPrimitive from "@radix-ui/react-progress"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const Progress = React.forwardRef<
React.ElementRef<typeof ProgressPrimitive.Root>,

View File

@@ -4,7 +4,7 @@ import * as React from "react"
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group"
import { Circle } from "lucide-react"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const RadioGroup = React.forwardRef<
React.ElementRef<typeof RadioGroupPrimitive.Root>,

View File

@@ -3,7 +3,7 @@
import { GripVertical } from "lucide-react"
import * as ResizablePrimitive from "react-resizable-panels"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const ResizablePanelGroup = ({
className,

View File

@@ -3,7 +3,7 @@
import * as React from "react"
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const ScrollArea = React.forwardRef<
React.ElementRef<typeof ScrollAreaPrimitive.Root>,

View File

@@ -4,7 +4,7 @@ import * as React from "react"
import * as SelectPrimitive from "@radix-ui/react-select"
import { Check, ChevronDown, ChevronUp } from "lucide-react"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const Select = SelectPrimitive.Root

View File

@@ -3,7 +3,7 @@
import * as React from "react"
import * as SeparatorPrimitive from "@radix-ui/react-separator"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const Separator = React.forwardRef<
React.ElementRef<typeof SeparatorPrimitive.Root>,

View File

@@ -5,7 +5,7 @@ import * as SheetPrimitive from "@radix-ui/react-dialog"
import { cva, type VariantProps } from "class-variance-authority"
import { X } from "lucide-react"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const Sheet = SheetPrimitive.Root

View File

@@ -6,7 +6,7 @@ import { VariantProps, cva } from "class-variance-authority"
import { PanelLeft } from "lucide-react"
import { useIsMobile } from "@/hooks/use-mobile"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
import { Button } from "@/components/ui/button"
import { Input } from "@/components/ui/input"
import { Separator } from "@/components/ui/separator"

View File

@@ -1,4 +1,4 @@
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
function Skeleton({
className,

View File

@@ -3,7 +3,7 @@
import * as React from "react"
import * as SliderPrimitive from "@radix-ui/react-slider"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const Slider = React.forwardRef<
React.ElementRef<typeof SliderPrimitive.Root>,

View File

@@ -3,7 +3,7 @@
import * as React from "react"
import * as SwitchPrimitives from "@radix-ui/react-switch"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const Switch = React.forwardRef<
React.ElementRef<typeof SwitchPrimitives.Root>,

View File

@@ -1,6 +1,6 @@
import * as React from "react"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const Table = React.forwardRef<
HTMLTableElement,

View File

@@ -3,7 +3,7 @@
import * as React from "react"
import * as TabsPrimitive from "@radix-ui/react-tabs"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const Tabs = TabsPrimitive.Root

View File

@@ -1,6 +1,6 @@
import * as React from "react"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const Textarea = React.forwardRef<
HTMLTextAreaElement,

View File

@@ -5,7 +5,7 @@ import * as ToastPrimitives from "@radix-ui/react-toast"
import { cva, type VariantProps } from "class-variance-authority"
import { X } from "lucide-react"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const ToastProvider = ToastPrimitives.Provider

View File

@@ -4,7 +4,7 @@ import * as React from "react"
import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group"
import { type VariantProps } from "class-variance-authority"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
import { toggleVariants } from "@/components/ui/toggle"
const ToggleGroupContext = React.createContext<

View File

@@ -4,7 +4,7 @@ import * as React from "react"
import * as TogglePrimitive from "@radix-ui/react-toggle"
import { cva, type VariantProps } from "class-variance-authority"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const toggleVariants = cva(
"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 gap-2",

View File

@@ -3,7 +3,7 @@
import * as React from "react"
import * as TooltipPrimitive from "@radix-ui/react-tooltip"
import { cn } from "@/lib/styles";
import { cn } from "@/lib/utils/styles";
const TooltipProvider = TooltipPrimitive.Provider