feat: add certificate gallery and certifications section components

- Implemented CertificateGallery component to display certification images in a gallery format.
- Created CertificationsSection component to showcase certifications with titles and descriptions.
- Enhanced Gallery component to support animations and keyboard navigation.
- Introduced Select component for dropdown selection with images.
- Added utility functions for API responses and pagination handling.
- Implemented localization functions for text and content.
- Created a custom hook for detecting clicks outside of a component.
This commit is contained in:
2026-07-19 07:59:16 +03:30
parent 478b550c51
commit 730e2d8ca8
60 changed files with 1859 additions and 1403 deletions
+10 -4
View File
@@ -1,14 +1,15 @@
'use client';
import routeFactory from '@/assets/constants/routeFactory';
import images from '@/assets/images/images';
import { Icon } from '@/components/uikit/icons';
import { useTranslations } from 'next-intl';
import Image from 'next/image';
import Link from 'next/link';
import { usePathname, useParams } from 'next/navigation';
import { useParams, usePathname } from 'next/navigation';
import { useState } from 'react';
import HamburgerMenu from '../hamburgerMenu';
import { useTranslations } from 'next-intl';
import routeFactory from '@/assets/constants/routeFactory';
import LanguageSwitch from '../languageSwitch';
export default function Navbar() {
const [open, setOpen] = useState<boolean>(false);
@@ -50,7 +51,7 @@ export default function Navbar() {
/>
</Link>
<ul className="hidden space-x-6 text-sm lg:flex lg:text-base">
<ul className="hidden items-center space-x-6 text-sm lg:flex lg:text-base">
{links.map(({ route, title }) => (
<li key={route()}>
<Link
@@ -61,12 +62,17 @@ export default function Navbar() {
</Link>
</li>
))}
<div className="h-4 w-px bg-white opacity-35"></div>
<li>
<a className="flex items-center gap-2" href="tel:+098123456789">
<Icon name="phone" className="text-primary" />
<p>+098 123456789</p>
</a>
</li>
<li>
<LanguageSwitch />
</li>
</ul>
{!open && (