= ({ handlePrev }) => {
name={"preferred_meeting_datetime"}
error={formState.errors.preferred_meeting_datetime as FieldError}
placeholder=""
- label="Предпочтительная дата и время "
- // label="Preferred date and time for the meeting"
+ label={b2bStage3[useTranslate(lang)].data[0].label}
/>
= ({ handlePrev }) => {
name={"additional_technical"}
error={formState.errors.additional_technical as FieldError}
placeholder=""
- label="Дополнительные технические или логистические требования (например, аудио-видео оборудование, переводчики и т.д.)"
- // label="Additional technical or logistical requirements (e.g. AV equipment, interpreters, etc)"
+ label={b2bStage3[useTranslate(lang)].data[3].label}
/>
-
-
Приложения:
+
+
{b2bStage3[useTranslate(lang)].secondH2}
- (Пожалуйста приложите следующие документы, если это необходимо)
+ {b2bStage3[useTranslate(lang)].subtitle}
@@ -98,7 +95,7 @@ export const Stage3: FC = ({ handlePrev }) => {
variant={"outline"}
className="text-on_surface"
>
- Вернуться назад
+ {lang === Language.RU ? "Вернуться назад" : "Back"}
diff --git a/src/components/shared/forms/b2b-form.tsx b/src/components/shared/forms/b2b-form.tsx
index 80522ff..3f5d730 100644
--- a/src/components/shared/forms/b2b-form.tsx
+++ b/src/components/shared/forms/b2b-form.tsx
@@ -85,18 +85,16 @@ export const B2bForm: FC = ({
try {
const formData = new FormData();
- // Перебираем все поля
Object.entries(values).forEach(([key, value]) => {
if (value instanceof File) {
- console.log(`Добавляем файл: ${key}`, value); // Отладочный вывод
+ console.log(`Добавляем файл: ${key}`, value);
formData.append(key, value);
} else if (value !== undefined) {
- console.log(`Добавляем поле: ${key}`, value); // Отладочный вывод
+ console.log(`Добавляем поле: ${key}`, value);
formData.append(key, value as string);
}
});
- // Отправляем запрос
const res = await axios.post(
"https://turkmentextile.turkmenexpo.com/app/api/v1/form",
formData,
@@ -108,7 +106,6 @@ export const B2bForm: FC = ({
);
if (res.status === 201) {
- console.log("Форма успешно отправлена!");
setSuccess(true);
}
} catch (error) {
diff --git a/src/components/shared/home/home-about.tsx b/src/components/shared/home/home-about.tsx
index 84463e9..31be122 100644
--- a/src/components/shared/home/home-about.tsx
+++ b/src/components/shared/home/home-about.tsx
@@ -4,29 +4,10 @@ import { Link } from "react-router-dom";
import useEmblaCarousel from "embla-carousel-react";
import { Container } from "@/components/layout";
import { AboutCard } from "../about-card";
-import { aboutData } from "@/data/home-about.data";
+import { aboutData } from "@/data/home/home-about.data";
import { useTranslate } from "@/hooks/use-translate";
import { Language, useLangStore } from "@/store/lang";
-const data = [
- {
- nums: "8,400 m²",
- text: "выставочной площади",
- },
- {
- nums: "10000+",
- text: "Посетители посетят выставку",
- },
- {
- nums: "100+",
- text: "Экспоненты из более чем 30 стран",
- },
- {
- nums: "80%",
- text: "Участники принимают участие в принятии решений о закупках",
- },
-];
-
export const HomeAbout: FC = () => {
const [ebmblaRef] = useEmblaCarousel();
const lang = useLangStore((state) => state.lang);
diff --git a/src/components/shared/home/home-hero.tsx b/src/components/shared/home/home-hero.tsx
index 25dd874..9666399 100644
--- a/src/components/shared/home/home-hero.tsx
+++ b/src/components/shared/home/home-hero.tsx
@@ -4,7 +4,7 @@ import { Link } from "react-router-dom";
import { Button } from "@/components/ui/button";
import { Container } from "@/components/layout";
import { useMediaQuery } from "usehooks-ts";
-import { btns } from "@/data/home-hero.data";
+import { btns } from "@/data/home/home-hero.data";
import { useTranslate } from "@/hooks/use-translate";
import { useLangStore } from "@/store/lang";
diff --git a/src/components/shared/home/home-offers.tsx b/src/components/shared/home/home-offers.tsx
index a5ba1c6..ba0865c 100644
--- a/src/components/shared/home/home-offers.tsx
+++ b/src/components/shared/home/home-offers.tsx
@@ -2,7 +2,7 @@ import { FC, useCallback, useEffect, useState } from "react";
import useEmblaCarousel from "embla-carousel-react";
import { Container } from "@/components/layout";
import { EmblaDots, OfferCard } from "../";
-import { offersData } from "@/data/home-offers.data";
+import { offersData } from "@/data/home/home-offers.data";
import { useTranslate } from "@/hooks/use-translate";
import { useLangStore } from "@/store/lang";
diff --git a/src/components/shared/home/home-theme.tsx b/src/components/shared/home/home-theme.tsx
index 5ceba26..b9b1149 100644
--- a/src/components/shared/home/home-theme.tsx
+++ b/src/components/shared/home/home-theme.tsx
@@ -2,7 +2,7 @@ import { FC } from "react";
import { ThemeCard } from "../theme-card";
import { Container } from "@/components/layout";
import { useLangStore } from "@/store/lang";
-import { homeTheme } from "@/data/home-theme.data";
+import { homeTheme } from "@/data/home/home-theme.data";
import { useTranslate } from "@/hooks/use-translate";
export const themes = [
diff --git a/src/components/shared/home/home-time.tsx b/src/components/shared/home/home-time.tsx
index 755e12d..5c58955 100644
--- a/src/components/shared/home/home-time.tsx
+++ b/src/components/shared/home/home-time.tsx
@@ -6,7 +6,7 @@ import { Container } from "@/components/layout";
import { ContactCard, TimeCard } from "../";
import { useTranslate } from "@/hooks/use-translate";
import { Language, useLangStore } from "@/store/lang";
-import { times } from "@/data/home-time.data";
+import { times } from "@/data/home/home-time.data";
import { contacts } from "@/data/contacts.data";
interface Props {
diff --git a/src/components/shared/index.ts b/src/components/shared/index.ts
index b562444..deb6dd3 100644
--- a/src/components/shared/index.ts
+++ b/src/components/shared/index.ts
@@ -8,5 +8,7 @@ export { B2bFormProgress } from "./b2b-form-progress";
export { Field } from "./field";
export { FormSuccesStatus } from "./form-succes-status";
export { EmblaDots } from "./embla-dots";
+export { LangMenu } from "./lang-menu";
+
export * from "./about";
export * from "./home";
diff --git a/src/components/shared/lang-menu.tsx b/src/components/shared/lang-menu.tsx
new file mode 100644
index 0000000..8c163e8
--- /dev/null
+++ b/src/components/shared/lang-menu.tsx
@@ -0,0 +1,70 @@
+import { FC, useState } from "react";
+import { Popover, PopoverContent, PopoverTrigger } from "../ui/popover";
+import { cn } from "@/lib/utils";
+import { Language, useLangStore } from "@/store/lang";
+
+interface Props {
+ className?: string;
+}
+
+export const langs = [
+ {
+ lang: Language.RU,
+ },
+ {
+ lang: Language.EN,
+ },
+];
+
+export const LangMenu: FC = ({ className }) => {
+ const lang = useLangStore((state) => state.lang);
+ const setLang = useLangStore((state) => state.setLang);
+
+ const [isOpen, setIsOpen] = useState(false);
+
+ console.log(langs.filter((item) => item.lang === lang));
+
+ return (
+ setIsOpen(!isOpen)}>
+
+
+ {lang === Language.RU ? "Ру" : "En"}
+
+
+
+
+ {langs
+ .filter((item) => item.lang !== lang)
+ .map((item, i) => (
+