diff --git a/src/app/[locale]/about-us/AboutUs.scss b/src/app/[locale]/about-us/AboutUs.scss index 0776cd7..8e4b882 100644 --- a/src/app/[locale]/about-us/AboutUs.scss +++ b/src/app/[locale]/about-us/AboutUs.scss @@ -7,7 +7,7 @@ width: fit-content; } - img { + &__image { align-self: center; margin-bottom: 65px; border-radius: 12px; diff --git a/src/app/[locale]/about-us/page.tsx b/src/app/[locale]/about-us/page.tsx index f666656..671a80b 100644 --- a/src/app/[locale]/about-us/page.tsx +++ b/src/app/[locale]/about-us/page.tsx @@ -3,32 +3,68 @@ import "./AboutUs.scss"; import Image from "next/image"; import header from "./assets/header.svg"; import { Metadata } from "next"; +import BreadCrumbs from "@/features/BreadCrumbs/BreadCrumbs"; export const metadata: Metadata = { title: "KG ROAD | О нас", - description: - 'Страница "О Нас" KG ROAD', + description: 'Страница "О Нас" KG ROAD', }; const AboutUs = () => { return (
+ О нас - Header Image + Header Image
-

Transparency International-Кыргызстан - филиал международной организации Transparency International в Кыргызской Республике.

+

+ Transparency International-Кыргызстан - филиал международной + организации Transparency International в Кыргызской + Республике. +

Миссия ТИ-Кыргызстан

-

Продвижение эффективной общественной политики и надлежащего управления в целях предотвращения коррупции и усиления демократии в стране.

+

+ Продвижение эффективной общественной политики и надлежащего + управления в целях предотвращения коррупции и усиления + демократии в стране.{" "} +

Цели и приоритеты ТИ-Кыргызстан:

    -
  • - антикоррупционное просвещение населения, повышение общественного осознания значимости и важности борьбы с коррупцией в Кыргызстане;
  • -
  • - организация изучения практики и теории борьбы с коррупцией и участия в ней структур гражданского общества в Кыргызстане и других странах;
  • -
  • - содействие гражданам и организациям в реализации их конституционных прав и свобод;
  • -
  • - преимущественная ориентация на международный опыт уменьшения коррупции, освоение его технологий, ресурсов, а также включение структур гражданского общества в международный диалог борьбы с коррупцией.
  • +
  • + {" "} + - антикоррупционное просвещение населения, повышение + общественного осознания значимости и важности борьбы с + коррупцией в Кыргызстане; +
  • +
  • + {" "} + - организация изучения практики и теории борьбы с + коррупцией и участия в ней структур гражданского общества + в Кыргызстане и других странах; +
  • +
  • + {" "} + - содействие гражданам и организациям в реализации их + конституционных прав и свобод; +
  • +
  • + {" "} + - преимущественная ориентация на международный опыт + уменьшения коррупции, освоение его технологий, ресурсов, а + также включение структур гражданского общества в + международный диалог борьбы с коррупцией. +
-

Photo By Mzximvs VdB from Brussels, belgium - Road to Issyk-Kul (south shore), CC BY-SA 2.0

+

+ Photo By Mzximvs VdB from Brussels, belgium - Road to + Issyk-Kul (south shore), CC BY-SA 2.0 +

); }; diff --git a/src/app/[locale]/create-report/page.tsx b/src/app/[locale]/create-report/page.tsx index 1128158..1a781b0 100644 --- a/src/app/[locale]/create-report/page.tsx +++ b/src/app/[locale]/create-report/page.tsx @@ -2,11 +2,11 @@ import Typography from "@/shared/ui/components/Typography/Typography"; import "./CreateReport.scss"; import dynamic from "next/dynamic"; import { Metadata } from "next"; +import BreadCrumbs from "@/features/BreadCrumbs/BreadCrumbs"; export const metadata: Metadata = { title: "KG ROAD | Написать обращение", - description: - "Написать обращение KG ROAD", + description: "Написать обращение KG ROAD", }; const DynamicForm = dynamic( @@ -19,6 +19,7 @@ const DynamicForm = dynamic( const CreateReport = () => { return (
+ Написать обращение diff --git a/src/app/[locale]/news/News.scss b/src/app/[locale]/news/News.scss index 9d2ceba..59b067b 100644 --- a/src/app/[locale]/news/News.scss +++ b/src/app/[locale]/news/News.scss @@ -1,21 +1,25 @@ .news { display: flex; flex-direction: column; - gap: 40px; h2 { width: fit-content; + margin-bottom: 40px; } } @media screen and (max-width: 768px) { .news { - gap: 30px; + h2 { + margin-bottom: 30px; + } } } @media screen and (max-width: 550px) { .news { - gap: 20px; + h2 { + margin-bottom: 20px; + } } } diff --git a/src/app/[locale]/news/[id]/page.tsx b/src/app/[locale]/news/[id]/page.tsx index 0785d04..aee5392 100644 --- a/src/app/[locale]/news/[id]/page.tsx +++ b/src/app/[locale]/news/[id]/page.tsx @@ -6,6 +6,7 @@ import Image from "next/image"; import message from "./icons/message.svg"; import calendar from "./icons/calendar.svg"; import ReviewSection from "@/widgets/ReviewSection/ReviewSection"; +import BreadCrumbs from "@/features/BreadCrumbs/BreadCrumbs"; const NewsDetails = async ({ params, @@ -39,6 +40,7 @@ const NewsDetails = async ({ return (
+ {data.title}
diff --git a/src/app/[locale]/news/page.tsx b/src/app/[locale]/news/page.tsx index 1bb4250..5c8f5b4 100644 --- a/src/app/[locale]/news/page.tsx +++ b/src/app/[locale]/news/page.tsx @@ -1,3 +1,4 @@ +import BreadCrumbs from "@/features/BreadCrumbs/BreadCrumbs"; import "./News.scss"; import Typography from "@/shared/ui/components/Typography/Typography"; import NewsList from "@/widgets/NewsList/NewsList"; @@ -5,8 +6,7 @@ import { Metadata } from "next"; export const metadata: Metadata = { title: "KG ROAD | Новости", - description: - "Страница новостей KG ROAD", + description: "Страница новостей KG ROAD", }; const News = ({ @@ -18,6 +18,8 @@ const News = ({ }) => { return (
+ + Новости diff --git a/src/app/[locale]/profile/layout.tsx b/src/app/[locale]/profile/layout.tsx index 81f551b..8faf4ea 100644 --- a/src/app/[locale]/profile/layout.tsx +++ b/src/app/[locale]/profile/layout.tsx @@ -7,11 +7,11 @@ import { apiInstance } from "@/shared/config/apiConfig"; import { getServerSession } from "next-auth"; import { authConfig } from "@/shared/config/authConfig"; import { Metadata } from "next"; +import BreadCrumbs from "@/features/BreadCrumbs/BreadCrumbs"; export const metadata: Metadata = { title: "KG ROAD | Профиль", - description: - "Страница профиля KG ROAD", + description: "Страница профиля KG ROAD", }; const Profile = async ({ @@ -43,6 +43,7 @@ const Profile = async ({ return (
+ Личный кабинет diff --git a/src/app/[locale]/report/[id]/page.tsx b/src/app/[locale]/report/[id]/page.tsx index bc18787..4e56ddb 100644 --- a/src/app/[locale]/report/[id]/page.tsx +++ b/src/app/[locale]/report/[id]/page.tsx @@ -25,6 +25,7 @@ const ReportDetails = async ({ }: { params: { id: string }; }) => { + console.log(JSON.parse(params.id)); const getReportDetails = async () => { const res = await fetch( `${process.env.NEXT_PUBLIC_BASE_API}/report/${params.id}/`, @@ -37,7 +38,7 @@ const ReportDetails = async ({ return (
- +
{ return ( -
- +
+ +
+ +
); }; diff --git a/src/app/[locale]/sign-up/confirm-email/page.tsx b/src/app/[locale]/sign-up/confirm-email/page.tsx index 7338b7e..a7e8c3f 100644 --- a/src/app/[locale]/sign-up/confirm-email/page.tsx +++ b/src/app/[locale]/sign-up/confirm-email/page.tsx @@ -2,6 +2,7 @@ import "@/shared/ui/auth-classes.scss"; import Image from "next/image"; import mail from "./icons/mail.svg"; import ConfirmEmailForm from "@/widgets/forms/ConfirmEmailForm/ConfirmEmailForm"; +import BreadCrumbs from "@/features/BreadCrumbs/BreadCrumbs"; const ConfirmEmail = ({ searchParams, @@ -11,16 +12,24 @@ const ConfirmEmail = ({ }; }) => { return ( -
-
-
- Mail icon +
+ +
+
+
+ Mail icon +
+
+

Проверьте свою почту

+

Мы отправили код на почту {searchParams.email}

+
+
-
-

Проверьте свою почту

-

Мы отправили код на почту {searchParams.email}

-
-
); diff --git a/src/app/[locale]/statistics/Statistics.scss b/src/app/[locale]/statistics/Statistics.scss index 108189a..c965a06 100644 --- a/src/app/[locale]/statistics/Statistics.scss +++ b/src/app/[locale]/statistics/Statistics.scss @@ -1,21 +1,25 @@ .statistics { display: flex; flex-direction: column; - gap: 40px; h2 { width: fit-content; + margin-bottom: 40px; } } @media screen and (max-width: 768px) { .statistics { - gap: 30px; + h2 { + margin-bottom: 30px; + } } } @media screen and (max-width: 550px) { .statistics { - gap: 20px; + h2 { + margin-bottom: 20px; + } } } diff --git a/src/app/[locale]/statistics/page.tsx b/src/app/[locale]/statistics/page.tsx index c9a165a..a4a2868 100644 --- a/src/app/[locale]/statistics/page.tsx +++ b/src/app/[locale]/statistics/page.tsx @@ -2,11 +2,11 @@ import Typography from "@/shared/ui/components/Typography/Typography"; import "./Statistics.scss"; import StatisticsTable from "@/widgets/tables/StatisticsTable/StatisticsTable"; import { Metadata } from "next"; +import BreadCrumbs from "@/features/BreadCrumbs/BreadCrumbs"; export const metadata: Metadata = { title: "KG ROAD | Статистика", - description: - "Страница статистики KG ROAD", + description: "Страница статистики KG ROAD", }; const Statistics = ({ @@ -16,6 +16,7 @@ const Statistics = ({ }) => { return (
+ Статистика
diff --git a/src/app/[locale]/volunteers/Volunteers.scss b/src/app/[locale]/volunteers/Volunteers.scss index 7467029..da23cf0 100644 --- a/src/app/[locale]/volunteers/Volunteers.scss +++ b/src/app/[locale]/volunteers/Volunteers.scss @@ -1,21 +1,25 @@ .volunteers { display: flex; flex-direction: column; - gap: 40px; h2 { width: fit-content; + margin-bottom: 40px; } } @media screen and (max-width: 768px) { .volunteers { - gap: 30px; + h2 { + margin-bottom: 30px; + } } } @media screen and (max-width: 550px) { .volunteers { - gap: 20px; + h2 { + margin-bottom: 20px; + } } } diff --git a/src/app/[locale]/volunteers/page.tsx b/src/app/[locale]/volunteers/page.tsx index 66324c3..9f2c50e 100644 --- a/src/app/[locale]/volunteers/page.tsx +++ b/src/app/[locale]/volunteers/page.tsx @@ -2,16 +2,18 @@ import Typography from "@/shared/ui/components/Typography/Typography"; import "./Volunteers.scss"; import VolunteersTable from "@/widgets/tables/VolunteersTable/VolunteersTable"; import { Metadata } from "next"; +import BreadCrumbs from "@/features/BreadCrumbs/BreadCrumbs"; export const metadata: Metadata = { title: "KG ROAD | Волонтеры", - description: - "Страница волонтеров KG ROAD", + description: "Страница волонтеров KG ROAD", }; const Volunteers = () => { return (
+ + Волонтеры
diff --git a/src/entities/NewsCard/NewsCard.tsx b/src/entities/NewsCard/NewsCard.tsx index 45fc07d..43ba62b 100644 --- a/src/entities/NewsCard/NewsCard.tsx +++ b/src/entities/NewsCard/NewsCard.tsx @@ -58,7 +58,13 @@ const NewsCard: React.FC = ({

{sliceDescription(description)}

- + {t("details")}
diff --git a/src/features/BreadCrumbs/BreadCrumbs.scss b/src/features/BreadCrumbs/BreadCrumbs.scss index a27803f..d8f74dd 100644 --- a/src/features/BreadCrumbs/BreadCrumbs.scss +++ b/src/features/BreadCrumbs/BreadCrumbs.scss @@ -1,5 +1,29 @@ .breadcrumbs { + margin-bottom: 40px; display: flex; align-items: center; gap: 8px; + + span, + a { + display: flex; + align-items: center; + font-size: 14px; + font-weight: 400; + line-height: 150%; + } + + a { + gap: 8px; + color: rgb(72, 159, 225); + + img { + width: 16px; + height: 16px; + } + } + + span { + color: rgb(50, 48, 58); + } } diff --git a/src/features/BreadCrumbs/BreadCrumbs.tsx b/src/features/BreadCrumbs/BreadCrumbs.tsx index 68d7aae..841bee2 100644 --- a/src/features/BreadCrumbs/BreadCrumbs.tsx +++ b/src/features/BreadCrumbs/BreadCrumbs.tsx @@ -1,9 +1,65 @@ "use client"; +import { Link, usePathname } from "@/shared/config/navigation"; import "./BreadCrumbs.scss"; +import { useSearchParams } from "next/navigation"; +import Image from "next/image"; +import chevron from "./icons/chevron-right.svg"; -const BreadCrumbs = () => { - return
; +interface IBreadcrumbsProps { + homeRequired?: boolean; +} + +const BreadCrumbs: React.FC = ({ + homeRequired, +}: IBreadcrumbsProps) => { + const pathname = usePathname(); + const query = useSearchParams().get("title"); + const routes = pathname.split("/").filter((route) => route !== ""); + const tRoutes: Record = { + "about-us": "О нас", + "create-report": "Написать обращение", + news: "Новости", + profile: "Профиль", + "my-reports": "Мои обращения", + personal: "Личные данные", + report: "Обращение", + "sign-in": "Войти в аккаунт", + "forgot-password": "Восстановление пароля", + "reset-code": "Сброс пароля", + "sign-up": "Регистрация", + "confirm-email": "Потверждение почты", + statistics: "Статистика", + volunteers: "Волонтеры", + }; + return ( +
+ {homeRequired && ( + + Главная Chevron Right Icon + + )} + {routes.map((route, i, array) => { + if (parseInt(route)) { + if (routes[0] === "news") { + return {query}; + } + } + if (i === array.length - 1) { + return {tRoutes[route]}; + } else { + return route === "report" ? ( + {tRoutes[route]} + ) : ( + + {tRoutes[route]} + Chevron Right Icon + + ); + } + })} +
+ ); }; export default BreadCrumbs; diff --git a/src/features/BreadCrumbs/icons/chevron-right.svg b/src/features/BreadCrumbs/icons/chevron-right.svg new file mode 100644 index 0000000..c2a11f5 --- /dev/null +++ b/src/features/BreadCrumbs/icons/chevron-right.svg @@ -0,0 +1,14 @@ + + + Created with Pixso. + + + + + + + + + + + diff --git a/src/shared/ui/auth-classes.scss b/src/shared/ui/auth-classes.scss index 406bbfb..7862a38 100644 --- a/src/shared/ui/auth-classes.scss +++ b/src/shared/ui/auth-classes.scss @@ -29,8 +29,8 @@ } .auth-icon2 { - width: 60px; - height: 60px; + min-width: 60px; + min-height: 60px; display: flex; align-items: center; justify-content: center; diff --git a/src/widgets/ReviewSection/ReviewSection.tsx b/src/widgets/ReviewSection/ReviewSection.tsx index 868879c..8146c62 100644 --- a/src/widgets/ReviewSection/ReviewSection.tsx +++ b/src/widgets/ReviewSection/ReviewSection.tsx @@ -107,7 +107,6 @@ const ReviewSection: React.FC = ({ if (loader) return; if (observer.current) observer.current.disconnect(); const callback = function (entries: any) { - console.log(reviewCount, pageSize); if ( entries[0].isIntersecting && (reviews?.results.length as number) <= reviewCount