new car added and added some new features to header location icon and again added show case section

This commit is contained in:
nabijonovdavronbek619@gmail.com
2025-11-14 15:14:41 +05:00
parent 8827f612a5
commit 8a2708a03a
81 changed files with 1147 additions and 476 deletions

View File

@@ -2,53 +2,51 @@
import { motion } from "framer-motion";
import Image from "next/image";
import Text from "../lib_components/text";
export default function HeroSection() {
return (
<section
dir="ltr"
className="relative w-full md:h-[300px] max-md:py-10 max-lg:px-2 overflow-hidden flex items-center justify-center"
className="relative w-full md:h-[500px] max-md:py-10 max-lg:px-2 overflow-hidden flex items-center justify-between"
>
<Image
{/* <Image
src="/hero2.jpg" // public papkaga rasm joylash (masalan, texnika rasmi)
alt="SpetsTexnika"
width={800}
height={400}
className="object-contain rounded-3xl"
/>
/> */}
{/* Asosiy kontent */}
{/* <div className="relative z-20 max-w-6xl mx-auto md:px-6 px-3 text-primary flex flex-col md:flex-row items-center gap-5 justify-between">
<div className="absolute inset-0 z-10">
<Image
src="/hero2.jpg" // public papkaga rasm joylash (masalan, texnika rasmi)
alt="SpetsTexnika"
fill
className="object-cover opacity-30"
priority
/>
</div>
{/* <div className="absolute inset-0 -z-10 mx-auto w-full h-full">
<Image
src="/2.jpg"
alt="SpetsTexnika"
fill
className="object-cover"
priority
/>
</div> */}
Chap tomondagi matn
<div className="relative z-20 max-w-7xl w-full mx-auto md:px-6 px-3 text-primary flex flex-col md:flex-row items-center gap-5 justify-between">
{/* Chap tomondagi matn */}
<motion.div
className="space-y-6 max-w-xl"
className="space-y-3 max-w-xl backdrop-blur-3xl bg-[#ffffff4a] rounded-xl py-6 px-4"
initial={{ opacity: 0, x: -60 }}
animate={{ opacity: 1, x: 0 }}
transition={{ duration: 0.8, ease: "easeOut" }}
>
<h1 className="text-2xl lg:text-4xl font-extrabold leading-tight">
Ishonchli <span className="text-yellow-400">SpesTexnika</span> —
sizning loyihangiz uchun eng yaxshi tanlov!
</h1>
<div className="text-2xl lg:text-4xl font-extrabold leading-tight text-primary">
<Text txt="hero_title"/>
</div>
<p className="text-lg text-gray-600">
Biz eng songgi texnikalar, maxsus transportlar va qurilish
uskunalarini qulay narxda taqdim etamiz.
</p>
<div className="text-xl font-medium text-secondary">
<Text txt="hero_desc"/>
</div>
</motion.div>
Ong tomondagi texnika rasmi
{/* Ong tomondagi texnika rasmi */}
<motion.div
className="hidden md:block"
initial={{ opacity: 0, x: 80 }}
@@ -63,7 +61,7 @@ export default function HeroSection() {
className="drop-shadow-2xl rounded-xl"
/>
</motion.div>
</div> */}
</div>
{/* Pastdagi tolqinli animatsiya (dekor) */}
{/* <motion.div

View File

@@ -18,23 +18,23 @@ export default function Map() {
<div className="text-left flex w-full justify-start">
<Title text="contacts" />
</div>
<div className="flex items-center justify-start gap-2 text-gray-500 text-[20px] ">
<div className="flex items-center justify-start gap-2 text-gray-500 text-[18px] ">
<span className="text-secondary">
<FaPhoneAlt />
</span>
+998 33 252-00-00
</div>
<div className="flex items-center justify-start gap-2 text-gray-500 text-[20px] ">
<div className="flex items-center justify-start gap-2 text-gray-500 text-[18px] ">
<span className="text-secondary">
<FaTelegram />
</span>
spes-texnika
</div>
<div className="flex items-center justify-start gap-2 text-gray-500 text-[20px] ">
<div className="flex items-center justify-start gap-2 text-gray-500 text-[18px] ">
<span className="text-secondary">
<BiTargetLock />
</span>
Yakkasaroy , Toshkent
Toshkent , Yakkasaroy , Xushtepa 6
</div>
</div>
</div>

View File

@@ -26,30 +26,30 @@ const productFilterTypesMainPage: productFilterTypes[] = [
];
export default function Products() {
const [productFilter, setProductFilter] = useState<string | null>(null);
//const [productFilter, setProductFilter] = useState<string | null>(null);
const [cars, setCars] = useState(allProducts);
// execute filetr function
useEffect(() => {
if (productFilter === "trucks") {
setCars(trucks);
} else if (productFilter === "cranes") {
setCars(cranes);
} else if (productFilter === "forklift-trucks") {
setCars(forklift);
} else if (productFilter === "excavators") {
setCars(excavators);
} else if (productFilter === "road-repairs") {
setCars(road_repairs);
} else {
setCars(allProducts);
}
}, [productFilter]);
// useEffect(() => {
// if (productFilter === "trucks") {
// setCars(trucks);
// } else if (productFilter === "cranes") {
// setCars(cranes);
// } else if (productFilter === "forklift-trucks") {
// setCars(forklift);
// } else if (productFilter === "excavators") {
// setCars(excavators);
// } else if (productFilter === "road-repairs") {
// setCars(road_repairs);
// } else {
// setCars(allProducts);
// }
// }, [productFilter]);
return (
<div dir="ltr" className="max-w-[1200px] w-full mx-auto">
{/* title part */}
<div className="flex flex-col">
<div className="flex flex-col mb-10">
<div className="flex items-center justify-center w-full ">
<div className="text-secondary px-2 text-[18px] font-semibold ">
<Text txt="katalog" />
@@ -59,7 +59,7 @@ export default function Products() {
</div>
{/* product filters */}
<div className="flex flex-wrap gap-1 gap-y-4 items-center justify-center mb-10 ">
{/* <div className="flex flex-wrap gap-1 gap-y-4 items-center justify-center mb-10 ">
{productFilterTypesMainPage.map((item, index) => (
<button
key={index}
@@ -80,7 +80,7 @@ export default function Products() {
)}
</button>
))}
</div>
</div> */}
{/* products */}
<div className="px-4 grid gap-5 grid-cols-1 place-content-center min-[500px]:grid-cols-2 min-lg:grid-cols-4 min-[1210px]:grid-cols-4">