diff --git a/app/[lang]/[carType]/page.tsx b/app/[lang]/[carType]/page.tsx index 5c6d211..9e1d639 100644 --- a/app/[lang]/[carType]/page.tsx +++ b/app/[lang]/[carType]/page.tsx @@ -2,7 +2,31 @@ import InnerProductcard from "@/components/cards/innerProductcard"; import Title from "@/components/lib_components/title"; -import { avtogreyderlar, avtokran, avtominora, buldozerlar, cement_trucks, dizel, dumb_trucks, eks_yuklagichlar, forkliftlar, gazels, gildirakli_eks, katkalar, kompressorlar, mini_eks, minora, old_yuklagichlar, paletli_eks, paletli_kranlar, teleskop_yuklagichlar, trailers } from "@/data"; +import { + asfalt, + assenizator, + avtogreyderlar, + avtokran, + avtominora, + betonNasoslar, + buldozerlar, + cement_trucks, + dumb_trucks, + eks_yuklagichlar, + evakuatorDemo, + forkliftlar, + gildirakli_eks, + katkalar, + manipulyator, + mini_eks, + minora, + old_yuklagichlar, + paletli_eks, + shalandaTraller, + teleskop_yuklagichlar, + trailers, + vodovoz, +} from "@/data"; import { useParams } from "next/navigation"; export default function CartType() { @@ -14,106 +38,143 @@ export default function CartType() { {/* car type groups */}
- {/* Avtosementavoz */} - {carType === "cement-truck" && cement_trucks.map((item)=>{ - return - })} + {carType === "cement-truck" && + cement_trucks.map((item) => { + return ; + })} {/* Samasvallar */} - {carType === "dumb-truck" && dumb_trucks.map((item)=>{ - return - })} + {carType === "dumb-truck" && + dumb_trucks.map((item) => { + return ; + })} {/* Traylerlar */} - {carType === "trailers" && trailers.map((item)=>{ - return - })} - - {/* Gazellar */} - {carType === "gazels" && gazels.map((item)=>{ - return - })} + {carType === "trailers" && + trailers.map((item) => { + return ; + })} {/* Avtominora */} - {carType === "avtotowers" && avtominora.map((item)=>{ - return - })} + {carType === "avtotowers" && + avtominora.map((item) => { + return ; + })} {/* Avtokran */} - {carType === "avtocranes" && avtokran.map((item)=>{ - return - })} + {carType === "avtocranes" && + avtokran.map((item) => { + return ; + })} {/* Minora kranlar */} - {carType === "tower-cranes" && minora.map((item)=>{ - return - })} - - {/* Dizel ko'targichlar */} - {carType === "lifters" && dizel.map((item)=>{ - return - })} - - {/* Paletli kranlar */} - {carType === "crawler-cranes" && paletli_kranlar.map((item)=>{ - return - })} + {carType === "tower-cranes" && + minora.map((item) => { + return ; + })} {/* old yuklagichlar */} - {carType === "front-loaders" && old_yuklagichlar.map((item)=>{ - return - })} + {carType === "front-loaders" && + old_yuklagichlar.map((item) => { + return ; + })} {/* Teleskopik yuklagichlar */} - {carType === "tele-loaders" && teleskop_yuklagichlar.map((item)=>{ - return - })} + {carType === "tele-loaders" && + teleskop_yuklagichlar.map((item) => { + return ; + })} {/* forkliftlar */} - {carType === "forklift-trucks" && forkliftlar.map((item)=>{ - return - })} + {carType === "forklift-trucks" && + forkliftlar.map((item) => { + return ; + })} {/* Paletli ekskavatorlar */} - {carType === "crawler-excavators" && paletli_eks.map((item)=>{ - return - })} + {carType === "crawler-excavators" && + paletli_eks.map((item) => { + return ; + })} {/* G'ildirakli ekskavatorlar */} - {carType === "wheel-excavators" && gildirakli_eks.map((item)=>{ - return - })} + {carType === "wheel-excavators" && + gildirakli_eks.map((item) => { + return ; + })} {/* Mini-ekskavatorlar */} - {carType === "mini-excavators" && mini_eks.map((item)=>{ - return - })} + {carType === "mini-excavators" && + mini_eks.map((item) => { + return ; + })} {/* ekskavator yuklagichlar */} - {carType === "excavator-loaders" && eks_yuklagichlar.map((item)=>{ - return - })} + {carType === "excavator-loaders" && + eks_yuklagichlar.map((item) => { + return ; + })} {/* avtogreyderlar */} - {carType === "avtograders" && avtogreyderlar.map((item)=>{ - return - })} + {carType === "avtograders" && + avtogreyderlar.map((item) => { + return ; + })} {/* Buldozerlar */} - {carType === "buldozers" && buldozerlar.map((item)=>{ - return - })} + {carType === "buldozers" && + buldozerlar.map((item) => { + return ; + })} {/* Katkalar */} - {carType === "katkas" && katkalar.map((item)=>{ - return - })} + {carType === "katkas" && + katkalar.map((item) => { + return ; + })} - {/* Kampressorlar */} - {carType === "compressors" && kompressorlar.map((item)=>{ - return - })} + {/* Evakuatorlar */} + {carType === "evakuator" && + evakuatorDemo.map((item) => { + return ; + })} + + {/* shalanda */} + {carType === "shalanda_traller" && + shalandaTraller.map((item) => { + return ; + })} + + {/* asfalt yotqizuvchi */} + {carType === "asfalt_frez" && + asfalt.map((item) => { + return ; + })} + + {/* asfalt ko'chiruvchi */} + {carType === "beton_nasos" && + betonNasoslar.map((item) => { + return ; + })} + + {/* manipulyator */} + {carType === "manipulyator" && + manipulyator.map((item) => { + return ; + })} + + {/* vodovoz */} + {carType === "vodovoz" && + vodovoz.map((item) => { + return ; + })} + + {/* assertizator */} + {carType === "assenizator" && + assenizator.map((item) => { + return ; + })}
); diff --git a/app/[lang]/page.tsx b/app/[lang]/page.tsx index 773a11f..9a8b11c 100644 --- a/app/[lang]/page.tsx +++ b/app/[lang]/page.tsx @@ -5,14 +5,13 @@ import Faq from "@/components/pageParts/faq"; import Partners from "@/components/pageParts/partners"; import Map from "@/components/pageParts/map"; import CustomSlider from "@/components/pageParts/newsSlider"; -import Footer from "@/components/nav_foot/footer"; import HeroSection from "@/components/pageParts/hero"; export default function Home() { return (
- -
+ +
@@ -22,7 +21,10 @@ export default function Home() {
- +
+ +
); } + diff --git a/assets/assenizator5.jpg b/assets/assenizator5.jpg new file mode 100644 index 0000000..e167092 Binary files /dev/null and b/assets/assenizator5.jpg differ diff --git a/assets/cranes/kran130.jpg b/assets/cranes/kran130.jpg new file mode 100644 index 0000000..df97402 Binary files /dev/null and b/assets/cranes/kran130.jpg differ diff --git a/assets/cranes/kran30.jpg b/assets/cranes/kran30.jpg new file mode 100644 index 0000000..ec46654 Binary files /dev/null and b/assets/cranes/kran30.jpg differ diff --git a/assets/cranes/kran50.jpg b/assets/cranes/kran50.jpg new file mode 100644 index 0000000..813d9a0 Binary files /dev/null and b/assets/cranes/kran50.jpg differ diff --git a/assets/cranes/kran75.jpg b/assets/cranes/kran75.jpg new file mode 100644 index 0000000..aece624 Binary files /dev/null and b/assets/cranes/kran75.jpg differ diff --git a/assets/cranes/manipulyator7.jpg b/assets/cranes/manipulyator7.jpg new file mode 100644 index 0000000..0757765 Binary files /dev/null and b/assets/cranes/manipulyator7.jpg differ diff --git a/assets/details/cranes/4-7.jfif b/assets/details/cranes/4-7.jfif deleted file mode 100644 index 7cb8903..0000000 Binary files a/assets/details/cranes/4-7.jfif and /dev/null differ diff --git a/assets/details/cranes/4-8.jfif b/assets/details/cranes/4-8.jfif deleted file mode 100644 index c86acc1..0000000 Binary files a/assets/details/cranes/4-8.jfif and /dev/null differ diff --git a/assets/details/cranes/5-3.jfif b/assets/details/cranes/5-3.jfif deleted file mode 100644 index 7772b53..0000000 Binary files a/assets/details/cranes/5-3.jfif and /dev/null differ diff --git a/assets/details/cranes/all_cranes.jpg b/assets/details/cranes/all_cranes.jpg new file mode 100644 index 0000000..b92de06 Binary files /dev/null and b/assets/details/cranes/all_cranes.jpg differ diff --git a/assets/details/cranes/avtolift28.jpg b/assets/details/cranes/avtolift28.jpg new file mode 100644 index 0000000..a7239c7 Binary files /dev/null and b/assets/details/cranes/avtolift28.jpg differ diff --git a/assets/details/cranes/avtolift53.jpg b/assets/details/cranes/avtolift53.jpg new file mode 100644 index 0000000..3fe008f Binary files /dev/null and b/assets/details/cranes/avtolift53.jpg differ diff --git a/assets/details/cranes/avtolift63.jpg b/assets/details/cranes/avtolift63.jpg new file mode 100644 index 0000000..3d680d4 Binary files /dev/null and b/assets/details/cranes/avtolift63.jpg differ diff --git a/assets/details/cranes/avtovishka28.jpg b/assets/details/cranes/avtovishka28.jpg new file mode 100644 index 0000000..3cec4ba Binary files /dev/null and b/assets/details/cranes/avtovishka28.jpg differ diff --git a/assets/details/cranes/avtovishka36.jpg b/assets/details/cranes/avtovishka36.jpg new file mode 100644 index 0000000..916b49d Binary files /dev/null and b/assets/details/cranes/avtovishka36.jpg differ diff --git a/assets/details/cranes/avtovishka45.jpg b/assets/details/cranes/avtovishka45.jpg new file mode 100644 index 0000000..c041371 Binary files /dev/null and b/assets/details/cranes/avtovishka45.jpg differ diff --git a/assets/details/cranes/avtovishka60.jpg b/assets/details/cranes/avtovishka60.jpg new file mode 100644 index 0000000..669e1a2 Binary files /dev/null and b/assets/details/cranes/avtovishka60.jpg differ diff --git a/assets/details/cranes/avtovishka75.jpg b/assets/details/cranes/avtovishka75.jpg new file mode 100644 index 0000000..f657389 Binary files /dev/null and b/assets/details/cranes/avtovishka75.jpg differ diff --git a/assets/details/excavators/1-3.jfif b/assets/details/excavators/1-3.jfif deleted file mode 100644 index 214cd93..0000000 Binary files a/assets/details/excavators/1-3.jfif and /dev/null differ diff --git a/assets/details/excavators/1-4.jfif b/assets/details/excavators/1-4.jfif deleted file mode 100644 index 369cd4b..0000000 Binary files a/assets/details/excavators/1-4.jfif and /dev/null differ diff --git a/assets/details/excavators/1-5.jfif b/assets/details/excavators/1-5.jfif deleted file mode 100644 index 9ec4d2a..0000000 Binary files a/assets/details/excavators/1-5.jfif and /dev/null differ diff --git a/assets/details/excavators/3-3.jfif b/assets/details/excavators/3-3.jfif deleted file mode 100644 index 49baaed..0000000 Binary files a/assets/details/excavators/3-3.jfif and /dev/null differ diff --git a/assets/details/excavators/3-4.jfif b/assets/details/excavators/3-4.jfif deleted file mode 100644 index 235e5a5..0000000 Binary files a/assets/details/excavators/3-4.jfif and /dev/null differ diff --git a/assets/details/excavators/4-4.jfif b/assets/details/excavators/4-4.jfif deleted file mode 100644 index 832244f..0000000 Binary files a/assets/details/excavators/4-4.jfif and /dev/null differ diff --git a/assets/details/excavators/excavator.jpg b/assets/details/excavators/excavator.jpg new file mode 100644 index 0000000..be60db0 Binary files /dev/null and b/assets/details/excavators/excavator.jpg differ diff --git a/assets/details/excavators/excavator_mini1.jpg b/assets/details/excavators/excavator_mini1.jpg new file mode 100644 index 0000000..6f2f90b Binary files /dev/null and b/assets/details/excavators/excavator_mini1.jpg differ diff --git a/assets/details/excavators/excavator_mini2.jpg b/assets/details/excavators/excavator_mini2.jpg new file mode 100644 index 0000000..1a94baa Binary files /dev/null and b/assets/details/excavators/excavator_mini2.jpg differ diff --git a/assets/details/loaders/avtogreyder.jpg b/assets/details/loaders/avtogreyder.jpg new file mode 100644 index 0000000..1cd009f Binary files /dev/null and b/assets/details/loaders/avtogreyder.jpg differ diff --git a/assets/details/loaders/teleskopik_bobkat.jpg b/assets/details/loaders/teleskopik_bobkat.jpg new file mode 100644 index 0000000..e3acafe Binary files /dev/null and b/assets/details/loaders/teleskopik_bobkat.jpg differ diff --git a/assets/details/loaders/teleskopik_jcb.jpg b/assets/details/loaders/teleskopik_jcb.jpg new file mode 100644 index 0000000..701592c Binary files /dev/null and b/assets/details/loaders/teleskopik_jcb.jpg differ diff --git a/assets/details/loaders/teleskopik_katta.jpg b/assets/details/loaders/teleskopik_katta.jpg new file mode 100644 index 0000000..773cf1c Binary files /dev/null and b/assets/details/loaders/teleskopik_katta.jpg differ diff --git a/assets/details/loaders/teleskopik_manitau.jpg b/assets/details/loaders/teleskopik_manitau.jpg new file mode 100644 index 0000000..169e1ce Binary files /dev/null and b/assets/details/loaders/teleskopik_manitau.jpg differ diff --git a/assets/details/old_yuklagich18kub.jpg b/assets/details/old_yuklagich18kub.jpg new file mode 100644 index 0000000..8ba3aaf Binary files /dev/null and b/assets/details/old_yuklagich18kub.jpg differ diff --git a/assets/details/old_yuklagich3.jpg b/assets/details/old_yuklagich3.jpg new file mode 100644 index 0000000..a9f53b3 Binary files /dev/null and b/assets/details/old_yuklagich3.jpg differ diff --git a/assets/details/old_yuklagich_mini1.jpg b/assets/details/old_yuklagich_mini1.jpg new file mode 100644 index 0000000..756eaae Binary files /dev/null and b/assets/details/old_yuklagich_mini1.jpg differ diff --git a/assets/details/old_yuklagich_mini2.jpg b/assets/details/old_yuklagich_mini2.jpg new file mode 100644 index 0000000..9fd937a Binary files /dev/null and b/assets/details/old_yuklagich_mini2.jpg differ diff --git a/assets/details/roaders/2-4.jfif b/assets/details/roaders/2-4.jfif deleted file mode 100644 index c2af96c..0000000 Binary files a/assets/details/roaders/2-4.jfif and /dev/null differ diff --git a/assets/details/roaders/3-3.jfif b/assets/details/roaders/3-3.jfif deleted file mode 100644 index 7cd5221..0000000 Binary files a/assets/details/roaders/3-3.jfif and /dev/null differ diff --git a/assets/details/roaders/3-4.jfif b/assets/details/roaders/3-4.jfif deleted file mode 100644 index 14a6b10..0000000 Binary files a/assets/details/roaders/3-4.jfif and /dev/null differ diff --git a/assets/details/roaders/4-2.jfif b/assets/details/roaders/4-2.jfif deleted file mode 100644 index 09e01c4..0000000 Binary files a/assets/details/roaders/4-2.jfif and /dev/null differ diff --git a/assets/details/roaders/4-4.jfif b/assets/details/roaders/4-4.jfif deleted file mode 100644 index 48151f6..0000000 Binary files a/assets/details/roaders/4-4.jfif and /dev/null differ diff --git a/assets/details/roaders/4-6.jfif b/assets/details/roaders/4-6.jfif deleted file mode 100644 index 420caec..0000000 Binary files a/assets/details/roaders/4-6.jfif and /dev/null differ diff --git a/assets/details/roaders/katok10.jpg b/assets/details/roaders/katok10.jpg new file mode 100644 index 0000000..9cf9e18 Binary files /dev/null and b/assets/details/roaders/katok10.jpg differ diff --git a/assets/details/roaders/katok20.jpg b/assets/details/roaders/katok20.jpg new file mode 100644 index 0000000..6a38fb5 Binary files /dev/null and b/assets/details/roaders/katok20.jpg differ diff --git a/assets/details/roaders/katok3.jpg b/assets/details/roaders/katok3.jpg new file mode 100644 index 0000000..9e7ec54 Binary files /dev/null and b/assets/details/roaders/katok3.jpg differ diff --git a/assets/details/roaders/katok4.jpg b/assets/details/roaders/katok4.jpg new file mode 100644 index 0000000..a04d9a7 Binary files /dev/null and b/assets/details/roaders/katok4.jpg differ diff --git a/assets/details/roaders/katok6.jpg b/assets/details/roaders/katok6.jpg new file mode 100644 index 0000000..ee65f6f Binary files /dev/null and b/assets/details/roaders/katok6.jpg differ diff --git a/assets/details/roaders/pnevka_katok16.jpg b/assets/details/roaders/pnevka_katok16.jpg new file mode 100644 index 0000000..392c057 Binary files /dev/null and b/assets/details/roaders/pnevka_katok16.jpg differ diff --git a/assets/details/roaders/pnevka_katok4.jpg b/assets/details/roaders/pnevka_katok4.jpg new file mode 100644 index 0000000..51e95a7 Binary files /dev/null and b/assets/details/roaders/pnevka_katok4.jpg differ diff --git a/assets/details/trucks/beton_nasos.jpg b/assets/details/trucks/beton_nasos.jpg new file mode 100644 index 0000000..1eb0fbb Binary files /dev/null and b/assets/details/trucks/beton_nasos.jpg differ diff --git a/assets/evakuator/evakuator_20_tonna.jpg b/assets/evakuator/evakuator_20_tonna.jpg new file mode 100644 index 0000000..a613832 Binary files /dev/null and b/assets/evakuator/evakuator_20_tonna.jpg differ diff --git a/assets/evakuator/evakuator_5_tonna.jpg b/assets/evakuator/evakuator_5_tonna.jpg new file mode 100644 index 0000000..525dcee Binary files /dev/null and b/assets/evakuator/evakuator_5_tonna.jpg differ diff --git a/assets/evakuator/evakuator_fura.jpg b/assets/evakuator/evakuator_fura.jpg new file mode 100644 index 0000000..a576e0d Binary files /dev/null and b/assets/evakuator/evakuator_fura.jpg differ diff --git a/assets/evakuator/shalanda.jpg b/assets/evakuator/shalanda.jpg new file mode 100644 index 0000000..0a038b7 Binary files /dev/null and b/assets/evakuator/shalanda.jpg differ diff --git a/assets/evakuator/traller.jpg b/assets/evakuator/traller.jpg new file mode 100644 index 0000000..c2b315c Binary files /dev/null and b/assets/evakuator/traller.jpg differ diff --git a/assets/index.ts b/assets/index.ts index b9d7334..829e619 100644 --- a/assets/index.ts +++ b/assets/index.ts @@ -75,12 +75,20 @@ export {default as Kranminora1} from './details/cranes/1-1.png'; export {default as Kranminora2} from './details/cranes/1-4.png'; export {default as Kranminora3} from './details/cranes/1-3.png'; export {default as Kranmexanik1} from './details/cranes/1-2.png'; +export {default as Avtolift28} from './details/cranes/avtolift28.jpg'; +export {default as Avtolift53} from './details/cranes/avtolift53.jpg'; +export {default as Avtolift63} from './details/cranes/avtolift63.jpg'; +export {default as Avtovishka28} from './details/cranes/avtovishka28.jpg'; +export {default as Avtovishka36} from './details/cranes/avtovishka36.jpg'; +export {default as Avtovishka45} from './details/cranes/avtovishka45.jpg'; +export {default as Avtovishka60} from './details/cranes/avtovishka60.jpg'; +export {default as Avtovishka75} from './details/cranes/avtovishka75.jpg'; // products avtokranlar images -export {default as Avtokran1} from './details/cranes/2-1.png'; -export {default as Avtokran2} from './details/cranes/2-2.png'; -export {default as Avtokran3} from './details/cranes/2-3.webp'; -export {default as Avtokran4} from './details/cranes/2-4.webp'; +export {default as Kran30} from './cranes/kran30.jpg'; +export {default as Kran50} from './cranes/kran50.jpg'; +export {default as Kran75} from './cranes/kran75.jpg'; +export {default as Kran130} from './cranes/kran130.jpg'; // products paletli kran images export {default as Palet1} from './details/cranes/3-1.png'; @@ -92,6 +100,7 @@ export {default as Minora1} from './details/cranes/4-1.png'; export {default as Minora2} from './details/cranes/4-3.png'; export {default as Minora3} from './details/cranes/4-5.jpg'; export {default as Minora4} from './details/cranes/4-6.jpg'; +export {default as All_cranes} from './details/cranes/all_cranes.jpg'; // products dizel kotargich images export {default as Dizel1} from './details/cranes/5-1.png'; @@ -111,9 +120,14 @@ export {default as Old4} from './details/loaders/1-4.png'; export {default as Old5} from './details/loaders/1-5.webp'; export {default as Old6} from './details/loaders/1-6.webp'; export {default as Old7} from './details/loaders/1-7.webp'; -export {default as Tel1} from './details/loaders/2-1.png'; -export {default as Tel2} from './details/loaders/2-2.jpg'; -export {default as Tel3} from './details/loaders/2-4.png'; +export {default as Old_yuklagich_biru8} from './details/old_yuklagich18kub.jpg'; +export {default as Old_yuklagich_3} from './details/old_yuklagich3.jpg'; +export {default as Old_yuklagich_mini1} from './details/old_yuklagich_mini1.jpg'; +export {default as Old_yuklagich_mini2} from './details/old_yuklagich_mini2.jpg'; +export {default as Tel1} from './details/loaders/teleskopik_manitau.jpg'; +export {default as Tel2} from './details/loaders/teleskopik_bobkat.jpg'; +export {default as Tel3} from './details/loaders/teleskopik_katta.jpg'; +export {default as Tel4} from './details/loaders/teleskopik_jcb.jpg' export {default as Fork1} from './details/loaders/3-1.png'; export {default as Fork2} from './details/loaders/3-2.jpeg'; export {default as Fork3} from './details/loaders/3-3.webp'; @@ -133,11 +147,11 @@ export {default as Digger} from './excavators/digger.png'; // products Paletli of ekskavator images export {default as Paletli1} from './details/excavators/1-1.png'; export {default as Paletli2} from './details/excavators/1-2.png'; -export {default as Balon1} from './details/excavators/2-1.png'; -export {default as Balon2} from './details/excavators/2-2.png'; +export {default as Balon1} from './details/excavators/excavator_mini1.jpg'; +export {default as Balon2} from './details/excavators/excavator_mini2.jpg'; export {default as Mini1} from './details/excavators/3-1.png'; export {default as Mini2} from './details/excavators/3-2.png'; -export {default as Digger1} from './details/excavators/4-1.png'; +export {default as Digger1} from './details/excavators/excavator.jpg'; export {default as Digger2} from './details/excavators/4-2.png'; export {default as Digger3} from './details/excavators/4-3.png'; @@ -145,20 +159,46 @@ export {default as Digger3} from './details/excavators/4-3.png'; export {default as Grayder} from './roders/avtogreyder.png'; export {default as Buldozer} from './roders/buldozer.png'; export {default as Kat} from './roders/kat.png'; -export {default as Kompressor} from './roders/kompressor.png'; +export {default as Evakuator} from './evakuator/evakuator_fura.jpg'; // avtograyder , buldozer , katka , kampressor -export {default as Grayder1} from './details/roaders/1-1.png'; +export {default as Grayder1} from './details/loaders/avtogreyder.jpg'; export {default as Grayder2} from './details/roaders/1-2.png'; export {default as Grayder3} from './details/roaders/1-3.png'; export {default as Buldozer1} from './details/roaders/2-1.png'; export {default as Buldozer2} from './details/roaders/2-2.png'; export {default as Buldozer3} from './details/roaders/2-3.png'; -export {default as Katka1} from './details/roaders/3-1.png'; -export {default as Katka2} from './details/roaders/3-2.png'; -export {default as Kampressor1} from './details/roaders/4-1.png'; -export {default as Kampressor2} from './details/roaders/4-3.png'; -export {default as Kampressor3} from './details/roaders/4-5.png'; +export {default as Katok3} from './details/roaders/katok3.jpg'; +export {default as Katok4} from './details/roaders/katok4.jpg'; +export {default as Katok6} from './details/roaders/katok6.jpg'; +export {default as Katok10} from './details/roaders/katok10.jpg'; +export {default as Katok20} from './details/roaders/katok20.jpg'; +export {default as Pnevka_Katok4} from './details/roaders/pnevka_katok4.jpg'; +export {default as Pnevka_Katok16} from './details/roaders/pnevka_katok16.jpg'; +export {default as Evakuator5} from './evakuator/evakuator_5_tonna.jpg'; +export {default as Evakuator20} from './evakuator/evakuator_20_tonna.jpg'; +export {default as EvakuatorGruzavoy} from './evakuator/evakuator_fura.jpg'; + +// shalanda +export {default as Shalanda} from './evakuator/shalanda.jpg'; +export {default as Traller} from './evakuator/traller.jpg'; + +// asfalt +export { default as Aspal_800} from './roders/aspal800.jpg'; +export {default as Aspal_1800} from './roders/aspal1800.jpg'; +export {default as Aspal_k} from './roders/aspal_k.jpg' + +// beton nasos +export {default as Beton_nasos} from './details/trucks/beton_nasos.jpg' + +// vodovoz +export {default as Vodovoz} from './vodavoz6.jpg'; + +// assenizator +export {default as Assenizator} from './assenizator5.jpg'; + +// manipulyator +export {default as Manipulyator} from './cranes/manipulyator7.jpg'; // avto brands export {default as Gehl} from './brands/gehl.png' diff --git a/assets/product/product-1.jpg b/assets/product/product-1.jpg deleted file mode 100644 index 11603e1..0000000 Binary files a/assets/product/product-1.jpg and /dev/null differ diff --git a/assets/product/product-2.jpg b/assets/product/product-2.jpg deleted file mode 100644 index 11603e1..0000000 Binary files a/assets/product/product-2.jpg and /dev/null differ diff --git a/assets/product/product-3.jpg b/assets/product/product-3.jpg deleted file mode 100644 index 11603e1..0000000 Binary files a/assets/product/product-3.jpg and /dev/null differ diff --git a/assets/product/product-4.jpg b/assets/product/product-4.jpg deleted file mode 100644 index 11603e1..0000000 Binary files a/assets/product/product-4.jpg and /dev/null differ diff --git a/assets/roders/aspal1800.jpg b/assets/roders/aspal1800.jpg new file mode 100644 index 0000000..abee0ec Binary files /dev/null and b/assets/roders/aspal1800.jpg differ diff --git a/assets/roders/aspal800.jpg b/assets/roders/aspal800.jpg new file mode 100644 index 0000000..3dc37f6 Binary files /dev/null and b/assets/roders/aspal800.jpg differ diff --git a/assets/roders/aspal_k.jpg b/assets/roders/aspal_k.jpg new file mode 100644 index 0000000..a9e73e6 Binary files /dev/null and b/assets/roders/aspal_k.jpg differ diff --git a/assets/vodavoz6.jpg b/assets/vodavoz6.jpg new file mode 100644 index 0000000..6fc5aed Binary files /dev/null and b/assets/vodavoz6.jpg differ diff --git a/components/cards/innerProductcard.tsx b/components/cards/innerProductcard.tsx index 3037519..641ead0 100644 --- a/components/cards/innerProductcard.tsx +++ b/components/cards/innerProductcard.tsx @@ -24,12 +24,12 @@ export default function InnerProductcard({ data }: { data: innerCardTypes }) { boxShadow: "0px 0px 15px rgba(0,0,0,0.1)", }} whileTap={{ scale: 0.97 }} - className="rounded-lg overflow-hidden bg-white transition-all" + className="h-[420px] rounded-lg overflow-hidden bg-white transition-all" > setDetail(data)} - className="flex flex-col items-center justify-between rounded-lg hover:cursor-pointer" + className="h-full flex flex-col items-center justify-between rounded-lg hover:cursor-pointer" > {/* Rasm qismi */}
diff --git a/components/cards/productCard.tsx b/components/cards/productCard.tsx index 6bc70f8..1181735 100644 --- a/components/cards/productCard.tsx +++ b/components/cards/productCard.tsx @@ -17,34 +17,37 @@ export default function ProductCard({ data }: { data: ProductTypes }) { viewport={{ once: true, amount: 0.2 }} transition={{ duration: 0.3, ease: "easeOut" }} whileHover={{ - scale: 1.05, - boxShadow: "0px 0px 15px rgba(0,0,0,0.1)", + boxShadow: "0px 0px 15px rgba(0,0,0,0.8)", }} whileTap={{ scale: 0.98 }} + className="rounded-xl border-2 border-primary h-[430px]" > {/* Yuqori qism - rasm */}
{data.truck_name}
{/* Pastki qism - matn */}
-
+
-
+
+
+ +
diff --git a/components/lib_components/google.map.tsx b/components/lib_components/google.map.tsx index 92215b1..553b589 100644 --- a/components/lib_components/google.map.tsx +++ b/components/lib_components/google.map.tsx @@ -2,64 +2,115 @@ import React, { useEffect, useRef } from "react"; -interface YandexMapProps { +interface GoogleMapProps { lat?: number; lng?: number; zoom?: number; } -export default function YandexMap({ +export default function GoogleMap({ lat = 41.263731, lng = 69.219434, - zoom = 12, -}: YandexMapProps) { - const mapRef = useRef(null); + zoom = 17, +}: GoogleMapProps) { + const mapRef = useRef(null); useEffect(() => { - // Yandex Map scriptini dinamik yuklash - if (!window.ymaps) { + let map: google.maps.Map | null = null; + let marker: google.maps.Marker | null = null; + + // 🔹 Google script yuklash funksiyasi + function loadGoogleMapsScript(callback: () => void) { + if (typeof window.google === "object" && window.google.maps) { + callback(); + return; + } + + const existingScript = document.getElementById("googleMaps"); + if (existingScript) { + existingScript.addEventListener("load", callback); + return; + } + const script = document.createElement("script"); - script.src = "https://api-maps.yandex.ru/2.1/?lang=ru_RU&apikey=5169ae9d-529a-43f8-9cb1-30e1a3360dac"; + script.id = "googleMaps"; + script.src = `https://maps.googleapis.com/maps/api/js?key=AIzaSyCiq6iQrcZX6jJMkK_8eT56IeeZDY0LUYo`; script.async = true; - script.onload = () => initMap(); + script.defer = true; + script.onload = callback; document.body.appendChild(script); - } else { - initMap(); } + // 🔹 Google Mapni ishga tushirish function initMap() { - if (!mapRef.current || !window.ymaps) return; + if (!mapRef.current || !window.google) return; - window.ymaps.ready(() => { - const map = new window.ymaps.Map(mapRef.current!, { - center: [lat, lng], - zoom, - controls: ["zoomControl", "typeSelector", "fullscreenControl"], - }); + map = new window.google.maps.Map(mapRef.current, { + center: { lat, lng }, + zoom, + mapTypeControl: false, + streetViewControl: false, + fullscreenControl: true, + }); - const placemark = new window.ymaps.Placemark( - [lat, lng], - { - balloonContent: ` -
- Bizning joylashuv:
- Toshkent sh., Mustaqillik maydoni
- Yandex xaritada ochish -
- `, - }, - { - iconColor: "#ff0000", - draggable: false, - } - ); + // 🔸 Custom marker (svg yoki png) + marker = new window.google.maps.Marker({ + position: { lat, lng }, + map, + title: "Bizning joylashuv", + icon: { + url: "/custom-marker.svg", // 📍 custom icon + scaledSize: new window.google.maps.Size(45, 45), + anchor: new window.google.maps.Point(22, 45), + }, + }); - map.geoObjects.add(placemark); + // 🔸 Marker click eventi + marker.addListener("click", () => { + console.log("Marker clicked!"); + new window.google.maps.InfoWindow({ + content: ` +
+ Bizning joylashuv:
+ Toshkent sh., Mustaqillik maydoni
+ Google xaritada ochish +
+ `, + }).open(map!, marker!); + }); + + // 🔸 Xarita ustida click qilinsa + map.addListener("click", (event: google.maps.MapMouseEvent) => { + if (!event.latLng) return; + const coords = event.latLng.toJSON(); + console.log("Map clicked at:", coords); + + // Markazni o‘zgartirish + map!.setCenter(coords); + + // Zoomni saqlab qolish (setZoom ishlatish mumkin) + const currentZoom = map!.getZoom() ?? 17; + map!.setZoom(currentZoom); + + // Marker joyini o‘zgartirish + marker!.setPosition(coords); }); } + + // 🔹 Scriptni yuklash + loadGoogleMapsScript(initMap); + + return () => { + // tozalash + if (map) map = null; + if (marker) marker = null; + }; }, [lat, lng, zoom]); return ( -
+
); } diff --git a/components/nav_foot/header.tsx b/components/nav_foot/header.tsx index 817758d..4eb3503 100644 --- a/components/nav_foot/header.tsx +++ b/components/nav_foot/header.tsx @@ -1,4 +1,5 @@ import { FaLocationDot } from "react-icons/fa6"; +import Text from "../lib_components/text"; export default function Header() { return ( @@ -7,12 +8,21 @@ export default function Header() { className="bg-primary py-3 flex items-center sm:justify-around justify-center px-4" >
- -
+
Uzbekistan , Tashkent - + - + +
+ +
+
+ +
+
+ +
+

24/7

@@ -24,7 +34,6 @@ export default function Header() { +998 33 252 00 00
-
); diff --git a/components/pageParts/hero.tsx b/components/pageParts/hero.tsx index ba27f91..780178a 100644 --- a/components/pageParts/hero.tsx +++ b/components/pageParts/hero.tsx @@ -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 (
- SpetsTexnika - + /> */} {/* Asosiy kontent */} - {/*
-
- SpetsTexnika -
+ {/*
+ SpetsTexnika +
*/} - Chap tomondagi matn +
+ {/* Chap tomondagi matn */} -

- Ishonchli SpesTexnika — - sizning loyihangiz uchun eng yaxshi tanlov! -

+
+ +
-

- Biz eng so‘nggi texnikalar, maxsus transportlar va qurilish - uskunalarini qulay narxda taqdim etamiz. -

+
+ +
- O‘ng tomondagi texnika rasmi + {/* O‘ng tomondagi texnika rasmi */} -
*/} +
{/* Pastdagi to‘lqinli animatsiya (dekor) */} {/* </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> diff --git a/components/pageParts/products.tsx b/components/pageParts/products.tsx index 29cd961..d2abd1f 100644 --- a/components/pageParts/products.tsx +++ b/components/pageParts/products.tsx @@ -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"> diff --git a/data/index.ts b/data/index.ts index 791e3f7..e41fee3 100644 --- a/data/index.ts +++ b/data/index.ts @@ -1,61 +1,63 @@ import { - Avtokran1, - Avtokran2, - Avtokran4, + All_cranes, + Aspal_1800, + Aspal_800, + Aspal_k, + Assenizator, AvtokranSlider, + Avtolift28, + Avtolift53, + Avtovishka28, + Avtovishka36, + Avtovishka45, + Avtovishka60, + Avtovishka75, Balon, Balon1, Balon2, + Beton_nasos, Buldozer, Buldozer1, Buldozer2, - Chakman1, Chakman2, Digger, Digger1, Digger2, - Dizel1, - Dizel2, - Dizel3, ekskavatorSlider, + Evakuator, + Evakuator20, + Evakuator5, + EvakuatorGruzavoy, Fork1, Fork2, Fork3, Forkliftlar, - Gazel, - Gazel1, Gazel2, - Gazel3, Gazel5, - Gazel6, Grayder, Grayder1, Howo1, - Howo2, Howo2_1, - Howo2_2, - Howo2_3, - Howo3, Howo3_1, - Isuzu1, Isuzu2, Kaimei1, - Kaimei2, - Kampressor1, - Kampressor2, - Kampressor3, Kat, - Katka1, - Katka2, - Kompressor, + Katok10, + Katok20, + Katok3, + Katok4, + Katok6, kompressorSlider, Kran1, + Kran130, Kran2, - Kran3, + Kran30, Kran4, - Kran5, + Kran50, + Kran75, Kranmexanik1, Kranminora1, + Manipulyator, Mikser, Mini, Mini1, @@ -66,22 +68,29 @@ import { Old1, Old2, Old3, + Old_yuklagich_3, + Old_yuklagich_biru8, + Old_yuklagich_mini1, + Old_yuklagich_mini2, oldYuklagich, - Palet1, - Palet3, Paletli, Paletli1, Paletli2, + Pnevka_Katok16, + Pnevka_Katok4, Samasval, + Shalanda, Tel1, Tel2, + Tel3, + Tel4, Teleskop, + Traller, Treyler, Treyler1, - Treyler10, Treyler2, - Treyler3, Treyler6, + Vodovoz, } from "@/assets"; import { innerCardTypes, ProductTypes } from "@/types"; @@ -110,10 +119,17 @@ export const trucks: ProductTypes[] = [ }, { id: 4, - truck_name: "gazels", + truck_name: "shalanda_traller", desc: "agreement", - path: "gazels", - image: Gazel, + path: "shalanda_traller", + image: Traller, + }, + { + id: 5, + truck_name: "beton_nasos", + desc: "agreement", + path: "beton_nasos", + image: Beton_nasos, }, ]; @@ -137,21 +153,14 @@ export const cranes: ProductTypes[] = [ truck_name: "tower-cranes", desc: "agreement", path: "tower-cranes", - image: Kran4, + image: All_cranes, }, { id: 4, - truck_name: "lifters", + truck_name: "manipulyator", desc: "agreement", - path: "lifters", - image: Kran3, - }, - { - id: 5, - truck_name: "crawler-cranes", - desc: "agreement", - path: "crawler-cranes", - image: Kran5, + path: "manipulyator", + image: Manipulyator, }, ]; @@ -216,7 +225,7 @@ export const road_repairs: ProductTypes[] = [ truck_name: "avtograders", desc: "agreement", path: "avtograders", - image: Grayder, + image: Grayder1, }, { id: 2, @@ -234,10 +243,31 @@ export const road_repairs: ProductTypes[] = [ }, { id: 4, - truck_name: "compressors", + truck_name: "evakuator", desc: "agreement", - path: "compressors", - image: Kompressor, + path: "evakuator", + image: Evakuator, + }, + { + id: 5, + truck_name: "asfalt_yotqizuvchi", + desc: "agreement", + path: "asfalt_frez", + image: Aspal_800, + }, + { + id: 6, + truck_name: "vodovoz", + desc: "agreement", + path: "vodovoz", + image: Vodovoz, + }, + { + id: 7, + truck_name: "assenizator", + desc: "agreement", + path: "assenizator", + image: Assenizator, }, ]; @@ -301,6 +331,25 @@ export const cement_trucks: innerCardTypes[] = [ enginePower_hp: "360-400", // Dvigatel quvvati (ot kuchi) — diapazon sifatida transmission: "Mexanik/Robot", // O'tkazmalar qutisi }, + { + id: 4, + image: Beton_nasos, + name: "Beton nasos 37m (Putzmeister M37)", + min_order_time: 3, + price: 950000, + path: "", + weight_kg: 26000, // 26 tonna + maxLength_m: 12, + maxHeight_m: 4, + fuelType: "Dizel", + enginePower_hp: "280-320", + transmission: "Avtomatik", + pumpLength_m: 37, // 37 metrli quvur + pumpCapacity_m3h: 120, // 120 m³/soat quvvat + tankVolume_m3: 0.5, // Yog’ tizimi uchun + maxSpeed_kmh: 90, + intercooler: "Bor", + }, ]; export const dumb_trucks: innerCardTypes[] = [ @@ -349,6 +398,36 @@ export const dumb_trucks: innerCardTypes[] = [ enginePower_hp: "360-400", // Dvigatel quvvati (ot kuchi) — diapazon sifatida transmission: "Mexanik", // O'tkazmalar qutisi }, + { + id: 4, + image: Gazel2, + name: "Gazel mini", + min_order_time: 2, + price: 260000, + path: "", + maxLength_m: 6, // Maksimum uzunligi (metr) + capacity_tons: 1.6, // Yuk ko'tarish qobiliyati (tonna) + fuelType: "Benzin/Dizel/Gaz", // Yoqilg'i turi + maxSpeed_kmh: 130, // Maksimum tezligi (km/soat) + intercooler: "Bor", // Interkuler (Bor/Yoq) + enginePower_hp: "120-150", // Dvigatel quvvati (ot kuchi) — diapazon sifatida + transmission: "Mexanik", // O'tkazmalar qutisi + }, + { + id: 5, + image: Gazel5, + name: "Gazel 4x2", + min_order_time: 2, + price: 280000, + path: "", + maxLength_m: 6, // Maksimum uzunligi (metr) + capacity_tons: 1.6, // Yuk ko'tarish qobiliyati (tonna) + fuelType: "Benzin/Dizel/Gaz", // Yoqilg'i turi + maxSpeed_kmh: 130, // Maksimum tezligi (km/soat) + intercooler: "Bor", // Interkuler (Bor/Yoq) + enginePower_hp: "120-150", // Dvigatel quvvati (ot kuchi) — diapazon sifatida + transmission: "Mexanik", // O'tkazmalar qutisi + }, ]; export const trailers: innerCardTypes[] = [ @@ -399,36 +478,25 @@ export const trailers: innerCardTypes[] = [ }, ]; -export const gazels: innerCardTypes[] = [ +export const betonNasoslar: innerCardTypes[] = [ { id: 1, - image: Gazel2, - name: "Gazel mini", - min_order_time: 2, - price: 260000, + image: Beton_nasos, + name: "Beton nasos 37m (Putzmeister M37)", + min_order_time: 3, + price: 950000, path: "", - maxLength_m: 6, // Maksimum uzunligi (metr) - capacity_tons: 1.6, // Yuk ko'tarish qobiliyati (tonna) - fuelType: "Benzin/Dizel/Gaz", // Yoqilg'i turi - maxSpeed_kmh: 130, // Maksimum tezligi (km/soat) - intercooler: "Bor", // Interkuler (Bor/Yoq) - enginePower_hp: "120-150", // Dvigatel quvvati (ot kuchi) — diapazon sifatida - transmission: "Mexanik", // O'tkazmalar qutisi - }, - { - id: 2, - image: Gazel5, - name: "Gazel 4x2", - min_order_time: 2, - price: 280000, - path: "", - maxLength_m: 6, // Maksimum uzunligi (metr) - capacity_tons: 1.6, // Yuk ko'tarish qobiliyati (tonna) - fuelType: "Benzin/Dizel/Gaz", // Yoqilg'i turi - maxSpeed_kmh: 130, // Maksimum tezligi (km/soat) - intercooler: "Bor", // Interkuler (Bor/Yoq) - enginePower_hp: "120-150", // Dvigatel quvvati (ot kuchi) — diapazon sifatida - transmission: "Mexanik", // O'tkazmalar qutisi + weight_kg: 26000, // 26 tonna + maxLength_m: 12, + maxHeight_m: 4, + fuelType: "Dizel", + enginePower_hp: "280-320", + transmission: "Avtomatik", + pumpLength_m: 37, // 37 metrli quvur + pumpCapacity_m3h: 120, // 120 m³/soat quvvat + tankVolume_m3: 0.5, // Yog’ tizimi uchun + maxSpeed_kmh: 90, + intercooler: "Bor", }, ]; @@ -436,8 +504,98 @@ export const gazels: innerCardTypes[] = [ export const avtominora: innerCardTypes[] = [ { id: 1, - image: Kranminora1, - name: "Avtominora Kran", + image: Avtolift28, + name: "Avtolift", + min_order_time: 5, + price: 600000, + path: "", + weight_kg: 12000, + maxHeight_m: 28, + capacity_kg: 500, + fuelType: "Dizel", + maxSpeed_kmh: 70, + enginePower_hp: "200-400", + transmission: "Mexanik/Avtomatik", + }, + { + id: 2, + image: Avtolift53, + name: "Avtolift", + min_order_time: 5, + price: 600000, + path: "", + weight_kg: 12000, + maxHeight_m: 53, + capacity_kg: 500, + fuelType: "Dizel", + maxSpeed_kmh: 70, + enginePower_hp: "200-400", + transmission: "Mexanik/Avtomatik", + }, + { + id: 3, + image: Avtolift53, + name: "Avtolift", + min_order_time: 5, + price: 600000, + path: "", + weight_kg: 12000, + maxHeight_m: 63, + capacity_kg: 500, + fuelType: "Dizel", + maxSpeed_kmh: 70, + enginePower_hp: "200-400", + transmission: "Mexanik/Avtomatik", + }, + { + id: 4, + image: Avtovishka28, + name: "Avtovishka", + min_order_time: 5, + price: 600000, + path: "", + weight_kg: 12000, + maxHeight_m: 28, + capacity_kg: 500, + fuelType: "Dizel", + maxSpeed_kmh: 70, + enginePower_hp: "200-400", + transmission: "Mexanik/Avtomatik", + }, + { + id: 4, + image: Avtovishka36, + name: "Avtovishka", + min_order_time: 5, + price: 600000, + path: "", + weight_kg: 12000, + maxHeight_m: 36, + capacity_kg: 500, + fuelType: "Dizel", + maxSpeed_kmh: 70, + enginePower_hp: "200-400", + transmission: "Mexanik/Avtomatik", + }, + { + id: 5, + image: Avtovishka45, + name: "Avtovishka", + min_order_time: 5, + price: 600000, + path: "", + weight_kg: 12000, + maxHeight_m: 45, + capacity_kg: 500, + fuelType: "Dizel", + maxSpeed_kmh: 70, + enginePower_hp: "200-400", + transmission: "Mexanik/Avtomatik", + }, + { + id: 6, + image: Avtovishka60, + name: "Avtovishka", min_order_time: 5, price: 600000, path: "", @@ -450,18 +608,18 @@ export const avtominora: innerCardTypes[] = [ transmission: "Mexanik/Avtomatik", }, { - id: 2, - image: Kranmexanik1, - name: "Avtokran Zoomlion", + id: 7, + image: Avtovishka75, + name: "Avtovishka", min_order_time: 5, - price: 620000, + price: 600000, path: "", weight_kg: 12000, - maxHeight_m: 60, + maxHeight_m: 75, capacity_kg: 500, fuelType: "Dizel", maxSpeed_kmh: 70, - enginePower_hp: "200", + enginePower_hp: "200-400", transmission: "Mexanik/Avtomatik", }, ]; @@ -469,13 +627,13 @@ export const avtominora: innerCardTypes[] = [ export const avtokran: innerCardTypes[] = [ { id: 1, - image: Avtokran1, + image: Kran30, name: "Avtokran", min_order_time: 5, price: 600000, path: "", maxHeight_m: 60, - capacity_tons: 30, + capacity_tons: 30000, fuelType: "Dizel", maxSpeed_kmh: 70, enginePower_hp: "200-300", @@ -483,13 +641,41 @@ export const avtokran: innerCardTypes[] = [ }, { id: 2, - image: Avtokran4, + image: Kran50, name: "Avtokran", min_order_time: 5, price: 620000, path: "", maxHeight_m: 60, - capacity_tons: 120, + capacity_tons: 50000, + fuelType: "Dizel", + maxSpeed_kmh: 70, + enginePower_hp: "200-400", + transmission: "Mexanik/Avtomatik", + }, + { + id: 3, + image: Kran75, + name: "Avtokran", + min_order_time: 5, + price: 620000, + path: "", + maxHeight_m: 60, + capacity_tons: 75000, + fuelType: "Dizel", + maxSpeed_kmh: 70, + enginePower_hp: "200-400", + transmission: "Mexanik/Avtomatik", + }, + { + id: 4, + image: Kran130, + name: "Avtokran", + min_order_time: 5, + price: 620000, + path: "", + maxHeight_m: 60, + capacity_tons: 130000, fuelType: "Dizel", maxSpeed_kmh: 70, enginePower_hp: "200-400", @@ -500,84 +686,17 @@ export const avtokran: innerCardTypes[] = [ export const minora: innerCardTypes[] = [ { id: 1, - image: Minora1, + image: All_cranes, name: "Avtominora Kran", min_order_time: 5, price: 600000, path: "", - maxHeight_m: 300, - capacity_tons: 20, - bom: 20, - enginePower_hp: "300", - transmission: "Mexanik/Avtomatik", - }, - { - id: 2, - image: Minora4, - name: "Avtominora Kran", - min_order_time: 5, - price: 620000, - path: "", - maxHeight_m: 300, - capacity_tons: 20, - bom: 80, - enginePower_hp: "300", - transmission: "Mexanik/Avtomatik", - }, -]; - -export const dizel: innerCardTypes[] = [ - { - id: 1, - image: Dizel2, - name: "Dizel Ko'targichlar", - min_order_time: 5, - price: 600000, - path: "", + weight_kg: 8000 - 10000 - 12000 - 16000, + maxHeight_m: 60 - 65 - 70 - 75, capacity_kg: 500, - enginePower_hp: "200", - transmission: "Mexanik/Avtomatik", - }, - { - id: 2, - image: Dizel3, - name: "Dizel Ko'targichlar", - min_order_time: 5, - price: 620000, - path: "", - capacity_kg: 500, - enginePower_hp: "200", - transmission: "Mexanik/Avtomatik", - }, -]; - -export const paletli_kranlar: innerCardTypes[] = [ - { - id: 1, - image: Palet1, - name: "Paletli kran", - min_order_time: 5, - price: 600000, - path: "", - maxHeight_m: 60, - capacity_tons: 45, fuelType: "Dizel", - maxSpeed_kmh: 20, - enginePower_hp: "300", - transmission: "Mexanik/Avtomatik", - }, - { - id: 2, - image: Palet3, - name: "Paletli kran", - min_order_time: 5, - price: 620000, - path: "", - maxHeight_m: 60, - capacity_tons: 50, - fuelType: "Dizel", - maxSpeed_kmh: 20, - enginePower_hp: "300", + maxSpeed_kmh: 70, + enginePower_hp: "200-400", transmission: "Mexanik/Avtomatik", }, ]; @@ -586,13 +705,13 @@ export const paletli_kranlar: innerCardTypes[] = [ export const old_yuklagichlar: innerCardTypes[] = [ { id: 1, - image: Old1, + image: Old_yuklagich_biru8, name: "Old Yuklagich GEHL", min_order_time: 3, price: 350000, path: "", - maxLength_m: 7, // Maksimum uzunligi (metr) - capacity_tons: 10, // Yuk ko'tarish qobiliyati (tonna) + maxLength_m: 6, // Maksimum uzunligi (metr) + capacity_tons: 1800, // Yuk ko'tarish qobiliyati (tonna) fuelType: "Dizel/Gaz", // Yoqilg'i turi maxSpeed_kmh: 130, // Maksimum tezligi (km/soat) intercooler: "Bor", // Interkuler (Bor/Yoq) @@ -601,13 +720,13 @@ export const old_yuklagichlar: innerCardTypes[] = [ }, { id: 2, - image: Old2, + image: Old_yuklagich_3, name: "Old Yuklagich Hyundai", min_order_time: 3, price: 365000, path: "", - maxLength_m: 6, // Maksimum uzunligi (metr) - capacity_tons: 5, // Yuk ko'tarish qobiliyati (tonna) + maxLength_m: 7, // Maksimum uzunligi (metr) + capacity_tons: 3000, // Yuk ko'tarish qobiliyati (tonna) fuelType: "Dizel/Gaz", // Yoqilg'i turi maxSpeed_kmh: 130, // Maksimum tezligi (km/soat) intercooler: "Bor", // Interkuler (Bor/Yoq) @@ -616,13 +735,28 @@ export const old_yuklagichlar: innerCardTypes[] = [ }, { id: 3, - image: Old3, - name: "Old Yuklagich Lonking", + image: Old_yuklagich_mini1, + name: "Old Yuklagich", min_order_time: 3, price: 370000, path: "", maxLength_m: 7, // Maksimum uzunligi (metr) - capacity_tons: 10, // Yuk ko'tarish qobiliyati (tonna) + capacity_tons: 500, // Yuk ko'tarish qobiliyati (tonna) + fuelType: "Dizel/Gaz", // Yoqilg'i turi + maxSpeed_kmh: 130, // Maksimum tezligi (km/soat) + intercooler: "Bor", // Interkuler (Bor/Yoq) + enginePower_hp: "360-400", // Dvigatel quvvati (ot kuchi) — diapazon sifatida + transmission: "Mexanik/Robot", // O'tkazmalar qutisi + }, + { + id: 4, + image: Old_yuklagich_mini2, + name: "Old Yuklagich", + min_order_time: 3, + price: 370000, + path: "", + maxLength_m: 7, // Maksimum uzunligi (metr) + capacity_tons: 500, // Yuk ko'tarish qobiliyati (tonna) fuelType: "Dizel/Gaz", // Yoqilg'i turi maxSpeed_kmh: 130, // Maksimum tezligi (km/soat) intercooler: "Bor", // Interkuler (Bor/Yoq) @@ -640,7 +774,7 @@ export const teleskop_yuklagichlar: innerCardTypes[] = [ price: 400000, path: "", maxLength_m: 7, // Maksimum uzunligi (metr) - capacity_tons: 1.5, // Yuk ko'tarish qobiliyati (tonna) + capacity_tons: 1, // Yuk ko'tarish qobiliyati (tonna) fuelType: "Dizel", // Yoqilg'i turi maxSpeed_kmh: 50, // Maksimum tezligi (km/soat) intercooler: "Bor", // Interkuler (Bor/Yoq) @@ -650,6 +784,21 @@ export const teleskop_yuklagichlar: innerCardTypes[] = [ { id: 2, image: Tel2, + name: "Teleskopik Yuklagich Bobkat", + min_order_time: 3, + price: 420000, + path: "", + maxLength_m: 7, // Maksimum uzunligi (metr) + capacity_tons: 0.5, // Yuk ko'tarish qobiliyati (tonna) + fuelType: "Dizel", // Yoqilg'i turi + maxSpeed_kmh: 50, // Maksimum tezligi (km/soat) + intercooler: "Bor", // Interkuler (Bor/Yoq) + enginePower_hp: "60-150", // Dvigatel quvvati (ot kuchi) — diapazon sifatida + transmission: "Mexanik", // O'tkazmalar qutisi + }, + { + id: 3, + image: Tel3, name: "Teleskopik Yuklagich XCMG", min_order_time: 3, price: 420000, @@ -662,6 +811,21 @@ export const teleskop_yuklagichlar: innerCardTypes[] = [ enginePower_hp: "60-150", // Dvigatel quvvati (ot kuchi) — diapazon sifatida transmission: "Mexanik", // O'tkazmalar qutisi }, + { + id: 3, + image: Tel4, + name: "Teleskopik Yuklagich JCB", + min_order_time: 3, + price: 420000, + path: "", + maxLength_m: 7, // Maksimum uzunligi (metr) + capacity_tons: 1.5, // Yuk ko'tarish qobiliyati (tonna) + fuelType: "Dizel", // Yoqilg'i turi + maxSpeed_kmh: 50, // Maksimum tezligi (km/soat) + intercooler: "Bor", // Interkuler (Bor/Yoq) + enginePower_hp: "60-150", // Dvigatel quvvati (ot kuchi) — diapazon sifatida + transmission: "Mexanik", // O'tkazmalar qutisi + }, ]; export const forkliftlar: innerCardTypes[] = [ @@ -857,12 +1021,12 @@ export const buldozerlar: innerCardTypes[] = [ price: 520000, path: "", maxLength_m: 20, // Maksimum uzunligi (metr) - weight_kg:70000, - tankVolume_m3:300-600, + weight_kg: 70000, + tankVolume_m3: 300 - 600, capacity_tons: 1.6, // Yuk ko'tarish qobiliyati (tonna) fuelType: "Dizel", // Yoqilg'i turi maxSpeed_kmh: 12, // Maksimum tezligi (km/soat) - pichoq:3-5, + pichoq: 3 - 5, enginePower_hp: "200-700", // Dvigatel quvvati (ot kuchi) — diapazon sifatida transmission: "Mexanik", // O'tkazmalar qutisi }, @@ -874,12 +1038,12 @@ export const buldozerlar: innerCardTypes[] = [ price: 540000, path: "", maxLength_m: 20, // Maksimum uzunligi (metr) - weight_kg:70000, - tankVolume_m3:300-600, + weight_kg: 70000, + tankVolume_m3: 300 - 600, capacity_tons: 1.6, // Yuk ko'tarish qobiliyati (tonna) fuelType: "Dizel", // Yoqilg'i turi maxSpeed_kmh: 12, // Maksimum tezligi (km/soat) - pichoq:3-5, + pichoq: 3 - 5, enginePower_hp: "200-700", // Dvigatel quvvati (ot kuchi) — diapazon sifatida transmission: "Mexanik", // O'tkazmalar qutisi }, @@ -888,80 +1052,339 @@ export const buldozerlar: innerCardTypes[] = [ export const katkalar: innerCardTypes[] = [ { id: 1, - image: Katka1, + image: Katok3, name: "Katka JCB", min_order_time: 4, price: 490000, path: "", - weight_kg:14000, - tankVolume_m3:250-300, + weight_kg: 3000, + tankVolume_m3: 250 - 300, intercooler: "Bor", // Interkuler (Bor/Yoq) fuelType: "Dizel", // Yoqilg'i turi maxSpeed_kmh: 12, // Maksimum tezligi (km/soat) - zichlash:2-2.5, + zichlash: 2 - 2.5, enginePower_hp: "75-150", // Dvigatel quvvati (ot kuchi) — diapazon sifatida transmission: "Mexanik", // O'tkazmalar qutisi }, { id: 2, - image: Katka2, - name: "Katka Hyundai", + image: Katok4, + name: "Katka", min_order_time: 4, price: 510000, path: "", - weight_kg:14000, - tankVolume_m3:250-300, + weight_kg: 4000, + tankVolume_m3: 250 - 300, intercooler: "Bor", // Interkuler (Bor/Yoq) fuelType: "Dizel", // Yoqilg'i turi maxSpeed_kmh: 12, // Maksimum tezligi (km/soat) - zichlash:2-2.5, + zichlash: 2 - 2.5, + enginePower_hp: "75-150", // Dvigatel quvvati (ot kuchi) — diapazon sifatida + transmission: "Mexanik", // O'tkazmalar qutisi + }, + { + id: 3, + image: Katok6, + name: "Katka", + min_order_time: 4, + price: 510000, + path: "", + weight_kg: 6000, + tankVolume_m3: 250 - 300, + intercooler: "Bor", // Interkuler (Bor/Yoq) + fuelType: "Dizel", // Yoqilg'i turi + maxSpeed_kmh: 12, // Maksimum tezligi (km/soat) + zichlash: 2 - 2.5, + enginePower_hp: "75-150", // Dvigatel quvvati (ot kuchi) — diapazon sifatida + transmission: "Mexanik", // O'tkazmalar qutisi + }, + { + id: 4, + image: Katok10, + name: "Katka", + min_order_time: 4, + price: 510000, + path: "", + weight_kg: 10000, + tankVolume_m3: 250 - 300, + intercooler: "Bor", // Interkuler (Bor/Yoq) + fuelType: "Dizel", // Yoqilg'i turi + maxSpeed_kmh: 12, // Maksimum tezligi (km/soat) + zichlash: 2 - 2.5, + enginePower_hp: "75-150", // Dvigatel quvvati (ot kuchi) — diapazon sifatida + transmission: "Mexanik", // O'tkazmalar qutisi + }, + { + id: 4, + image: Katok20, + name: "Katka", + min_order_time: 4, + price: 510000, + path: "", + weight_kg: 20000, + tankVolume_m3: 250 - 300, + intercooler: "Bor", // Interkuler (Bor/Yoq) + fuelType: "Dizel", // Yoqilg'i turi + maxSpeed_kmh: 12, // Maksimum tezligi (km/soat) + zichlash: 2 - 2.5, + enginePower_hp: "75-150", // Dvigatel quvvati (ot kuchi) — diapazon sifatida + transmission: "Mexanik", // O'tkazmalar qutisi + }, + { + id: 5, + image: Pnevka_Katok4, + name: "Pnevma Katok", + min_order_time: 4, + price: 510000, + path: "", + weight_kg: 4000, + tankVolume_m3: 250 - 300, + intercooler: "Bor", // Interkuler (Bor/Yoq) + fuelType: "Dizel", // Yoqilg'i turi + maxSpeed_kmh: 12, // Maksimum tezligi (km/soat) + zichlash: 2 - 2.5, + enginePower_hp: "75-150", // Dvigatel quvvati (ot kuchi) — diapazon sifatida + transmission: "Mexanik", // O'tkazmalar qutisi + }, + { + id: 6, + image: Pnevka_Katok16, + name: "Pnevma Katok", + min_order_time: 4, + price: 510000, + path: "", + weight_kg: 16000, + tankVolume_m3: 250 - 300, + intercooler: "Bor", // Interkuler (Bor/Yoq) + fuelType: "Dizel", // Yoqilg'i turi + maxSpeed_kmh: 12, // Maksimum tezligi (km/soat) + zichlash: 2 - 2.5, enginePower_hp: "75-150", // Dvigatel quvvati (ot kuchi) — diapazon sifatida transmission: "Mexanik", // O'tkazmalar qutisi }, ]; -export const kompressorlar: innerCardTypes[] = [ +export const evakuatorDemo: innerCardTypes[] = [ { id: 1, - image: Kampressor1, - name: "Kompressor Mitsubishi", - min_order_time: 3, - price: 350000, - path: "", - fuelType:'Elektr', - enginePower_hp:"3", - siqish:150, - havo:10, - kompressor_sig:60, + name: "Evakuator Gruzavoy", + image: EvakuatorGruzavoy, + min_order_time: 2, // soat + price: 350, // taxminiy narx + path: "/evakuator/25ton", + + // Evakuator maxsus xususiyatlar + towingCapacity_tons: 20, // Max yuk ko‘tarish + armLength_m: 8, // Armlik uzunligi + fuelType: "Diesel", + enginePower_hp: "400", + maxSpeed_kmh: 90, + transmission: "Manual", + tankVolume_m3: 300, // Litra + weight_kg: 12000, }, { id: 2, - image: Kampressor2, - name: "Kompressor XCMG", - min_order_time: 3, - price: 370000, - path: "", - fuelType:'Elektr', - enginePower_hp:"3", - siqish:150, - havo:10, - kompressor_sig:60, + name: "Evakuator kichik 5 tonna yuk mashinasi", + image: Evakuator5, + min_order_time: 1, // soat + price: 200, + path: "/evakuator/5ton", + + // Evakuator maxsus xususiyatlar + towingCapacity_tons: 5, + armLength_m: 5, + fuelType: "Diesel", + enginePower_hp: "180", + maxSpeed_kmh: 80, + transmission: "Manual", + tankVolume_m3: 150, + weight_kg: 6000, }, { id: 3, - image: Kampressor3, - name: "Kompressor Hyundai", - min_order_time: 3, - price: 390000, - path: "", - fuelType:'Elektr', - enginePower_hp:"3", - siqish:150, - havo:10, - kompressor_sig:60, + name: "Evakuator o‘rta 20 tonna Kamaz", + image: Evakuator20, + min_order_time: 2, + price: 300, + path: "/evakuator/20ton", + + // Evakuator maxsus xususiyatlar + towingCapacity_tons: 20, + armLength_m: 7, + fuelType: "Diesel", + enginePower_hp: "250", + maxSpeed_kmh: 85, + transmission: "Manual", + tankVolume_m3: 200, + weight_kg: 10000, }, ]; +export const asfalt: innerCardTypes[] = [ + { + id: 1, + name: "Dorojanara 1", + image: Aspal_800, + min_order_time: 4, + price: 500000, + path: "/asfalt/frezka-1", + weight_kg: 12000, + maxLength_m: 8, + maxHeight_m: 3.5, + fuelType: "Diesel", + enginePower_hp: "300", + maxSpeed_kmh: 15, + transmission: "Manual", + pavingWidth_m: 4, // yotqizish kengligi + pavingDepth_cm: 20, // qatlam chuqurligi + }, + { + id: 2, + name: "Dorojanara 2", + image: Aspal_1800, + min_order_time: 4, + price: 500000, + path: "/asfalt/frezka-2", + weight_kg: 13000, + maxLength_m: 8.5, + maxHeight_m: 3.7, + fuelType: "Diesel", + enginePower_hp: "320", + maxSpeed_kmh: 16, + transmission: "Manual", + pavingWidth_m: 4.2, + pavingDepth_cm: 22, + }, + { + id: 3, + name: "Asfalt kochiruvchi 1", + image: Aspal_k, + min_order_time: 3, + price: 500000, + path: "/asfalt/kochiruvchi-1", + weight_kg: 10000, + maxLength_m: 10, + maxHeight_m: 3.5, + fuelType: "Diesel", + enginePower_hp: "280", + maxSpeed_kmh: 25, + transmission: "Manual", + conveyorLength_m: 6, // konveyer uzunligi + conveyorCapacity_tons: 8, // bir marta ko‘chiradigan asfalt + }, +]; + +// shalanda +export const shalandaTraller: innerCardTypes[] = [ + { + id: 1, + name: "Shalanda 60 tonna", + image: Shalanda, + min_order_time: 3, + price: 1200, + path: "/truck/shalanda-60t", + weight_kg: 18000, + maxLength_m: 15, + maxHeight_m: 4, + capacity_tons: 60, + fuelType: "Diesel", // dvigatel truckga bog‘langan + maxSpeed_kmh: 90, + transmission: "Manual", + enginePower_hp: "—", // bosh qismi truckga bog‘langan + tankVolume_m3: 0, + towingCapacity_tons: 60, + armLength_m: 16, + wheelCount: 10, + brakingSystem: "Air brakes", + }, + { + id: 2, + name: "Treller 70 tonna", + image: Traller, + min_order_time: 3, + price: 1500, + path: "/truck/treller-70t", + weight_kg: 22000, + maxLength_m: 17.5, + maxHeight_m: 4.2, + capacity_tons: 70, + fuelType: "Diesel", + maxSpeed_kmh: 85, + transmission: "Manual", + enginePower_hp: "—", // bosh qismi truckga bog‘langan + tankVolume_m3: 0, + towingCapacity_tons: 70, + armLength_m: 17.5, + wheelCount: 12, + brakingSystem: "Air brakes", + }, +]; + +// vodovoz +export const vodovoz: innerCardTypes[] = [ + { + id: 1, + image: Vodovoz, // rasmni o'zingiz qo'yasiz + name: "Vodovoz 6 m³", + min_order_time: 2, + price: 350000, + path: "", + tankVolume_m3: 6, // suv sig'imi + fuelType: "Dizel", + maxSpeed_kmh: 90, + enginePower_hp: "150-180", + transmission: "Mexanik", + pumpPower_hp: 12, // suv nasosi quvvati + pumpType: "Markazdan qochma nasos", + weight_kg: 6500, // mashina og'irligi + maxLength_m: 6.5, + }, +]; + +// Assenizator +export const assenizator: innerCardTypes[] = [ + { + id: 1, + image: Assenizator, // rasmni o'zingiz qo'yasiz + name: "Assenizator 5 m³", + min_order_time: 2, + price: 380000, + path: "", + tankVolume_m3: 5, // vakuum bak hajmi + fuelType: "Dizel", + maxSpeed_kmh: 80, + enginePower_hp: "140-160", + transmission: "Mexanik", + pumpPower_hp: 10, // vakuum nasos quvvati + pumpType: "Vakuum nasos", + weight_kg: 7000, + maxLength_m: 6.2, + }, +]; + +// manipulyator +export const manipulyator: innerCardTypes[] = [ + { + id: 1, + image: Manipulyator, + name: "Manipulyator 7 tonna", + min_order_time: 3, + price: 450000, + path: "", + capacity_tons: 7, + manipulatorCapacity_tons: 7, + manipulatorArm_m: 10, // 7t manipulyatorlarda 8–12 m bo‘ladi + maxLength_m: 7.5, + weight_kg: 9200, + fuelType: "Dizel", + maxSpeed_kmh: 75, + enginePower_hp: "180-240", + transmission: "Mexanik/Avtomatik", + } +]; + + // slider data export const sliderData: ProductTypes[] = [ { diff --git a/public/beton_nasos.jpg b/public/beton_nasos.jpg new file mode 100644 index 0000000..1eb0fbb Binary files /dev/null and b/public/beton_nasos.jpg differ diff --git a/public/custom-marker.svg b/public/custom-marker.svg new file mode 100644 index 0000000..4c2c45d --- /dev/null +++ b/public/custom-marker.svg @@ -0,0 +1,6 @@ +<svg width="45" height="45" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg"> + <circle cx="32" cy="32" r="18" fill="#FF3B30"></circle> + <circle cx="32" cy="32" r="10" fill="white"></circle> + <circle cx="32" cy="32" r="6" fill="#FF3B30"></circle> + <path d="M32 62C32 62 52 42 52 28C52 16.9543 43.0457 8 32 8C20.9543 8 12 16.9543 12 28C12 42 32 62 32 62Z" fill="#FF3B30"></path> +</svg> diff --git a/public/locales/ru/common.json b/public/locales/ru/common.json index 761d374..06dd5d4 100644 --- a/public/locales/ru/common.json +++ b/public/locales/ru/common.json @@ -194,5 +194,17 @@ "siqish": "Давление сжатия", "havo": "Ёмкость воздуха", "kompressor_sig": "Объём компрессора", - "katalog": "Познакомьтесь с каталогом" + "katalog": "Познакомьтесь с каталогом", + "work_day_title": "Рабочие дни:", + "work_day": "Понедельник–Воскресенье", + "hero_title": "Надёжная спецтехника — лучший выбор для вашего проекта!", + "hero_desc": "Мы предлагаем новейшую технику, специализированный транспорт и строительное оборудование по выгодной цене.", + "shalanda_traller": "Шаланда и Траллеры", + "evakuator": "Эвакуаторы", + "asfalt_yotqizuvchi": "Асфальтоукладчик", + "asfalt_kochiruvchi": "Асфальтоперегружатель", + "beton_nasos": "Бетононасосы", + "vodovoz": "Водовоз", + "assenizator": "Ассенизатор", + "manipulyator": "Манипулятор" } diff --git a/public/locales/uz/common.json b/public/locales/uz/common.json index 9245ccc..e3c9cb1 100644 --- a/public/locales/uz/common.json +++ b/public/locales/uz/common.json @@ -196,5 +196,17 @@ "siqish": "Siqish bosimi", "havo": "Havo sig‘imi", "kompressor_sig": "Kompressor sig‘imi", - "katalog": "Katalog bilan tanishing" + "katalog": "Katalog bilan tanishing", + "work_day_title": "Ish kunlari:", + "work_day": "Dushanba-Yakshanba", + "hero_title": "Ishonchli SpesTexnika — sizning loyihangiz uchun eng yaxshi tanlov!", + "hero_desc": "Biz eng so‘nggi texnikalar, maxsus transportlar va qurilish uskunalarini qulay narxda taqdim etamiz.", + "shalanda_traller": "Shalanda va Trallerlar", + "evakuator": "Evakuatorlar", + "asfalt_yotqizuvchi": "Asfalt yotqizuvchi mashina", + "asfalt_kochiruvchi": "Asfalt ko‘chiruvchi mashina", + "beton_nasos": "Beton nasos mashinalari", + "vodovoz":"Vodovoz", + "assenizator":"Assenizator", + "manipulyator":"Manipulyator" } diff --git a/public/location.svg b/public/location.svg new file mode 100644 index 0000000..4c2c45d --- /dev/null +++ b/public/location.svg @@ -0,0 +1,6 @@ +<svg width="45" height="45" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg"> + <circle cx="32" cy="32" r="18" fill="#FF3B30"></circle> + <circle cx="32" cy="32" r="10" fill="white"></circle> + <circle cx="32" cy="32" r="6" fill="#FF3B30"></circle> + <path d="M32 62C32 62 52 42 52 28C52 16.9543 43.0457 8 32 8C20.9543 8 12 16.9543 12 28C12 42 32 62 32 62Z" fill="#FF3B30"></path> +</svg> diff --git a/types/index.ts b/types/index.ts index f4bd2ef..3d56eaf 100644 --- a/types/index.ts +++ b/types/index.ts @@ -9,29 +9,29 @@ export interface TitleType { export interface productFilterTypes { name: string; - image: StaticImageData|string; + image: StaticImageData | string; } -export interface MainProductCard{ - uzunlik?:string; - kenglik?:string; - balandlik?:String; - yukqob?:String; - makBalandlik?:string; +export interface MainProductCard { + uzunlik?: string; + kenglik?: string; + balandlik?: String; + yukqob?: String; + makBalandlik?: string; } -export interface ProductCardType extends MainProductCard{ - image?:StaticImageData[]; - title?:string; - y_turi?:string; - hajmi?:string; - tezlik?:string; - interkuler?:string; - quvvat?:string; - quti?:string; - turboDizel?:string; - ogirlig?:string; - bomUzunlik?:string; +export interface ProductCardType extends MainProductCard { + image?: StaticImageData[]; + title?: string; + y_turi?: string; + hajmi?: string; + tezlik?: string; + interkuler?: string; + quvvat?: string; + quti?: string; + turboDizel?: string; + ogirlig?: string; + bomUzunlik?: string; } export interface ProductTypes { @@ -50,34 +50,55 @@ export interface innerCardTypes { price?: number; path: string; - // 🧩 Qo‘shimcha umumiy texnik xususiyatlar - weight_kg?: number; // Og‘irligi (kg) - maxLength_m?: number; // Maksimum uzunligi (m) - maxHeight_m?: number; // Maksimum balandligi (m) - capacity_tons?: number; // Yuk ko‘tarish qobiliyati (tonna) - capacity_kg?: number; // Yuk ko‘tarish qobiliyati (kg) - fuelType?: string; // Yoqilg‘i turi - tankVolume_m3?: number; // Tank hajmi (m³) - maxSpeed_kmh?: number; // Maksimum tezligi (km/soat) - intercooler?: string; // Interkuler bor/yo‘q - enginePower_hp?: string; // Dvigatel quvvati (ot kuchi) - transmission?: string; // O‘tkazmalar qutisi turi - bom?:number; // Minora kranlar bom uzunligi - qazish?:number; // ekskavator qazish chuqurligi - pichoq?:number; // avtogreyder pichoq uzunligi - zichlash?:number; // katka asfalt zichlovchi - siqish?:number; // kampressor siqish bosimi - havo?:number; // kampressor havo sig'imi - kompressor_sig?:number; // kampressor sig'imi + // 🧩 Umumiy texnik xususiyatlar + weight_kg?: number; // Og‘irligi (kg) + maxLength_m?: number; // Maksimum uzunligi (m) + maxHeight_m?: number; // Maksimum balandligi (m) + capacity_tons?: number; // Yuk ko‘tarish qobiliyati (tonna) + capacity_kg?: number; // Yuk ko‘tarish qobiliyati (kg) + fuelType?: string; // Yoqilg‘i turi + tankVolume_m3?: number; // Tank hajmi (m³) + maxSpeed_kmh?: number; // Maksimum tezligi (km/soat) + intercooler?: string; // Interkuler bor/yo‘q + enginePower_hp?: string; // Dvigatel quvvati (ot kuchi) + transmission?: string; // O‘tkazmalar qutisi turi + bom?: number; // Minora kranlar bom uzunligi + qazish?: number; // ekskavator qazish chuqurligi + pichoq?: number; // avtogreyder pichoq uzunligi + zichlash?: number; // katka asfalt zichlovchi + siqish?: number; // kampressor siqish bosimi + havo?: number; // kampressor havo sig'imi + kompressor_sig?: number; // kampressor sig'imi + towingCapacity_tons?: number; // evakuator ko'taruvchi og'irlik + armLength_m?: number; // evakuator uzunligi + + // 🟢 Qo‘shimcha shalanda / treller tipelar + wheelCount?: number; // G‘ildiraklar soni + brakingSystem?: string; // Tormoz tizimi + + // 🟢 Asfalt mashinalari uchun qo‘shimcha + pavingWidth_m?: number; // Asfalt yotqizuvchi kengligi + pavingDepth_cm?: number; // Asfalt qatlamining chuqurligi + conveyorLength_m?: number; // Asfalt kochiruvchi konveyer uzunligi + conveyorCapacity_tons?: number; // Bir marta ko‘chiradigan asfalt hajmi + + // 🟢 Betonniy nasos mashinalari uchun qo‘shimcha + pumpLength_m?: number; // Beton nasosning uzatish (quvur) uzunligi (metr) + pumpCapacity_m3h?: number; // Betonni soatiga uzatish hajmi (m³/soat) + + // 🔵 Vodovoz / Assenizator uchun qo‘shimchalar: + pumpPower_hp?: number; // Nasos quvvati + pumpType?: string; // Nasos turi + + manipulatorCapacity_tons?: number; // manipulyator yuk ko‘tarishi + manipulatorArm_m?: number; // manipulyator strela uzunligi } - - -export const defaultDetail : innerCardTypes = { - id:1, - image:Kaimei1, - name:'Mashina topilmadi', - min_order_time:4, - price:600000, - path:'' -} +export const defaultDetail: innerCardTypes = { + id: 1, + image: Kaimei1, + name: "Mashina topilmadi", + min_order_time: 4, + price: 600000, + path: "", +}; diff --git a/types/ymaps.d.ts b/types/ymaps.d.ts index 2ea1c9e..461b60a 100644 --- a/types/ymaps.d.ts +++ b/types/ymaps.d.ts @@ -1,39 +1,66 @@ // src/types/ymaps.d.ts declare namespace ymaps { - interface MapOptions { - center: number[]; - zoom: number; - controls?: string[]; + type ReadyCallback = () => void; + + interface IEventEmitter { + add: (eventName: string, handler: (...args: any[]) => any) => void; + remove?: (eventName: string, handler: (...args: any[]) => any) => void; + fire?: (eventName: string, eventObject?: any) => void; } - class Map { - constructor(container: HTMLElement, options: MapOptions); - geoObjects: { - add(obj: any): void; - }; - controls: any; + interface IGeoObjectCollection { + add: (geoObject: any) => void; + remove?: (geoObject: any) => void; + removeAll?: () => void; + } + + interface MapOptions { + center?: [number, number]; + zoom?: number; + controls?: string[]; + [key: string]: any; + } + + class Map implements IEventEmitter { + constructor(container: HTMLElement | string, options?: MapOptions); + + events: IEventEmitter; + geoObjects: IGeoObjectCollection; + + setCenter(center: [number, number] | number[], zoom?: number): void; + getCenter(): [number, number]; + + setZoom(zoom: number, options?: any): void; + getZoom(): number; + + destroy(): void; } interface PlacemarkOptions { + iconLayout?: string; + iconImageHref?: string; + iconImageSize?: [number, number]; + iconImageOffset?: [number, number]; iconColor?: string; draggable?: boolean; + [key: string]: any; } - interface PlacemarkProperties { - balloonContent?: string; + class Placemark implements IEventEmitter { + constructor(coords: [number, number] | number[], properties?: any, options?: PlacemarkOptions); + properties: any; + events: IEventEmitter; } - class Placemark { - constructor( - coords: number[], - properties?: PlacemarkProperties, - options?: PlacemarkOptions - ); - } - - function ready(callback: () => void): void; // ✅ shu qator qo‘shildi + function ready(callback: ReadyCallback): void; } -interface Window { - ymaps: typeof ymaps; +declare global { + interface Window { + ymaps?: typeof ymaps; + } +} + +declare module "ymaps" { + export = ymaps; }