diff --git a/src/components/shared/designer-card.tsx b/src/components/shared/designer-card.tsx index 2c3a420..5f84871 100644 --- a/src/components/shared/designer-card.tsx +++ b/src/components/shared/designer-card.tsx @@ -3,6 +3,7 @@ import { cn } from "@/lib/utils"; import { Dialog, DialogContent, DialogTrigger } from "../ui/dialog"; import useEmblaCarousel from "embla-carousel-react"; import { ChevronLeftIcon, ChevronRightIcon } from "lucide-react"; +import { useLangStore } from "@/store/lang"; interface Props { name: string; @@ -27,6 +28,9 @@ export const DesignerCard: FC = ({ const [emblaRef, emblaApi] = useEmblaCarousel({}); const [canScrollPrev, setCanScrollPrev] = useState(false); const [canScrollNext, setCanScrollNext] = useState(false); + const lang = useLangStore((state) => state.lang); + + const [activePhoto, setActivePhoto] = useState(100); useEffect(() => { if (!emblaApi) return; @@ -48,7 +52,7 @@ export const DesignerCard: FC = ({ @@ -62,14 +66,14 @@ export const DesignerCard: FC = ({ {name}
-

{name}

+

{name}

    {achievements.slice(0, 7).map((item, i) => ( -
  • {item.ru}
  • +
  • {lang === "ru" ? item?.ru : item?.en}
  • ))}
@@ -77,25 +81,52 @@ export const DesignerCard: FC = ({
- -
-
- -
-
-
{name}
+ + {activePhoto === 100 ? ( + <> +
+
+ +
+
+
{name}
+
+
+
+

-
-
-
-
+ + ) : ( +
+ -
+
+ +
+
+ )} + +

Работы дизайнера

-
+
{canScrollPrev && ( = ({ /> )}
- {images.map((item) => ( - + {images?.map((item, i) => ( +
+ setActivePhoto(i)} + src={item?.path} + className="size-full hover:scale-105 transition-all cursor-pointer overflow-hidden object-cover object-top" + /> +
))}
{canScrollNext && ( diff --git a/src/components/shared/home/home-actions.tsx b/src/components/shared/home/home-actions.tsx index f0b93fc..1c57ae5 100644 --- a/src/components/shared/home/home-actions.tsx +++ b/src/components/shared/home/home-actions.tsx @@ -27,7 +27,7 @@ export const HomeActions: FC = ({ className }) => { return (
-
+
{items.map((item, i) => !item.dropdown ? ( = ({ className }) => { diff --git a/src/components/shared/impressions/designers.tsx b/src/components/shared/impressions/designers.tsx index 8f2b242..0be8ee2 100644 --- a/src/components/shared/impressions/designers.tsx +++ b/src/components/shared/impressions/designers.tsx @@ -2,16 +2,26 @@ import { Container } from "@/components/layout"; import { DesignerCard, Loader } from "../"; import useEmblaCarousel from "embla-carousel-react"; import { useDesigners } from "@/hooks/tanstack/use-designers"; +import { useTranslation } from "react-i18next"; const Designers = () => { const [emblaRef] = useEmblaCarousel({ align: "center" }); + const { t } = useTranslation("main"); + + const { title, text } = t("impressions.designers", { + returnObjects: true, + }) as { + title: string; + text: string; + }; const { data, isPending } = useDesigners(1); return ( -
+
-

Дизайнеры одежды

+

{title}

+

{text}

diff --git a/src/components/shared/impressions/videos.tsx b/src/components/shared/impressions/videos.tsx index d412daf..9a782bf 100644 --- a/src/components/shared/impressions/videos.tsx +++ b/src/components/shared/impressions/videos.tsx @@ -9,9 +9,11 @@ const Videos = () => { return (
-

{title}

+

+ {title} +

-
+
{/* FIRST BLOCK */}
@@ -24,16 +26,16 @@ const Videos = () => { className="w-full size-full mb-2 rounded" />
-
+ {/*

Алена Ахмадуллина | 'Царевна-Лебедь' (74 симв.)

1/10 -
+
*/}
{/* SECOND BLOCK */} -
+ {/*

Смотрите также

1/10 @@ -59,7 +61,8 @@ const Videos = () => {
))}
-
+
*/} + {/* SECOND BLOCK */}
diff --git a/src/components/ui/button.tsx b/src/components/ui/button.tsx index 2bf9f22..b63c0d5 100644 --- a/src/components/ui/button.tsx +++ b/src/components/ui/button.tsx @@ -6,7 +6,7 @@ import { cn } from "@/lib/utils"; import { Loader2 } from "lucide-react"; const buttonVariants = cva( - "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-[18px] leading-[140%] font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", + "inline-flex items-center justify-center gap-2 rounded-md text-[18px] leading-[140%] font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", { variants: { variant: { diff --git a/src/pages/impressions.tsx b/src/pages/impressions.tsx index 17fc303..b36eaa9 100644 --- a/src/pages/impressions.tsx +++ b/src/pages/impressions.tsx @@ -1,5 +1,4 @@ import { Designers, Hero, Videos } from "@/components/shared/impressions"; -import { Button } from "@/components/ui/button"; import { useScrollTop } from "@/hooks/use-scroll-top"; export default function Impressions() { @@ -10,24 +9,6 @@ export default function Impressions() { -
-
-

- Тренды туркменского текстиля 2025/2026 -

-

- Скачайте наш эксклюзивный гид и первыми узнайте о новейших - тенденциях, инновационных материалах и вдохновляющих коллекциях, - которые определят будущее туркменской текстильной индустрии -

- -
-
); }