diff --git a/src/App.tsx b/src/App.tsx index a59b231..b513a7d 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -2,6 +2,7 @@ import { FC, useEffect, useState } from 'react' import { BrowserRouter } from 'react-router-dom' import 'swiper/swiper-bundle.css'; import 'rc-rate/assets/index.css'; +import './assets/fonts/roboto/roboto.css' import i18next from 'i18next' import { I18nextProvider } from 'react-i18next' import { QueryCache, QueryClient, QueryClientProvider } from '@tanstack/react-query' @@ -11,6 +12,7 @@ import { IApiErrorRepsonse } from './types/error.types' import MainRouter from './router/Main' import AuthRouter from './router/Auth' import { Pages } from './config/Pages' +import useNumberFont from './hooks/useNumberFont'; i18next.init({ interpolation: { escapeValue: false }, @@ -41,6 +43,8 @@ const queryClient = new QueryClient({ const App: FC = () => { + useNumberFont() + const [isLogin, setIsLogin] = useState<'checking' | 'isLogin' | 'isNotLogin'>('checking') useEffect(() => { @@ -55,6 +59,7 @@ const App: FC = () => { }, []) + return ( diff --git a/src/assets/fonts/roboto/Roboto-Black.ttf b/src/assets/fonts/roboto/Roboto-Black.ttf new file mode 100644 index 0000000..d51221a Binary files /dev/null and b/src/assets/fonts/roboto/Roboto-Black.ttf differ diff --git a/src/assets/fonts/roboto/Roboto-BlackItalic.ttf b/src/assets/fonts/roboto/Roboto-BlackItalic.ttf new file mode 100644 index 0000000..c71c549 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto-BlackItalic.ttf differ diff --git a/src/assets/fonts/roboto/Roboto-Bold.ttf b/src/assets/fonts/roboto/Roboto-Bold.ttf new file mode 100644 index 0000000..9d7cf22 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto-Bold.ttf differ diff --git a/src/assets/fonts/roboto/Roboto-BoldItalic.ttf b/src/assets/fonts/roboto/Roboto-BoldItalic.ttf new file mode 100644 index 0000000..f73d681 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto-BoldItalic.ttf differ diff --git a/src/assets/fonts/roboto/Roboto-ExtraBold.ttf b/src/assets/fonts/roboto/Roboto-ExtraBold.ttf new file mode 100644 index 0000000..7092a88 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto-ExtraBold.ttf differ diff --git a/src/assets/fonts/roboto/Roboto-ExtraBoldItalic.ttf b/src/assets/fonts/roboto/Roboto-ExtraBoldItalic.ttf new file mode 100644 index 0000000..a5536f5 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto-ExtraBoldItalic.ttf differ diff --git a/src/assets/fonts/roboto/Roboto-ExtraLight.ttf b/src/assets/fonts/roboto/Roboto-ExtraLight.ttf new file mode 100644 index 0000000..75608c6 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto-ExtraLight.ttf differ diff --git a/src/assets/fonts/roboto/Roboto-ExtraLightItalic.ttf b/src/assets/fonts/roboto/Roboto-ExtraLightItalic.ttf new file mode 100644 index 0000000..23dbbef Binary files /dev/null and b/src/assets/fonts/roboto/Roboto-ExtraLightItalic.ttf differ diff --git a/src/assets/fonts/roboto/Roboto-Italic.ttf b/src/assets/fonts/roboto/Roboto-Italic.ttf new file mode 100644 index 0000000..c3abaef Binary files /dev/null and b/src/assets/fonts/roboto/Roboto-Italic.ttf differ diff --git a/src/assets/fonts/roboto/Roboto-Light.ttf b/src/assets/fonts/roboto/Roboto-Light.ttf new file mode 100644 index 0000000..6fcd5f9 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto-Light.ttf differ diff --git a/src/assets/fonts/roboto/Roboto-LightItalic.ttf b/src/assets/fonts/roboto/Roboto-LightItalic.ttf new file mode 100644 index 0000000..a6e5047 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto-LightItalic.ttf differ diff --git a/src/assets/fonts/roboto/Roboto-Medium.ttf b/src/assets/fonts/roboto/Roboto-Medium.ttf new file mode 100644 index 0000000..d629e98 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto-Medium.ttf differ diff --git a/src/assets/fonts/roboto/Roboto-MediumItalic.ttf b/src/assets/fonts/roboto/Roboto-MediumItalic.ttf new file mode 100644 index 0000000..ef9ed1b Binary files /dev/null and b/src/assets/fonts/roboto/Roboto-MediumItalic.ttf differ diff --git a/src/assets/fonts/roboto/Roboto-Regular.ttf b/src/assets/fonts/roboto/Roboto-Regular.ttf new file mode 100644 index 0000000..7e3bb2f Binary files /dev/null and b/src/assets/fonts/roboto/Roboto-Regular.ttf differ diff --git a/src/assets/fonts/roboto/Roboto-SemiBold.ttf b/src/assets/fonts/roboto/Roboto-SemiBold.ttf new file mode 100644 index 0000000..3f34834 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto-SemiBold.ttf differ diff --git a/src/assets/fonts/roboto/Roboto-SemiBoldItalic.ttf b/src/assets/fonts/roboto/Roboto-SemiBoldItalic.ttf new file mode 100644 index 0000000..132cca1 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto-SemiBoldItalic.ttf differ diff --git a/src/assets/fonts/roboto/Roboto-Thin.ttf b/src/assets/fonts/roboto/Roboto-Thin.ttf new file mode 100644 index 0000000..6ee97b8 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto-Thin.ttf differ diff --git a/src/assets/fonts/roboto/Roboto-ThinItalic.ttf b/src/assets/fonts/roboto/Roboto-ThinItalic.ttf new file mode 100644 index 0000000..0381198 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto-ThinItalic.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_Condensed-Black.ttf b/src/assets/fonts/roboto/Roboto_Condensed-Black.ttf new file mode 100644 index 0000000..7529d1b Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_Condensed-Black.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_Condensed-BlackItalic.ttf b/src/assets/fonts/roboto/Roboto_Condensed-BlackItalic.ttf new file mode 100644 index 0000000..0c31e9f Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_Condensed-BlackItalic.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_Condensed-Bold.ttf b/src/assets/fonts/roboto/Roboto_Condensed-Bold.ttf new file mode 100644 index 0000000..c3ccd49 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_Condensed-Bold.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_Condensed-BoldItalic.ttf b/src/assets/fonts/roboto/Roboto_Condensed-BoldItalic.ttf new file mode 100644 index 0000000..d269187 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_Condensed-BoldItalic.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_Condensed-ExtraBold.ttf b/src/assets/fonts/roboto/Roboto_Condensed-ExtraBold.ttf new file mode 100644 index 0000000..782442a Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_Condensed-ExtraBold.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_Condensed-ExtraBoldItalic.ttf b/src/assets/fonts/roboto/Roboto_Condensed-ExtraBoldItalic.ttf new file mode 100644 index 0000000..aeff7c2 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_Condensed-ExtraBoldItalic.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_Condensed-ExtraLight.ttf b/src/assets/fonts/roboto/Roboto_Condensed-ExtraLight.ttf new file mode 100644 index 0000000..16a1560 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_Condensed-ExtraLight.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_Condensed-ExtraLightItalic.ttf b/src/assets/fonts/roboto/Roboto_Condensed-ExtraLightItalic.ttf new file mode 100644 index 0000000..0f6fe70 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_Condensed-ExtraLightItalic.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_Condensed-Italic.ttf b/src/assets/fonts/roboto/Roboto_Condensed-Italic.ttf new file mode 100644 index 0000000..3b387eb Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_Condensed-Italic.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_Condensed-Light.ttf b/src/assets/fonts/roboto/Roboto_Condensed-Light.ttf new file mode 100644 index 0000000..e70c357 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_Condensed-Light.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_Condensed-LightItalic.ttf b/src/assets/fonts/roboto/Roboto_Condensed-LightItalic.ttf new file mode 100644 index 0000000..9f623e0 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_Condensed-LightItalic.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_Condensed-Medium.ttf b/src/assets/fonts/roboto/Roboto_Condensed-Medium.ttf new file mode 100644 index 0000000..dd2842b Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_Condensed-Medium.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_Condensed-MediumItalic.ttf b/src/assets/fonts/roboto/Roboto_Condensed-MediumItalic.ttf new file mode 100644 index 0000000..80ff64e Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_Condensed-MediumItalic.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_Condensed-Regular.ttf b/src/assets/fonts/roboto/Roboto_Condensed-Regular.ttf new file mode 100644 index 0000000..5af42d4 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_Condensed-Regular.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_Condensed-SemiBold.ttf b/src/assets/fonts/roboto/Roboto_Condensed-SemiBold.ttf new file mode 100644 index 0000000..4297f17 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_Condensed-SemiBold.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_Condensed-SemiBoldItalic.ttf b/src/assets/fonts/roboto/Roboto_Condensed-SemiBoldItalic.ttf new file mode 100644 index 0000000..6cb4656 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_Condensed-SemiBoldItalic.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_Condensed-Thin.ttf b/src/assets/fonts/roboto/Roboto_Condensed-Thin.ttf new file mode 100644 index 0000000..1ccebcc Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_Condensed-Thin.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_Condensed-ThinItalic.ttf b/src/assets/fonts/roboto/Roboto_Condensed-ThinItalic.ttf new file mode 100644 index 0000000..e58e966 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_Condensed-ThinItalic.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_SemiCondensed-Black.ttf b/src/assets/fonts/roboto/Roboto_SemiCondensed-Black.ttf new file mode 100644 index 0000000..8eedb64 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_SemiCondensed-Black.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_SemiCondensed-BlackItalic.ttf b/src/assets/fonts/roboto/Roboto_SemiCondensed-BlackItalic.ttf new file mode 100644 index 0000000..19a5096 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_SemiCondensed-BlackItalic.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_SemiCondensed-Bold.ttf b/src/assets/fonts/roboto/Roboto_SemiCondensed-Bold.ttf new file mode 100644 index 0000000..98d7b0d Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_SemiCondensed-Bold.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_SemiCondensed-BoldItalic.ttf b/src/assets/fonts/roboto/Roboto_SemiCondensed-BoldItalic.ttf new file mode 100644 index 0000000..8604aee Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_SemiCondensed-BoldItalic.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_SemiCondensed-ExtraBold.ttf b/src/assets/fonts/roboto/Roboto_SemiCondensed-ExtraBold.ttf new file mode 100644 index 0000000..36423c3 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_SemiCondensed-ExtraBold.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_SemiCondensed-ExtraBoldItalic.ttf b/src/assets/fonts/roboto/Roboto_SemiCondensed-ExtraBoldItalic.ttf new file mode 100644 index 0000000..b40ce77 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_SemiCondensed-ExtraBoldItalic.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_SemiCondensed-ExtraLight.ttf b/src/assets/fonts/roboto/Roboto_SemiCondensed-ExtraLight.ttf new file mode 100644 index 0000000..e1c25a0 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_SemiCondensed-ExtraLight.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_SemiCondensed-ExtraLightItalic.ttf b/src/assets/fonts/roboto/Roboto_SemiCondensed-ExtraLightItalic.ttf new file mode 100644 index 0000000..929a093 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_SemiCondensed-ExtraLightItalic.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_SemiCondensed-Italic.ttf b/src/assets/fonts/roboto/Roboto_SemiCondensed-Italic.ttf new file mode 100644 index 0000000..23454ff Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_SemiCondensed-Italic.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_SemiCondensed-Light.ttf b/src/assets/fonts/roboto/Roboto_SemiCondensed-Light.ttf new file mode 100644 index 0000000..b9aedcd Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_SemiCondensed-Light.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_SemiCondensed-LightItalic.ttf b/src/assets/fonts/roboto/Roboto_SemiCondensed-LightItalic.ttf new file mode 100644 index 0000000..c096473 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_SemiCondensed-LightItalic.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_SemiCondensed-Medium.ttf b/src/assets/fonts/roboto/Roboto_SemiCondensed-Medium.ttf new file mode 100644 index 0000000..e9c34d6 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_SemiCondensed-Medium.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_SemiCondensed-MediumItalic.ttf b/src/assets/fonts/roboto/Roboto_SemiCondensed-MediumItalic.ttf new file mode 100644 index 0000000..ab34b70 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_SemiCondensed-MediumItalic.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_SemiCondensed-Regular.ttf b/src/assets/fonts/roboto/Roboto_SemiCondensed-Regular.ttf new file mode 100644 index 0000000..36109ba Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_SemiCondensed-Regular.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_SemiCondensed-SemiBold.ttf b/src/assets/fonts/roboto/Roboto_SemiCondensed-SemiBold.ttf new file mode 100644 index 0000000..6d10b33 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_SemiCondensed-SemiBold.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_SemiCondensed-SemiBoldItalic.ttf b/src/assets/fonts/roboto/Roboto_SemiCondensed-SemiBoldItalic.ttf new file mode 100644 index 0000000..e88bc4a Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_SemiCondensed-SemiBoldItalic.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_SemiCondensed-Thin.ttf b/src/assets/fonts/roboto/Roboto_SemiCondensed-Thin.ttf new file mode 100644 index 0000000..8ed8d79 Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_SemiCondensed-Thin.ttf differ diff --git a/src/assets/fonts/roboto/Roboto_SemiCondensed-ThinItalic.ttf b/src/assets/fonts/roboto/Roboto_SemiCondensed-ThinItalic.ttf new file mode 100644 index 0000000..81afeea Binary files /dev/null and b/src/assets/fonts/roboto/Roboto_SemiCondensed-ThinItalic.ttf differ diff --git a/src/assets/fonts/roboto/roboto.css b/src/assets/fonts/roboto/roboto.css new file mode 100644 index 0000000..08a19bf --- /dev/null +++ b/src/assets/fonts/roboto/roboto.css @@ -0,0 +1,143 @@ +@font-face { + font-family: "Roboto"; + src: url("Roboto-Black.ttf") format("truetype"); + font-weight: 900; + font-style: normal; + unicode-range: U+30-39; +} + +@font-face { + font-family: "Roboto"; + src: url("Roboto-BlackItalic.ttf") format("truetype"); + font-weight: 900; + font-style: italic; + unicode-range: U+30-39; +} + +@font-face { + font-family: "Roboto"; + src: url("Roboto-Bold.ttf") format("truetype"); + font-weight: 700; + font-style: normal; + unicode-range: U+30-39; +} + +@font-face { + font-family: "Roboto"; + src: url("Roboto-BoldItalic.ttf") format("truetype"); + font-weight: 700; + font-style: italic; + unicode-range: U+30-39; +} + +@font-face { + font-family: "Roboto"; + src: url("Roboto-ExtraBold.ttf") format("truetype"); + font-weight: 800; + font-style: normal; + unicode-range: U+30-39; +} + +@font-face { + font-family: "Roboto"; + src: url("Roboto-ExtraBoldItalic.ttf") format("truetype"); + font-weight: 800; + font-style: italic; + unicode-range: U+30-39; +} + +@font-face { + font-family: "Roboto"; + src: url("Roboto-ExtraLight.ttf") format("truetype"); + font-weight: 200; + font-style: normal; + unicode-range: U+30-39; +} + +@font-face { + font-family: "Roboto"; + src: url("Roboto-ExtraLightItalic.ttf") format("truetype"); + font-weight: 200; + font-style: italic; + unicode-range: U+30-39; +} + +@font-face { + font-family: "Roboto"; + src: url("Roboto-Italic.ttf") format("truetype"); + font-weight: 400; + font-style: italic; + unicode-range: U+30-39; +} + +@font-face { + font-family: "Roboto"; + src: url("Roboto-Light.ttf") format("truetype"); + font-weight: 300; + font-style: normal; + unicode-range: U+30-39; +} + +@font-face { + font-family: "Roboto"; + src: url("Roboto-LightItalic.ttf") format("truetype"); + font-weight: 300; + font-style: italic; + unicode-range: U+30-39; +} + +@font-face { + font-family: "Roboto"; + src: url("Roboto-Medium.ttf") format("truetype"); + font-weight: 500; + font-style: normal; + unicode-range: U+30-39; +} + +@font-face { + font-family: "Roboto"; + src: url("Roboto-MediumItalic.ttf") format("truetype"); + font-weight: 500; + font-style: italic; + unicode-range: U+30-39; +} + +@font-face { + font-family: "Roboto"; + src: url("Roboto-Regular.ttf") format("truetype"); + font-weight: 400; + font-style: normal; + unicode-range: U+30-39; +} + +@font-face { + font-family: "Roboto"; + src: url("Roboto-SemiBold.ttf") format("truetype"); + font-weight: 600; + font-style: normal; + unicode-range: U+30-39; +} + +@font-face { + font-family: "Roboto"; + src: url("Roboto-SemiBoldItalic.ttf") format("truetype"); + font-weight: 600; + font-style: italic; + unicode-range: U+30-39; +} + +@font-face { + font-family: "Roboto"; + src: url("Roboto-Thin.ttf") format("truetype"); + font-weight: 100; + font-style: normal; + unicode-range: U+30-39; +} + +@font-face { + font-family: "Roboto"; + src: url("Roboto-ThinItalic.ttf") format("truetype"); + font-weight: 100; + font-style: italic; + unicode-range: U+30-39; +} diff --git a/src/hooks/useNumberFont.ts b/src/hooks/useNumberFont.ts new file mode 100644 index 0000000..62d48fa --- /dev/null +++ b/src/hooks/useNumberFont.ts @@ -0,0 +1,82 @@ +import { useEffect } from "react"; + +const useDetectLatinAndNumbers = () => { + useEffect(() => { + // تابعی برای اضافه کردن کلاس‌ها + const addClassIfContainsLatinOrNumbers = (element: HTMLElement) => { + element.childNodes.forEach((node) => { + if (node.nodeType === Node.TEXT_NODE) { + const textContent = node.nodeValue; + if (textContent) { + // اگر عدد داشت + if (/\d/.test(textContent)) { + element.classList.add("has-number"); + } + // اگر حرف لاتین داشت + if (/[a-zA-Z]/.test(textContent)) { + element.classList.add("has-latin"); + } + } + } else if (node.nodeType === Node.ELEMENT_NODE) { + const el = node as HTMLElement; + + // بررسی `input` و `textarea` + if ( + el instanceof HTMLInputElement || + el instanceof HTMLTextAreaElement + ) { + const checkAndApplyClasses = () => { + // با استفاده از requestAnimationFrame برای جلوگیری از به‌هم‌ریختگی در سافاری + requestAnimationFrame(() => { + if (/\d/.test(el.value)) { + el.classList.add("has-number"); + } else { + el.classList.remove("has-number"); + } + + if (/[a-zA-Z]/.test(el.value)) { + el.classList.add("has-latin"); + } else { + el.classList.remove("has-latin"); + } + }); + }; + + // مقدار اولیه را بررسی کنیم + checkAndApplyClasses(); + + // هر تغییری را بررسی کنیم + el.addEventListener("input", checkAndApplyClasses); + } + + // باز هم اضافه کردن کلاس به سایر عناصر + addClassIfContainsLatinOrNumbers(el); + } + }); + }; + + // استفاده از MutationObserver برای نظارت بر تغییرات DOM + const observer = new MutationObserver((mutationsList) => { + mutationsList.forEach((mutation: any) => { + // تایپ دقیق‌تر برای جلوگیری از خطا در تایپ‌اسکریپت + if ( + mutation.type === "childList" || + mutation.type === "subtree" || + mutation.type === "attributes" + ) { + addClassIfContainsLatinOrNumbers(mutation.target as HTMLElement); + } + }); + }); + + // شروع به نظارت بر تمام تغییرات در بدنه صفحه + observer.observe(document.body, { childList: true, subtree: true }); + + // در نهایت، پاکسازی اثرات هنگام خروج از کامپوننت + return () => { + observer.disconnect(); + }; + }, []); +}; + +export default useDetectLatinAndNumbers; diff --git a/src/index.css b/src/index.css index 8695c34..ce2e452 100644 --- a/src/index.css +++ b/src/index.css @@ -5,6 +5,7 @@ html { direction: rtl; overflow: hidden; + max-width: 100%; } body { @@ -17,7 +18,16 @@ body { background: #eceef6; font-weight: 300; overflow: hidden; + font-feature-settings: "lnum"; /* اطمینان از نمایش اعداد انگلیسی */ } + +html, +body { + height: 100%; + margin: 0; + overflow: hidden !important; /* اعمال overflow: hidden با !important */ +} + html, body, #root { @@ -183,3 +193,9 @@ tbody tr { clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 0); } } + +.has-latin, +.number, +.has-number { + font-family: Roboto !important; +}