change
|
Before Width: | Height: | Size: 228 KiB After Width: | Height: | Size: 815 KiB |
|
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 270 KiB |
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 162 KiB |
|
After Width: | Height: | Size: 445 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 8.9 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 8.9 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
|
|
@ -54,7 +54,7 @@ export const Header: FC = () => {
|
|||
<div className="flex items-center gap-6">
|
||||
<div className="flex items-center gap-2">
|
||||
<Smartphone size={16} strokeWidth="3px" />
|
||||
<h4 className="text-sm text-white">+99371871814</h4>
|
||||
<h4 className="text-sm text-white">+99371871812</h4>
|
||||
</div>
|
||||
|
||||
{/* <LangMenu /> */}
|
||||
|
|
|
|||
|
|
@ -8,15 +8,10 @@ interface Props {
|
|||
|
||||
export const AboutPlace: FC<Props> = ({ className }) => {
|
||||
return (
|
||||
<section
|
||||
className={cn(
|
||||
"flex items-center gap-6 relative md:py-20 py-10 overflow-hidden",
|
||||
className
|
||||
)}
|
||||
>
|
||||
<Container>
|
||||
<h3 className="h2 mb-6">Место проведения</h3>
|
||||
<p className="text-lg text-on_surface_v normal">
|
||||
<section className={cn(" gap-6 relative overflow-hidden", className)}>
|
||||
<Container className="md:py-20 py-10 ">
|
||||
<h3 className="h2 mb-6 xl:max-w-[496px]">Место проведения</h3>
|
||||
<p className="text-lg text-on_surface_v normal xl:max-w-[496px] mb-10">
|
||||
Торгово-промышленная палата Туркменистана создана в целях содействия
|
||||
развитию экономики Туркменистана, ее интегрированию в мировую
|
||||
хозяйственную систему, формированию современной промышленной,
|
||||
|
|
@ -25,7 +20,15 @@ export const AboutPlace: FC<Props> = ({ className }) => {
|
|||
установлении торгово-экономических, научных и технических связей с
|
||||
зарубежными партнерами.
|
||||
</p>
|
||||
|
||||
<div className="size-full xl:hidden">
|
||||
<img src="/map.png" alt="map" className="size-full object-cover" />
|
||||
</div>
|
||||
</Container>
|
||||
|
||||
<div className="h-full 2xl:w-[850px] xl:w-[650px] xl:block hidden absolute top-0 right-0">
|
||||
<img src="/map.png" alt="" className="size-full object-cover" />
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -14,21 +14,21 @@ export const AboutThemes: FC<Props> = ({ className }) => {
|
|||
className={cn("relative w-full bg-[#FDE8C4] -z-10 py-10", className)}
|
||||
>
|
||||
<img
|
||||
src="/about-bg.svg"
|
||||
src="/theme-cover.png"
|
||||
alt=""
|
||||
className="absolute top-0 left-0 size-full object-cover"
|
||||
className="absolute top-0 left-0 size-full -z-10 object-cover"
|
||||
/>
|
||||
|
||||
<Container>
|
||||
<h3 className="h2 mb-4">Отрасли</h3>
|
||||
<p className="text-lg text-on_surface_v mb-6">
|
||||
<p className="text-lg text-primary_09 mb-6">
|
||||
Мероприятие объединит ключевых игроков в таких отраслях, как:
|
||||
</p>
|
||||
|
||||
<div className="grid md:grid-cols-4 grid-cols-2 gap-6">
|
||||
{themes.map((item) => (
|
||||
<ThemeCard
|
||||
className="!bg-teritary_surface_container"
|
||||
className="!bg-primary_container"
|
||||
key={item.title}
|
||||
{...item}
|
||||
/>
|
||||
|
|
@ -36,8 +36,8 @@ export const AboutThemes: FC<Props> = ({ className }) => {
|
|||
</div>
|
||||
|
||||
<div className="flex items-center gap-3 mt-8 text-on_surface_v text-lg">
|
||||
<div className="md:w-1 w-4 md:h-[38px] h-40 bg-teritary_08" />
|
||||
<p className="text-18">
|
||||
<div className="md:w-1 w-4 md:h-[38px] h-40 bg-primary_09" />
|
||||
<p className="text-18 !text-primary_09">
|
||||
Участники смогут продемонстрировать свои инновационные решения,
|
||||
наладить взаимовыгодные партнерства и выйти на новые рынки.
|
||||
</p>
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ export const B2bForm: FC<Props> = ({
|
|||
|
||||
// Отправляем запрос
|
||||
const res = await axios.post(
|
||||
"https://itse.turkmenexpo.com/app/api/v1/form",
|
||||
"https://turkmentextile.turkmenexpo.com/app/api/v1/form",
|
||||
formData,
|
||||
{
|
||||
headers: {
|
||||
|
|
|
|||
|
|
@ -32,16 +32,15 @@ export const HomeAbout: FC = () => {
|
|||
<Container className="flex flex-col gap-6">
|
||||
<div className="text-center">
|
||||
<h2 className="h2 md:mb-3 mb-6 text-left sm:text-center">
|
||||
Выставка-ярмарка «Международная Торговля и Услуги» в Ашхабаде
|
||||
Выставка-ярмарка «TurkmenTextile Expo 2025» в Ашхабаде{" "}
|
||||
</h2>
|
||||
<p className="md:text-base text-sm normal text-left sm:text-center text-[#454545]">
|
||||
С 29 апреля по 1 мая 2025 года столица Туркменистана, Ашхабад,
|
||||
станет центром международного делового сообщества благодаря
|
||||
крупнейшей выставке-ярмарке «Торговля и услуги». Организованная
|
||||
Торгово-промышленной палатой Туркменистана и компанией Turkmen Expo,
|
||||
эта выставка направлена на укрепление глобальных торговых связей,
|
||||
привлечение инвестиций и демонстрацию экономического потенциала
|
||||
страны.
|
||||
Глобальная выставка и ярмарка текстиля и моды, которая объединит
|
||||
мировых лидеров отрасли, инновационных производителей и творческих
|
||||
дизайнеров. Наша миссия — укрепить позиции Туркменистана как
|
||||
ключевого центра текстильной и модной индустрии. Выставка станет
|
||||
платформой для изучения устойчивых практик, современных технологий и
|
||||
новых дизайнерских решений, вдохновляя на развитие индустрии.{" "}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -47,7 +47,11 @@ export const HomeTheme: FC = () => {
|
|||
|
||||
<div className="grid md:grid-cols-4 grid-cols-2 gap-6">
|
||||
{themes.map((item) => (
|
||||
<ThemeCard key={item.title} {...item} />
|
||||
<ThemeCard
|
||||
key={item.title}
|
||||
{...item}
|
||||
iconClassName="bg-teritary_04"
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
</Container>
|
||||
|
|
|
|||
|
|
@ -12,15 +12,15 @@ interface Props {
|
|||
export const times = [
|
||||
{
|
||||
name: "Монтаж выставки",
|
||||
date: "1 — 27 апреля 2025 года",
|
||||
date: "12 мая – 10 июня 2025 года",
|
||||
},
|
||||
{
|
||||
name: "Работа",
|
||||
date: "29 — 1 мая 2025 года",
|
||||
date: "11–13 июня 2025 года",
|
||||
},
|
||||
{
|
||||
name: "Демонтаж",
|
||||
date: "1 — 2 мая 2025 года",
|
||||
date: "13–14 июня 2025 года",
|
||||
},
|
||||
];
|
||||
|
||||
|
|
@ -36,7 +36,7 @@ const contacts = [
|
|||
img: "/contacts/location.svg",
|
||||
},
|
||||
{
|
||||
title: "+99371871814; 99363719588",
|
||||
title: "+99371871812; 99363719588",
|
||||
subtitle: "Контактный номер",
|
||||
img: "/contacts/mobile.svg",
|
||||
},
|
||||
|
|
|
|||
|
|
@ -5,9 +5,15 @@ interface Props {
|
|||
img: string;
|
||||
title: string;
|
||||
className?: string;
|
||||
iconClassName?: string;
|
||||
}
|
||||
|
||||
export const ThemeCard: FC<Props> = ({ className, img, title }) => {
|
||||
export const ThemeCard: FC<Props> = ({
|
||||
className,
|
||||
img,
|
||||
title,
|
||||
iconClassName,
|
||||
}) => {
|
||||
return (
|
||||
<article
|
||||
className={cn(
|
||||
|
|
@ -16,7 +22,11 @@ export const ThemeCard: FC<Props> = ({ className, img, title }) => {
|
|||
)}
|
||||
>
|
||||
<div className="bg-primary size-full -z-[10] absolute top-2.5 left-2.5" />
|
||||
<img src={img} alt="theme icon" className="md:size-20 size-12" />
|
||||
<div
|
||||
className={cn("md:size-[84px] size-12 bg-teritary p-3", iconClassName)}
|
||||
>
|
||||
<img src={img} alt="theme icon" />
|
||||
</div>
|
||||
<h3 className="md:mt-6 mt-2 md:text-xl text-sm">{title}</h3>
|
||||
</article>
|
||||
);
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ export const TimeCard: FC<Props> = ({
|
|||
}) => {
|
||||
return (
|
||||
<div className={cn("rounded-t-[4px] overflow-hidden", className)}>
|
||||
<div className="bg-primary text-white flex items-center h-11 px-4">
|
||||
<div className="bg-teritary text-white flex items-center h-11 px-4">
|
||||
{name}
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,10 @@
|
|||
import { Container, Cover } from "@/components/layout";
|
||||
import { AboutBron, AboutPlace, AboutTime } from "@/components/shared";
|
||||
import {
|
||||
AboutBron,
|
||||
AboutPlace,
|
||||
AboutThemes,
|
||||
AboutTime,
|
||||
} from "@/components/shared";
|
||||
import { useScrollTop } from "@/hooks/use-scroll-top";
|
||||
import { cn } from "@/lib/utils";
|
||||
import { FC } from "react";
|
||||
|
|
@ -130,7 +135,7 @@ export const About: FC<Props> = ({ className }) => {
|
|||
</div>
|
||||
</Container>
|
||||
|
||||
{/* <AboutThemes /> */}
|
||||
<AboutThemes />
|
||||
<AboutTime />
|
||||
<AboutPlace />
|
||||
<AboutBron />
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ import { FC, useEffect, useState } from "react";
|
|||
import { useForm } from "react-hook-form";
|
||||
import { Loader } from "lucide-react";
|
||||
import { Cover } from "@/components/layout";
|
||||
import { postStend } from "@/services/service";
|
||||
|
||||
interface Props {
|
||||
className?: string;
|
||||
|
|
@ -33,12 +34,9 @@ export const StendForm: FC<Props> = ({ className }) => {
|
|||
});
|
||||
|
||||
const onSubmit = async (data: StandFormType) => {
|
||||
const res = await axios.post(
|
||||
"https://itse.turkmenexpo.com/app/api/v1/book_stand_form",
|
||||
data
|
||||
);
|
||||
const status = await postStend(data);
|
||||
|
||||
if (res.status === 201) setSuccess(true);
|
||||
if (status) setSuccess(true);
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
|
|
|
|||
|
|
@ -1,13 +1,14 @@
|
|||
import { SponsorFormType } from "@/lib/get-sponsor-form-details";
|
||||
import { StandFormType } from "@/lib/get-stend-form-details";
|
||||
import axios from "axios";
|
||||
|
||||
const URL = "https://itse.turkmenexpo.com/app/api/v1";
|
||||
|
||||
// export const postStend = async (data: StandFormType): Promise<boolean> => {
|
||||
// const res = axios.post(`${URL}/become_delegate`, data);
|
||||
export const postStend = async (data: StandFormType): Promise<boolean> => {
|
||||
const res = axios.post(`${URL}/book_stand_form`, data);
|
||||
|
||||
// return (await res).status === 201;
|
||||
// };
|
||||
return (await res).status === 201;
|
||||
};
|
||||
|
||||
export const postB2b = async (data: FormData): Promise<boolean> => {
|
||||
const res = axios.post(`${URL}/form`, data);
|
||||
|
|
@ -16,7 +17,7 @@ export const postB2b = async (data: FormData): Promise<boolean> => {
|
|||
};
|
||||
|
||||
export const postSponsor = async (data: SponsorFormType): Promise<boolean> => {
|
||||
const res = axios.post(`${URL}/become_sponsor`, data);
|
||||
const res = axios.post(`${URL}/become_sponsor_form`, data);
|
||||
|
||||
return (await res).status === 201;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -14,8 +14,9 @@ export default {
|
|||
reverse_primary: "#F6B2B8",
|
||||
primary_03: "#F6B2B8",
|
||||
primary_04: "#9AB4E4",
|
||||
primary_09: "#99101D",
|
||||
on_primary: "#ffffff",
|
||||
primary_container: "#BBCDED",
|
||||
primary_container: "#F6B2B8",
|
||||
on_primary_container: "#112343",
|
||||
primary_outline_reverse: "#789BDB",
|
||||
|
||||
|
|
|
|||