fix: update import paths for lib folders in components

This commit is contained in:
پارسا آقایی 2026-06-12 01:32:10 +03:30
parent 14bf2953ab
commit c4966136d7
22 changed files with 66 additions and 60 deletions

View File

@ -3,7 +3,7 @@ import React, { useState, useEffect } from "react";
import { motion, AnimatePresence } from "motion/react";
import { X, MapPin, User, Phone, Hash, Save, Check } from "lucide-react";
import { toPersian, cn } from "../lib/utils";
import { Address } from "../store/userStore";
import { Address } from "../lib/store/userStore";
import { toast } from "sonner";
interface AddressModalProps {

View File

@ -1,8 +1,8 @@
"use client";
import React, { useState, useMemo, useEffect } from "react";
import { Product, PetType } from "../data/products";
import { usePetStore } from "../store/usePetStore";
import { productService } from "../services/productService";
import { Product, PetType } from "../lib/data/products";
import { usePetStore } from "../lib/store/usePetStore";
import { productService } from "../lib/services/productService";
import { motion, AnimatePresence } from "motion/react";
import { ProductCardSkeleton } from "./Skeleton";
import { toast } from "sonner";
@ -23,7 +23,7 @@ import {
Plus,
Loader2
} from "lucide-react";
import { useCartStore } from "../store/cartStore";
import { useCartStore } from "../lib/store/cartStore";
import SafeImage from "./SafeImage";
const CATEGORIES = [

View File

@ -2,8 +2,8 @@
import React, { useState, useEffect, useRef } from "react";
import { motion, AnimatePresence } from "motion/react";
import { X, User, Building2, Heart, ShieldCheck, Phone, Key, LogIn, ArrowRight, RefreshCw } from "lucide-react";
import { useUserStore, UserRole } from "../store/userStore";
import { authService } from "../services/authService";
import { useUserStore, UserRole } from "../lib/store/userStore";
import { authService } from "../lib/services/authService";
import { toast } from "sonner";
import { toPersian } from "../lib/utils";

View File

@ -1,8 +1,8 @@
"use client";
import React, { useState, useEffect } from "react";
import { Product } from "../data/products";
import { useCartStore } from "../store/cartStore";
import { productService } from "../services/productService";
import { Product } from "../lib/data/products";
import { useCartStore } from "../lib/store/cartStore";
import { productService } from "../lib/services/productService";
import { motion, AnimatePresence } from "motion/react";
import {
Building2,

View File

@ -2,8 +2,8 @@
import React from "react";
import { motion } from "motion/react";
import { ChevronRight, Calendar, User, ArrowLeft, Sparkles, BookOpen } from "lucide-react";
import { Product } from "../data/products";
import { productService } from "../services/productService";
import { Product } from "../lib/data/products";
import { productService } from "../lib/services/productService";
const BLOG_POSTS = [
{

View File

@ -3,9 +3,9 @@ import React, { useState, useEffect } from "react";
import { X, Trash2, Plus, Minus, ShoppingBag, ShieldCheck, ArrowLeft, Ticket, Sparkles, CheckCircle2 } from "lucide-react";
import { motion, AnimatePresence } from "motion/react";
import { toPersian, cn } from "../lib/utils";
import { useCartStore } from "../store/cartStore";
import { Product } from "../data/products";
import { productService } from "../services/productService";
import { useCartStore } from "../lib/store/cartStore";
import { Product } from "../lib/data/products";
import { productService } from "../lib/services/productService";
import SafeImage from "./SafeImage";
import { toast } from "sonner";

View File

@ -17,11 +17,11 @@ import {
PlusCircle
} from "lucide-react";
import { toPersian, cn } from "../lib/utils";
import { useCartStore } from "../store/cartStore";
import { usePetStore } from "../store/usePetStore";
import { useUserStore } from "../store/userStore";
import { Product } from "../data/products";
import { productService } from "../services/productService";
import { useCartStore } from "../lib/store/cartStore";
import { usePetStore } from "../lib/store/usePetStore";
import { useUserStore } from "../lib/store/userStore";
import { Product } from "../lib/data/products";
import { productService } from "../lib/services/productService";
import { toast } from "sonner";
import { useRouter } from 'next/navigation';

View File

@ -2,7 +2,10 @@
import React from 'react';
import { FileQuestion, AlertCircle, Home, RefreshCw } from 'lucide-react';
export const NotFoundPage = ({ onGoHome }: { onGoHome: () => void }) => {
import { useRouter } from 'next/navigation';
export const NotFoundPage = () => {
const router = useRouter();
return (
<div className="min-h-[80vh] flex items-center justify-center p-6" dir="rtl">
<div className="max-w-lg w-full text-center">
@ -21,7 +24,7 @@ export const NotFoundPage = ({ onGoHome }: { onGoHome: () => void }) => {
</p>
<button
onClick={onGoHome}
onClick={() => router.push('/')}
className="bg-medical-gray-900 text-white px-10 py-5 rounded-2xl font-black flex items-center justify-center gap-3 mx-auto hover:bg-canina-blue transition-all shadow-2xl shadow-medical-gray-900/10"
>
<Home className="w-5 h-5" />

View File

@ -1,8 +1,8 @@
"use client";
import { useState, useEffect, useMemo } from "react";
import { Product } from "../data/products";
import { usePetStore } from "../store/usePetStore";
import { productService } from "../services/productService";
import { Product } from "../lib/data/products";
import { usePetStore } from "../lib/store/usePetStore";
import { productService } from "../lib/services/productService";
import { motion, AnimatePresence } from "motion/react";
import { Eye, ShoppingCart, ShieldCheck, Heart, AlertCircle, Sparkles } from "lucide-react";
import SafeImage from "./SafeImage";

View File

@ -2,9 +2,9 @@
import React, { useState, useRef, useEffect } from "react";
import { Search, ChevronDown, Menu, X, Pill, ShieldCheck, HeartPulse, Sparkles, ShoppingBag, User, PlusCircle, Check, Building2, LogIn, Wallet, LogOut, MapPin, FileHeart, Dog, Cat } from "lucide-react";
import { motion, AnimatePresence } from "motion/react";
import { useCartStore } from "../store/cartStore";
import { usePetStore } from "../store/usePetStore";
import { useUserStore } from "../store/userStore";
import { useCartStore } from "../lib/store/cartStore";
import { usePetStore } from "../lib/store/usePetStore";
import { useUserStore } from "../lib/store/userStore";
import { toast } from "sonner";
import HeaderButton from "./HeaderButton";
import AuthModal from "./AuthModal";

View File

@ -3,7 +3,7 @@ import { motion, useMotionValue, useTransform, animate } from "motion/react";
import { ChevronLeft } from "lucide-react";
import { useEffect, useState } from "react";
import { toPersian } from "../lib/utils";
import { useSettingsStore } from "../store/settingsStore";
import { useSettingsStore } from "../lib/store/settingsStore";
function StatCounter({ target }: { target: number }) {
const [displayValue, setDisplayValue] = useState(0);

View File

@ -1,10 +1,10 @@
"use client";
import { useMemo, useState, useEffect } from "react";
import { INGREDIENTS_WIKI, Product } from "../data/products";
import { INGREDIENTS_WIKI, Product } from "../lib/data/products";
import { motion } from "motion/react";
import { FlaskConical, CheckCircle2, ChevronRight, ChevronLeft, Beaker } from "lucide-react";
import { useSettingsStore } from "../store/settingsStore";
import { productService } from "../services/productService";
import { useSettingsStore } from "../lib/store/settingsStore";
import { productService } from "../lib/services/productService";
import { useRouter } from 'next/navigation';

View File

@ -2,8 +2,8 @@
import React, { useState, useEffect, useRef } from "react";
import { motion, AnimatePresence } from "motion/react";
import { X, ShieldCheck, Phone, Key, LogIn, ArrowRight, RefreshCw } from "lucide-react";
import { authService } from "../services/authService";
import { useUserStore } from "../store/userStore";
import { authService } from "../lib/services/authService";
import { useUserStore } from "../lib/store/userStore";
import { toast } from "sonner";
import { toPersian } from "../lib/utils";

View File

@ -1,6 +1,6 @@
"use client";
import React, { useState, useEffect } from 'react';
import { useNetworkStatus } from '../hooks/useNetworkStatus';
import { useNetworkStatus } from '../lib/hooks/useNetworkStatus';
import { WifiOff, Wifi, X } from 'lucide-react';
import { motion, AnimatePresence } from 'motion/react';

View File

@ -10,8 +10,8 @@ import {
Sparkles,
Heart
} from "lucide-react";
import { useCartStore } from "../store/cartStore";
import { usePetStore } from "../store/usePetStore";
import { useCartStore } from "../lib/store/cartStore";
import { usePetStore } from "../lib/store/usePetStore";
import { useRouter } from 'next/navigation';

View File

@ -12,7 +12,7 @@ import {
Clock,
ExternalLink
} from "lucide-react";
import { useCartStore } from "../store/cartStore";
import { useCartStore } from "../lib/store/cartStore";
import { useRouter } from 'next/navigation';

View File

@ -1,7 +1,7 @@
"use client";
import React, { useState, useMemo, useEffect } from "react";
import { Product, PetType } from "../data/products";
import { productService } from "../services/productService";
import { Product, PetType } from "../lib/data/products";
import { productService } from "../lib/services/productService";
import { motion, AnimatePresence } from "motion/react";
import { PetProfileSkeleton } from "./Skeleton";
import {
@ -29,8 +29,8 @@ import {
TrendingUp,
Check
} from "lucide-react";
import { usePetStore, PetProfile as GlobalPetProfile, Reminder, HealthLog, PetConsumption } from "../store/usePetStore";
import { useCartStore } from "../store/cartStore";
import { usePetStore, PetProfile as GlobalPetProfile, Reminder, HealthLog, PetConsumption } from "../lib/store/usePetStore";
import { useCartStore } from "../lib/store/cartStore";
import SafeImage from "./SafeImage";
import { toast } from "sonner";
import { toPersian, cn } from "../lib/utils";

View File

@ -41,13 +41,13 @@ const ICON_MAP: Record<string, any> = {
Users
};
import { toPersian, cn } from "../lib/utils";
import { Product, PRODUCTS } from "../data/products";
import { productService } from "../services/productService";
import { SCIENTIFIC_TERMS } from "../data/scientificTerms";
import { useSettingsStore } from "../store/settingsStore";
import { Product, PRODUCTS } from "../lib/data/products";
import { productService } from "../lib/services/productService";
import { SCIENTIFIC_TERMS } from "../lib/data/scientificTerms";
import { useSettingsStore } from "../lib/store/settingsStore";
import { create } from "zustand";
import { useCartStore } from "../store/cartStore";
import { usePetStore } from "../store/usePetStore";
import { useCartStore } from "../lib/store/cartStore";
import { usePetStore } from "../lib/store/usePetStore";
import { toast } from "sonner";
interface CalculatorState {

View File

@ -1,12 +1,15 @@
"use client";
import React, { useMemo, useState, useEffect } from "react";
import { Search, ShoppingBag, ChevronLeft, ArrowRight, Activity, Sparkles, HeartPulse, Stethoscope, ShieldCheck, Heart, AlertCircle } from "lucide-react";
import { usePetStore } from "../store/usePetStore";
import { usePetStore } from "../lib/store/usePetStore";
import { motion } from "motion/react";
import { Product } from "../data/products";
import { productService } from "../services/productService";
import { Product } from "../lib/data/products";
import { productService } from "../lib/services/productService";
export default function SearchResultsPage({ query, onProductClick, onBack }: { query: string; onProductClick: (p: Product) => void; onBack: () => void }) {
import { useRouter } from 'next/navigation';
export default function SearchResultsPage({ query }: { query: string }) {
const router = useRouter();
const { getActivePet } = usePetStore();
const activePet = getActivePet();
const [products, setProducts] = useState<Product[]>([]);
@ -29,7 +32,7 @@ export default function SearchResultsPage({ query, onProductClick, onBack }: { q
return (
<div className="min-h-screen bg-medical-gray-50 py-20 px-6 font-vazir" dir="rtl">
<div className="max-w-7xl mx-auto">
<button onClick={onBack} className="flex items-center gap-2 text-medical-gray-400 font-black mb-10 hover:text-canina-blue transition-colors">
<button onClick={() => router.back()} className="flex items-center gap-2 text-medical-gray-400 font-black mb-10 hover:text-canina-blue transition-colors">
<ArrowRight className="w-5 h-5 rotate-180" />
بازگشت
</button>
@ -61,7 +64,7 @@ export default function SearchResultsPage({ query, onProductClick, onBack }: { q
<motion.div
key={product.id}
layoutId={product.id}
onClick={() => onProductClick(product)}
onClick={() => router.push(`/shop/${product.id}`)}
className="bg-white rounded-[2.5rem] p-8 border border-medical-gray-200 group cursor-pointer hover:shadow-2xl hover:shadow-canina-blue/10 transition-all flex flex-col relative"
>
<div className="relative aspect-square mb-8 bg-medical-gray-50 rounded-[2rem] overflow-hidden p-6 flex items-center justify-center">
@ -121,7 +124,7 @@ export default function SearchResultsPage({ query, onProductClick, onBack }: { q
<h3 className="text-2xl font-black text-medical-gray-900 mb-10 italic">محصولات پیشنهادی (پرفروش)</h3>
<div className="grid md:grid-cols-3 gap-8 opacity-60 hover:opacity-100 transition-opacity">
{bestSellers.map(p => (
<div key={p.id} onClick={() => onProductClick(p)} className="cursor-pointer group">
<div key={p.id} onClick={() => router.push(`/shop/${p.id}`)} className="cursor-pointer group">
<div className="aspect-square bg-white rounded-[2rem] p-6 mb-4 border border-medical-gray-100 flex items-center justify-center">
<img src={p.image} className="w-40 h-40 object-contain group-hover:scale-105 transition-transform" />
</div>

View File

@ -1,7 +1,7 @@
"use client";
import React, { useState } from "react";
import { motion, AnimatePresence } from "motion/react";
import { useSettingsStore } from "../store/settingsStore";
import { useSettingsStore } from "../lib/store/settingsStore";
import {
Dog,
Cat,

View File

@ -2,8 +2,8 @@
import React, { useState } from 'react';
import { motion, AnimatePresence } from 'motion/react';
import { Info, ExternalLink } from 'lucide-react';
import { SCIENTIFIC_TERMS } from '../data/scientificTerms';
import { useSettingsStore } from '../store/settingsStore';
import { SCIENTIFIC_TERMS } from '../lib/data/scientificTerms';
import { useSettingsStore } from '../lib/store/settingsStore';
interface TooltipProps {
termKey: string;

View File

@ -3,8 +3,8 @@ import React, { useState } from "react";
import { motion, AnimatePresence } from "motion/react";
import { User, ShoppingBag, Wallet, MapPin, LogOut, ChevronRight, Package, Calendar, UserCircle, ShoppingCart, Trash2, Edit2, Phone, Hash, CheckCircle2, ArrowUpCircle, ArrowDownCircle, Info, Clock, CheckCircle, Heart, Sparkles } from "lucide-react";
import { OrderRowSkeleton } from "./Skeleton";
import { useUserStore, Address } from "../store/userStore";
import { useCartStore } from "../store/cartStore";
import { useUserStore, Address } from "../lib/store/userStore";
import { useCartStore } from "../lib/store/cartStore";
import { toPersian, cn } from "../lib/utils";
import { toast } from "sonner";
import OrderDetailsModal from "./OrderDetailsModal";