From 69ed9c0506789a4dc93001c789f27a2cfb6b0cc0 Mon Sep 17 00:00:00 2001 From: C4rnivore Date: Wed, 23 Jul 2025 10:57:44 +0500 Subject: [PATCH] Cookies popup upd --- public/img/components/popups/cookies.png | Bin 0 -> 7333 bytes src/app/layout.tsx | 4 +- src/components/CookiesPopup.tsx | 71 +++++++++++++++++++++++ src/components/modals/PopupModal.tsx | 66 --------------------- src/stores/usePopupStore.ts | 11 ++-- 5 files changed, 78 insertions(+), 74 deletions(-) create mode 100644 public/img/components/popups/cookies.png create mode 100644 src/components/CookiesPopup.tsx delete mode 100644 src/components/modals/PopupModal.tsx diff --git a/public/img/components/popups/cookies.png b/public/img/components/popups/cookies.png new file mode 100644 index 0000000000000000000000000000000000000000..1ff91dfde9098e08c080d01f87709c2f884ed447 GIT binary patch literal 7333 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 - + {children} diff --git a/src/components/CookiesPopup.tsx b/src/components/CookiesPopup.tsx new file mode 100644 index 0000000..13d628a --- /dev/null +++ b/src/components/CookiesPopup.tsx @@ -0,0 +1,71 @@ +"use client"; + +/* eslint-disable react-hooks/exhaustive-deps */ +/* eslint-disable @next/next/no-img-element */ +import { useEffect } from "react"; +import { motion } from "framer-motion"; +import Link from "next/link"; +import { usePopupStore } from "@/stores/usePopupStore"; +import { Button } from "@/ui/Button"; + +function CookiesPopup() { + const { isShowCookiesPopup, setIsShowCookiesPopup } = usePopupStore(); + + function handlePopupClick() { + setIsShowCookiesPopup(false); + } + + useEffect(() => { + if (isShowCookiesPopup === undefined) { + const timeout = setTimeout(() => { + setIsShowCookiesPopup(true); + }, 500); + return () => clearTimeout(timeout); + } + }, []); + + return ( + <> + {isShowCookiesPopup && ( + +
+
+
+ popup +

+ We use{" "} + + cookies + +

+
+

+ They help us understand how you interact with our site and make + it more convenient and better. +

+
+ +
+
+ )} + + ); +} + +export default CookiesPopup; diff --git a/src/components/modals/PopupModal.tsx b/src/components/modals/PopupModal.tsx deleted file mode 100644 index 6f0f765..0000000 --- a/src/components/modals/PopupModal.tsx +++ /dev/null @@ -1,66 +0,0 @@ -"use client"; - -/* eslint-disable react-hooks/exhaustive-deps */ -import CloseIcon from "@/components/icons/CloseIcon"; -import TgIcon from "@/components/icons/TgIcon"; -import { useEffect } from "react"; -import { motion } from "framer-motion"; -import Link from "next/link"; -import { usePopupStore } from "@/stores/usePopupStore"; -import { useTranslations } from "next-intl"; - -function Popup() { - const { isShowPopup, setIsShowPopup } = usePopupStore(); - - function handlePopupClick() { - setIsShowPopup(false); - } - - useEffect(() => { - if (usePopupStore.getState().isShowPopup === undefined) { - const timeout = setTimeout(() => { - setIsShowPopup(true); - }, 10000); - return () => clearTimeout(timeout); - } - }, []); - - const t = useTranslations("popup"); - - return ( - <> - {isShowPopup && ( - -
-

{t("text")}

- -
- -
- {t("link")} - - -
-
- )} - - ); -} - -export default Popup; diff --git a/src/stores/usePopupStore.ts b/src/stores/usePopupStore.ts index 4107418..8d4c2ef 100644 --- a/src/stores/usePopupStore.ts +++ b/src/stores/usePopupStore.ts @@ -2,19 +2,18 @@ import { create } from 'zustand'; import { devtools, persist } from 'zustand/middleware'; interface IPopupStore { - isShowPopup: boolean | undefined; - setIsShowPopup: (isShowPopup: boolean) => void; + isShowCookiesPopup: boolean | undefined; + setIsShowCookiesPopup: (isShowPopup: boolean) => void; } export const usePopupStore = create()( - devtools( persist( set => ({ - isShowPopup: undefined, - setIsShowPopup: (isShowPopup: boolean) => set({ isShowPopup }), + isShowCookiesPopup: undefined, + setIsShowCookiesPopup: (isShowCookiesPopup: boolean) => set({ isShowCookiesPopup }), }), { name: 'popup', }, ), - )); + );