diff --git a/messages/en.d.json.ts b/messages/en.d.json.ts index 7563cdc..950a8e3 100644 --- a/messages/en.d.json.ts +++ b/messages/en.d.json.ts @@ -102,6 +102,9 @@ declare const messages: { "com_contact_textarea_error": "Message must be at least 10 characters long.", "com_contact_button_submit": "Submit Message", "pages_notFound_title": "404 Not Found Page", + + "com_modal_language_title": "Please select language", + "com_modal_language_close": "Close", "pages_notFound_description": "You can either head back to the Homepage or try a search.", "pages_notFound_button": "Go To Home", diff --git a/messages/en.json b/messages/en.json index f862f3a..b187862 100644 --- a/messages/en.json +++ b/messages/en.json @@ -99,6 +99,9 @@ "com_contact_textarea_error": "Message must be at least 10 characters long.", "com_contact_button_submit": "Submit Message", "pages_notFound_title": "404 Not Found Page", + + "com_modal_language_title": "Please select language", + "com_modal_language_close": "Close", "pages_notFound_description": "You can either head back to the Homepage or try a search.", "pages_notFound_button": "Go To Home", diff --git a/messages/fa.json b/messages/fa.json index 1884478..f67e281 100644 --- a/messages/fa.json +++ b/messages/fa.json @@ -98,6 +98,9 @@ "com_contact_phone_error": "شماره تماس معتبر نیست (مثلاً: 09123456789)", "com_contact_textarea_error": "پیام باید حداقل ۱۰ کاراکتر باشد", "com_contact_button_submit": "ارسال پیام", + + "com_modal_language_title": "لطفاً زبان را انتخاب کنید", + "com_modal_language_close": "بستن", "pages_notFound_title": "صفحه مورد نظر پیدا نشد.", "pages_notFound_description": "صفحهای که به دنبال آن هستید وجود ندارد یا منتقل شده است. لطفاً آدرس را بررسی کنید یا به صفحه اصلی بازگردید.", "pages_notFound_button": "بازگشت به صفحه اصلی", diff --git a/src/assets/images/en_square.png b/src/assets/images/en_square.png new file mode 100644 index 0000000..a87ac24 Binary files /dev/null and b/src/assets/images/en_square.png differ diff --git a/src/assets/images/images.ts b/src/assets/images/images.ts index 538d61b..1807385 100644 --- a/src/assets/images/images.ts +++ b/src/assets/images/images.ts @@ -13,6 +13,8 @@ import product1 from './product1.png'; import notFound from './404.png'; import langEn from './lang_en.png'; import langFa from './lang_fa.png'; +import en from './en_square.png'; +import fa from './ir_square.png'; export default { homeBanner, logo, @@ -27,6 +29,7 @@ export default { homeProductBack, whatWeDoImage, product1, + fa,en, langEn, langFa, }; diff --git a/src/assets/images/ir_square.png b/src/assets/images/ir_square.png new file mode 100644 index 0000000..8e019cf Binary files /dev/null and b/src/assets/images/ir_square.png differ diff --git a/src/components/layout/languageModal/index.tsx b/src/components/layout/languageModal/index.tsx index b5d5c27..baa9ed8 100644 --- a/src/components/layout/languageModal/index.tsx +++ b/src/components/layout/languageModal/index.tsx @@ -2,70 +2,58 @@ import { useEffect, useState } from 'react'; import { TLocales } from '@/models/layout'; -import Button, { IconButton } from '@/components/uikit/button'; import images from '@/assets/images/images'; import Image from 'next/image'; -import { Icon } from '@/components/uikit/icons'; +import { useTranslations } from 'next-intl'; const languages = [ { title: 'EN', - image: images.langEn, + image: images.en, locale: 'en', }, { title: 'FA', - image: images.langFa, + image: images.fa, locale: 'fa', }, ]; export default function ModalLanguageSelector() { - const [showModal, setShowModal] = useState(false); - + const [show, setShow] = useState(false); + const t = useTranslations(); useEffect(() => { - const alreadySelected = localStorage.getItem('selectedLocale'); - if (!alreadySelected) { - setShowModal(true); - } + const selected = localStorage.getItem('selectedLocale'); + if (!selected) setShow(true); }, []); - const handleCancel = () => { - setShowModal(false); - }; - const changeLocale = (locale: TLocales) => { localStorage.setItem('selectedLocale', locale); - const currentPath = window.location.pathname; - const newPath = currentPath.replace(/^\/(en|fa)/, ''); - window.location.pathname = `/${locale}${newPath}`; + const path = window.location.pathname.replace(/^\/(en|fa)/, ''); + window.location.pathname = `/${locale}${path}`; }; + const closeModal = () => setShow(false); - if (!showModal) return null; + if (!show) return null; return ( -