change by hossein
parent
1724ff78b8
commit
d0cc908b25
|
@ -1,19 +1,20 @@
|
|||
import Link from "next/link";
|
||||
import MovingLogos from "./MovingLogos/page";
|
||||
import { motion } from "framer-motion";
|
||||
import { fadeIn, textVariant } from "src/utils/motion";
|
||||
import { useTranslations } from "next-intl";
|
||||
import { useLocale, useTranslations } from "next-intl";
|
||||
import { Link } from "src/i18n/routing";
|
||||
|
||||
const Hero = () => {
|
||||
const t = useTranslations("page");
|
||||
|
||||
console.log("ssssst", t);
|
||||
const locale = useLocale();
|
||||
console.log("ssssst", locale);
|
||||
|
||||
return (
|
||||
<section className="relative w-full h-screen mx-auto">
|
||||
<div className="flex justify-center pt-[200px] lg:pt-[300px] lg:ml-0">
|
||||
<div className="ml-1 text-center">
|
||||
<div className="flex justify-center items-start">
|
||||
<div className="flex items-start justify-center">
|
||||
<small className="text-[20px] md:text-[60px] lg:text-[80px] mx-2 text-primary-300 xs:hidden lg:block">
|
||||
"
|
||||
</small>
|
||||
|
@ -38,7 +39,7 @@ const Hero = () => {
|
|||
|
||||
<Link href="/app/login">
|
||||
<div className="flex justify-center mt-10">
|
||||
<button className="btn btn-primary rounded-full px-8 sm:px-16 lg:px-20 py-3 sm:py-5 text-black text-sm sm:text-lg font-bold">
|
||||
<button className="px-8 py-3 text-sm font-bold text-black rounded-full btn btn-primary sm:px-16 lg:px-20 sm:py-5 sm:text-lg">
|
||||
{t("button")}{" "}
|
||||
</button>
|
||||
</div>
|
||||
|
@ -50,7 +51,7 @@ const Hero = () => {
|
|||
<p className="opacity-60 text-white font-light text-[14px] xs:text-[16px] sm:text-[20px] lg:text-[22px] leading-[20px] lg:leading-[24px] text-center w-10/12 sm:w-8/12 mx-auto">
|
||||
{t("brand")}{" "}
|
||||
</p>
|
||||
<div className="p-5 relative overflow-hidden w-10/12 mx-auto opacity-40 fade-mask">
|
||||
<div className="relative w-10/12 p-5 mx-auto overflow-hidden opacity-40 fade-mask">
|
||||
<MovingLogos />
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -3,12 +3,11 @@ import React, { useEffect, useState } from "react";
|
|||
|
||||
import { menu, close } from "src/assets";
|
||||
import { styles } from "src/style";
|
||||
import Link from "next/link";
|
||||
import logo2 from "../../src/assets/logo2.png";
|
||||
import Image from "next/image";
|
||||
import { useLocale, useTranslations } from "next-intl";
|
||||
import PersianNumberMemo from "plugins/PersianNumber";
|
||||
import { routing } from "../../src/i18n/routing";
|
||||
import { Link, routing } from "../../src/i18n/routing";
|
||||
import { useRouter } from "next/navigation";
|
||||
|
||||
// Fix the `useTranslations` key (removed space at the end)
|
||||
|
@ -108,7 +107,7 @@ const Navbar = () => {
|
|||
className="w-[120px] object-contain "
|
||||
/>{" "}
|
||||
</Link>
|
||||
<ul className="list-none hidden sm:flex flex-row gap-10 p-3 mx-10">
|
||||
<ul className="flex-row hidden gap-10 p-3 mx-10 list-none sm:flex">
|
||||
{navItems.map((nav) => (
|
||||
<li
|
||||
key={nav.id}
|
||||
|
@ -131,7 +130,7 @@ const Navbar = () => {
|
|||
|
||||
<div className="flex">
|
||||
<Link href="/app/login">
|
||||
<button className="btn btn-primary px-10 rounded-full text-sm py-2 xs:hidden lg:block">
|
||||
<button className="px-10 py-2 text-sm rounded-full btn btn-primary xs:hidden lg:block">
|
||||
{t("button")}{" "}
|
||||
</button>
|
||||
</Link>
|
||||
|
@ -139,7 +138,7 @@ const Navbar = () => {
|
|||
<div className="relative">
|
||||
{/* Language button */}
|
||||
<div
|
||||
className="w-9 h-9 bg-primary-300 rounded-full mx-2 cursor-pointer flex items-center justify-center"
|
||||
className="flex items-center justify-center mx-2 rounded-full cursor-pointer w-9 h-9 bg-primary-300"
|
||||
onClick={() => setIsOpenLang(!isOpenLang)}
|
||||
>
|
||||
<p className="mb-0 text-sm">
|
||||
|
@ -150,7 +149,7 @@ const Navbar = () => {
|
|||
{/* Dropdown box for language selection */}
|
||||
|
||||
{isOpenLang && (
|
||||
<div className="absolute bg-white shadow-lg rounded-full w-9 mx-2 mt-2 ">
|
||||
<div className="absolute mx-2 mt-2 bg-white rounded-full shadow-lg w-9 ">
|
||||
{availableLocales.map((lang) => (
|
||||
<button
|
||||
key={lang.code}
|
||||
|
@ -167,7 +166,7 @@ const Navbar = () => {
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div className="sm:hidden flex flex-1 justify-end items-center">
|
||||
<div className="flex items-center justify-end flex-1 sm:hidden">
|
||||
<Image
|
||||
src={toggle ? close : menu}
|
||||
alt="menu"
|
||||
|
@ -180,7 +179,7 @@ const Navbar = () => {
|
|||
!toggle ? "hidden" : "flex"
|
||||
} p-6 bg-white absolute top-20 right-5 my-2 min-w-[140px] z-10 rounded-xl`}
|
||||
>
|
||||
<ul className="list-none flex justify-end items-start flex-1 flex-col gap-4">
|
||||
<ul className="flex flex-col items-start justify-end flex-1 gap-4 list-none">
|
||||
{navItems.map((nav) => (
|
||||
<li
|
||||
key={nav.id}
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import { useTranslations } from "next-intl";
|
||||
import Link from "next/link";
|
||||
import React, { useState } from "react";
|
||||
|
||||
|
@ -5,24 +6,23 @@ const PricingHero = () => {
|
|||
const [oneMonth, setOneMonth] = useState(0);
|
||||
const [threeMonth, setThreeMonth] = useState(0);
|
||||
const [oneYear, setOneYear] = useState(0);
|
||||
|
||||
const t = useTranslations("pricing");
|
||||
return (
|
||||
<div className="min-h-[100vh]">
|
||||
<div className="flex justify-center lg:pt-[150px] xs:pt-[100px] lg:ml-0">
|
||||
<div className=" ml-1 lg:w-8/12 xs:w-full text-center ">
|
||||
<div className="ml-1 text-center lg:w-8/12 xs:w-full">
|
||||
<h1 className="text-white font-semibold md:text-[80px] sm:text-[60px] xs:text-[40px] text-[18px] mt-4">
|
||||
Pricing
|
||||
{t("title")}
|
||||
</h1>
|
||||
<p className="mb-0 sm:text-[20px] xs:text-[20px] lg:text-center xs:text-center text-secondary tracking-wider text-gray-100 font-thin xs:px-5 ">
|
||||
Tailor your coffee shop management with our time-flexible pricing
|
||||
plans. All packages offer the same comprehensive features, differing
|
||||
only in duration to suit your business needs. Choose from monthly,
|
||||
quarterly, or annual options, each designed for ease and efficiency.
|
||||
{t("desc")}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="grid xs:grid-cols-1 lg:grid-cols-3 gap-10 xs:px-[20px] lg:px-[100px] mt-10">
|
||||
<div className=" p-3 flex">
|
||||
<div className="w-4/12 ">
|
||||
<div className="flex p-3 ">
|
||||
<div className="w-4/12 ">
|
||||
<div
|
||||
className={`bg-[#132420] p-4 rounded-l-3xl cursor-pointer tr03 ${
|
||||
oneMonth == 0 ? " " : "opacity-50"
|
||||
|
@ -30,7 +30,7 @@ const PricingHero = () => {
|
|||
onClick={() => setOneMonth(0)}
|
||||
>
|
||||
<p className="mb-0 text-center text-white xs:text-sm lg:text-xl">
|
||||
up 10 user
|
||||
{t("oneMounth.users1")}
|
||||
</p>
|
||||
</div>
|
||||
<div
|
||||
|
@ -40,7 +40,7 @@ const PricingHero = () => {
|
|||
onClick={() => setOneMonth(1)}
|
||||
>
|
||||
<p className="mb-0 text-center text-white xs:text-sm lg:text-xl">
|
||||
up 25 user
|
||||
{t("oneMounth.users2")}{" "}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
@ -51,41 +51,40 @@ const PricingHero = () => {
|
|||
onClick={() => setOneMonth(2)}
|
||||
>
|
||||
<p className="mb-0 text-center text-white xs:text-sm lg:text-xl">
|
||||
up 50 user
|
||||
{t("oneMounth.users3")}{" "}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="w-8/12 bg-[#132420] xs:p-5 lg:p-10 rounded-r-3xl rounded-bl-3xl">
|
||||
<h2 className="mb-0 text-center font-bold xs:text-[18px] lg:text-[25px] text-gray-400">
|
||||
1 Mounth
|
||||
{t("oneMounth.title")}{" "}
|
||||
</h2>
|
||||
|
||||
<p className="mb-0 text-center text-white xs:text-[25px] lg:text-[33px] font-bold">
|
||||
{oneMonth == 0
|
||||
? " 15,000,000 R"
|
||||
? t("oneMounth.pricing1")
|
||||
: oneMonth == 1
|
||||
? " 24,000,000 R"
|
||||
? t("oneMounth.pricing2")
|
||||
: oneMonth == 2
|
||||
? " 29,500,000 R"
|
||||
: " 15,000,000 R"}
|
||||
? t("oneMounth.pricing3")
|
||||
: t("oneMounth.pricing1")}
|
||||
</p>
|
||||
|
||||
<p className="mb-0 text-center text-gray-400 text-sm">
|
||||
It could be the best package for you, so feel free to use the
|
||||
14-day free trial
|
||||
<p className="mb-0 text-sm text-center text-gray-400">
|
||||
{t("oneMounth.desc")}{" "}
|
||||
</p>
|
||||
<div className="flex justify-center mt-10">
|
||||
<Link href="/app/login">
|
||||
<button className=" btn btn-primary px-10 rounded-full py-2 xs:hidden lg:block">
|
||||
Get started
|
||||
<button className="px-10 py-2 rounded-full btn btn-primary xs:hidden lg:block">
|
||||
{t("oneMounth.button")}{" "}
|
||||
</button>
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className=" p-3 flex">
|
||||
<div className="w-4/12 ">
|
||||
<div className="flex p-3 ">
|
||||
<div className="w-4/12 ">
|
||||
<div
|
||||
className={`bg-[#132420] p-4 rounded-l-3xl cursor-pointer tr03 ${
|
||||
threeMonth == 0 ? " " : "opacity-50"
|
||||
|
@ -93,7 +92,7 @@ const PricingHero = () => {
|
|||
onClick={() => setThreeMonth(0)}
|
||||
>
|
||||
<p className="mb-0 text-center text-white xs:text-sm lg:text-xl">
|
||||
up 10 user
|
||||
{t("threeMounth.users1")}
|
||||
</p>
|
||||
</div>
|
||||
<div
|
||||
|
@ -103,7 +102,7 @@ const PricingHero = () => {
|
|||
onClick={() => setThreeMonth(1)}
|
||||
>
|
||||
<p className="mb-0 text-center text-white xs:text-sm lg:text-xl">
|
||||
up 25 user
|
||||
{t("threeMounth.users2")}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
@ -114,41 +113,40 @@ const PricingHero = () => {
|
|||
onClick={() => setThreeMonth(2)}
|
||||
>
|
||||
<p className="mb-0 text-center text-white xs:text-sm lg:text-xl">
|
||||
up 50 user
|
||||
{t("threeMounth.users3")}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="w-8/12 bg-[#132420] xs:p-5 lg:p-10 rounded-r-3xl rounded-bl-3xl">
|
||||
<h2 className="mb-0 text-center font-bold xs:text-[18px] lg:text-[25px] text-gray-400">
|
||||
3 Mounth
|
||||
{t("threeMounth.title")}{" "}
|
||||
</h2>
|
||||
|
||||
<p className="mb-0 text-center text-white xs:text-[25px] lg:text-[33px] font-bold">
|
||||
{threeMonth == 0
|
||||
? " 36,000,000 R"
|
||||
? t("threeMounth.pricing1")
|
||||
: threeMonth == 1
|
||||
? " 57,600,000 R"
|
||||
? t("threeMounth.pricing2")
|
||||
: threeMonth == 2
|
||||
? " 70,800,000 R"
|
||||
: " 36,000,000 R"}{" "}
|
||||
? t("threeMounth.pricing3")
|
||||
: t("threeMounth.pricing1")}
|
||||
</p>
|
||||
|
||||
<p className="mb-0 text-center text-gray-400 text-sm">
|
||||
It could be the best package for you, so feel free to use the
|
||||
14-day free trial
|
||||
<p className="mb-0 text-sm text-center text-gray-400">
|
||||
{t("threeMounth.desc")}{" "}
|
||||
</p>
|
||||
<div className="flex justify-center mt-10">
|
||||
<Link href="/app/login">
|
||||
<button className=" btn btn-primary px-10 rounded-full py-2 xs:hidden lg:block">
|
||||
Get started
|
||||
<button className="px-10 py-2 rounded-full btn btn-primary xs:hidden lg:block">
|
||||
{t("threeMounth.button")}{" "}
|
||||
</button>
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className=" p-3 flex">
|
||||
<div className="w-4/12 ">
|
||||
<div className="flex p-3 ">
|
||||
<div className="w-4/12 ">
|
||||
<div
|
||||
className={`bg-[#132420] p-4 rounded-l-3xl cursor-pointer tr03 ${
|
||||
oneYear == 0 ? " " : "opacity-50"
|
||||
|
@ -156,7 +154,7 @@ const PricingHero = () => {
|
|||
onClick={() => setOneYear(0)}
|
||||
>
|
||||
<p className="mb-0 text-center text-white xs:text-sm lg:text-xl">
|
||||
up 10 user
|
||||
{t("sixMounth.users1")}{" "}
|
||||
</p>
|
||||
</div>
|
||||
<div
|
||||
|
@ -166,7 +164,7 @@ const PricingHero = () => {
|
|||
onClick={() => setOneYear(1)}
|
||||
>
|
||||
<p className="mb-0 text-center text-white xs:text-sm lg:text-xl">
|
||||
up 25 user
|
||||
{t("sixMounth.users2")}{" "}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
@ -177,34 +175,33 @@ const PricingHero = () => {
|
|||
onClick={() => setOneYear(2)}
|
||||
>
|
||||
<p className="mb-0 text-center text-white xs:text-sm lg:text-xl">
|
||||
up 50 user
|
||||
{t("sixMounth.users3")}{" "}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="w-8/12 bg-[#132420] xs:p-5 lg:p-10 rounded-r-3xl rounded-bl-3xl">
|
||||
<h2 className="mb-0 text-center font-bold xs:text-[18px] lg:text-[25px] text-gray-400">
|
||||
12 Mounth
|
||||
{t("sixMounth.title")}{" "}
|
||||
</h2>
|
||||
|
||||
<p className="mb-0 text-center text-white xs:text-[25px] lg:text-[33px] font-bold">
|
||||
{oneYear == 0
|
||||
? " 108,000,000 R"
|
||||
? t("sixMounth.pricing1")
|
||||
: oneYear == 1
|
||||
? " 172,800,000 R"
|
||||
? t("sixMounth.pricing2")
|
||||
: oneYear == 2
|
||||
? " 212,400,000 R"
|
||||
: " 108,000,000 R"}{" "}
|
||||
? t("sixMounth.pricing3")
|
||||
: t("sixMounth.pricing1")}
|
||||
</p>
|
||||
|
||||
<p className="mb-0 text-center text-gray-400 text-sm">
|
||||
It could be the best package for you, so feel free to use the
|
||||
14-day free trial
|
||||
<p className="mb-0 text-sm text-center text-gray-400">
|
||||
{t("sixMounth.desc")}{" "}
|
||||
</p>
|
||||
<div className="flex justify-center mt-10">
|
||||
<Link href="/app/login">
|
||||
<button className=" btn btn-primary px-10 rounded-full py-2 xs:hidden lg:block">
|
||||
Get started
|
||||
<button className="px-10 py-2 rounded-full btn btn-primary xs:hidden lg:block">
|
||||
{t("sixMounth.button")}{" "}
|
||||
</button>
|
||||
</Link>
|
||||
</div>
|
||||
|
|
|
@ -96,5 +96,51 @@
|
|||
"desc": "Set up all your tasks at this stage...",
|
||||
"title": "Insert all of your tasks"
|
||||
}
|
||||
},
|
||||
"pricing": {
|
||||
"title": "Pricing",
|
||||
"desc": "Tailor your coffee shop management with our time-flexible pricing plans. All packages offer the same comprehensive features, differing only in duration to suit your business needs. Choose from monthly, quarterly, or annual options, each designed for ease and efficiency.",
|
||||
"oneMounth": {
|
||||
"title": "1 Mounth",
|
||||
"pricing1": "15,000,000 R",
|
||||
"pricing2": "24,000,000 R ",
|
||||
"pricing3": "29,500,000 R",
|
||||
"desc": "It could be the best package for you, so feel free to use the 14-day free trial",
|
||||
"users1": "up 10 users",
|
||||
"users2": "up 25 users",
|
||||
"users3": "up 50 users",
|
||||
"button": "get started"
|
||||
},
|
||||
"threeMounth": {
|
||||
"title": "3 Mounth",
|
||||
"pricing1": "36,000,000 R",
|
||||
"pricing2": "57,600,000 R",
|
||||
"pricing3": "70,800,000 R",
|
||||
"desc": "It could be the best package for you, so feel free to use the 14-day free trial",
|
||||
"users1": "up 10 users",
|
||||
"users2": "up 25 users",
|
||||
"users3": "up 50 users",
|
||||
"button": "get started"
|
||||
},
|
||||
"sixMounth": {
|
||||
"title": "6 Mounth",
|
||||
"pricing1": "108,000,000 R",
|
||||
"pricing2": "172,800,000 R ",
|
||||
"pricing3": "212,400,000 R",
|
||||
"desc": "It could be the best package for you, so feel free to use the 14-day free trial",
|
||||
"users1": "up 10 users",
|
||||
"users2": "up 25 users",
|
||||
"users3": "up 50 users",
|
||||
"button": "get started"
|
||||
}
|
||||
},
|
||||
"login": {
|
||||
"title": "Briz",
|
||||
"desc": "Harmonic management of routines",
|
||||
"acceptRule": "By confirming the phone number, I agree to all the privacy conditions of the Breeze application",
|
||||
"loginInput": "Enter your phone number",
|
||||
"loginButton": "Confirm phone number",
|
||||
"confirmText": "The confirmation code has been sent to the number",
|
||||
"confirmInput": "Enter the code sent"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -98,5 +98,51 @@
|
|||
"desc": "تمام وظایف خود را در این مرحله تنظیم کنید...",
|
||||
"title": "همه وظایف خود را وارد کنید"
|
||||
}
|
||||
},
|
||||
"pricing": {
|
||||
"title": "قیمت گذاری",
|
||||
"desc": "مدیریت کافی شاپ خود را با برنامه های قیمت گذاری منعطف زمان ما تنظیم کنید. همه بستهها ویژگیهای جامع یکسانی را ارائه میدهند، که فقط از نظر مدت زمان متفاوت هستند تا با نیازهای تجاری شما مطابقت داشته باشند. از بین گزینه های ماهانه، سه ماهه یا سالانه که هر کدام برای سهولت و کارایی طراحی شده اند، انتخاب کنید.",
|
||||
"oneMounth": {
|
||||
"title": "یک ماه",
|
||||
"pricing1": "15,000,000 R",
|
||||
"pricing2": "24,000,000 R ",
|
||||
"pricing3": "29,500,000 R",
|
||||
"desc": "این می تواند بهترین بسته برای شما باشد، بنابراین از 14 روز آزمایشی رایگان استفاده کنید",
|
||||
"users1": "بالای 10 کاربر",
|
||||
"users2": "بالای 25 کاربر",
|
||||
"users3": "بالای 50 کاربر",
|
||||
"button": "شروع کنید"
|
||||
},
|
||||
"threeMounth": {
|
||||
"title": "سه ماهه",
|
||||
"pricing1": "36,000,000 R",
|
||||
"pricing2": "57,600,000 R",
|
||||
"pricing3": "70,800,000 R",
|
||||
"desc": "این می تواند بهترین بسته برای شما باشد، بنابراین از 14 روز آزمایشی رایگان استفاده کنید",
|
||||
"users1": "بالای 10 کاربر",
|
||||
"users2": "بالای 25 کاربر",
|
||||
"users3": "بالای 50 کاربر",
|
||||
"button": "شروع کنید"
|
||||
},
|
||||
"sixMounth": {
|
||||
"title": "یک سال",
|
||||
"pricing1": "108,000,000 R",
|
||||
"pricing2": "172,800,000 R ",
|
||||
"pricing3": "212,400,000 R",
|
||||
"desc": "این می تواند بهترین بسته برای شما باشد، بنابراین از 14 روز آزمایشی رایگان استفاده کنید",
|
||||
"users1": "بالای 10 کاربر",
|
||||
"users2": "بالای 25 کاربر",
|
||||
"users3": "بالای 50 کاربر",
|
||||
"button": "شروع کنید"
|
||||
}
|
||||
},
|
||||
"login": {
|
||||
"title": "بریز",
|
||||
"desc": "مدیریت هماهنگ وظایف روزمره",
|
||||
"acceptRule": "با تأیید شماره تلفن، با تمامی شرایط حریم خصوصی اپلیکیشن بریز موافقت میکنم",
|
||||
"loginInput": "شماره تلفن خود را وارد کنید",
|
||||
"loginButton": "تأیید شماره تلفن",
|
||||
"confirmText": "کد تأیید به شماره شما ارسال شد",
|
||||
"confirmInput": "کد ارسال شده را وارد کنید"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -96,5 +96,51 @@
|
|||
"desc": "在此阶段设置您所有的任务...",
|
||||
"title": "插入所有任务"
|
||||
}
|
||||
},
|
||||
"pricing": {
|
||||
"title": "定价",
|
||||
"desc": "通过我们灵活的时间定价方案,定制您的咖啡店管理。所有套餐均提供相同的全面功能,仅在时长上有所不同,以满足您的业务需求。从每月、每季度或每年选项中选择,每种方案都旨在提供便捷和高效的体验。",
|
||||
"oneMounth": {
|
||||
"title": "一个月",
|
||||
"pricing1": "15,000,000 R",
|
||||
"pricing2": "24,000,000 R",
|
||||
"pricing3": "29,500,000 R",
|
||||
"desc": "这可能是最适合您的套餐,请随时使用14天的免费试用",
|
||||
"users1": "超过10位用户",
|
||||
"users2": "超过25位用户",
|
||||
"users3": "超过50位用户",
|
||||
"button": "开始"
|
||||
},
|
||||
"threeMounth": {
|
||||
"title": "三个月",
|
||||
"pricing1": "36,000,000 R",
|
||||
"pricing2": "57,600,000 R",
|
||||
"pricing3": "70,800,000 R",
|
||||
"desc": "这可能是最适合您的套餐,请随时使用14天的免费试用",
|
||||
"users1": "超过10位用户",
|
||||
"users2": "超过25位用户",
|
||||
"users3": "超过50位用户",
|
||||
"button": "开始"
|
||||
},
|
||||
"sixMounth": {
|
||||
"title": "一年",
|
||||
"pricing1": "108,000,000 R",
|
||||
"pricing2": "172,800,000 R",
|
||||
"pricing3": "212,400,000 R",
|
||||
"desc": "这可能是最适合您的套餐,请随时使用14天的免费试用",
|
||||
"users1": "超过10位用户",
|
||||
"users2": "超过25位用户",
|
||||
"users3": "超过50位用户",
|
||||
"button": "开始"
|
||||
}
|
||||
},
|
||||
"login": {
|
||||
"title": "Breeze",
|
||||
"desc": "日常事务的和谐管理",
|
||||
"acceptRule": "通过确认电话号码,我同意Breeze应用的所有隐私条款",
|
||||
"loginInput": "输入您的电话号码",
|
||||
"loginButton": "确认电话号码",
|
||||
"confirmText": "验证码已发送至该号码",
|
||||
"confirmInput": "输入发送的验证码"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
\************************************************************/
|
||||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\nself.fallback = async (_)=>{\n let { destination: e, url: A } = _, s = {\n document: \"/offline\",\n image: false,\n audio: false,\n video: false,\n font: false\n }[e];\n return s ? caches.match(s, {\n ignoreSearch: !0\n }) : \"\" === e && false && 0 ? 0 : Response.error();\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGR1Y2FuaDI5MTIvbmV4dC1wd2EvZGlzdC9mYWxsYmFjay5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQSxVQUFVLHlCQUF5QjtBQUNuQyxrQkFBa0IsVUFBcUM7QUFDdkQsZUFBZSxLQUFrQztBQUNqRCxlQUFlLEtBQWtDO0FBQ2pELGVBQWUsS0FBa0M7QUFDakQsY0FBYyxLQUFpQztBQUMvQyxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUssZ0JBQWdCLEtBQWlDLElBQUksQ0FBd0MsR0FBRyxDQUUvRjtBQUNOIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AZHVjYW5oMjkxMi9uZXh0LXB3YS9kaXN0L2ZhbGxiYWNrLmpzP2NlNGIiXSwic291cmNlc0NvbnRlbnQiOlsic2VsZi5mYWxsYmFjayA9IGFzeW5jIChfKT0+e1xuICAgIGxldCB7IGRlc3RpbmF0aW9uOiBlLCB1cmw6IEEgfSA9IF8sIHMgPSB7XG4gICAgICAgIGRvY3VtZW50OiBwcm9jZXNzLmVudi5fX1BXQV9GQUxMQkFDS19ET0NVTUVOVF9fLFxuICAgICAgICBpbWFnZTogcHJvY2Vzcy5lbnYuX19QV0FfRkFMTEJBQ0tfSU1BR0VfXyxcbiAgICAgICAgYXVkaW86IHByb2Nlc3MuZW52Ll9fUFdBX0ZBTExCQUNLX0FVRElPX18sXG4gICAgICAgIHZpZGVvOiBwcm9jZXNzLmVudi5fX1BXQV9GQUxMQkFDS19WSURFT19fLFxuICAgICAgICBmb250OiBwcm9jZXNzLmVudi5fX1BXQV9GQUxMQkFDS19GT05UX19cbiAgICB9W2VdO1xuICAgIHJldHVybiBzID8gY2FjaGVzLm1hdGNoKHMsIHtcbiAgICAgICAgaWdub3JlU2VhcmNoOiAhMFxuICAgIH0pIDogXCJcIiA9PT0gZSAmJiBwcm9jZXNzLmVudi5fX1BXQV9GQUxMQkFDS19EQVRBX18gJiYgQS5tYXRjaCgvXFwvX25leHRcXC9kYXRhXFwvLitcXC8uK1xcLmpzb24kL2kpID8gY2FjaGVzLm1hdGNoKHByb2Nlc3MuZW52Ll9fUFdBX0ZBTExCQUNLX0RBVEFfXywge1xuICAgICAgICBpZ25vcmVTZWFyY2g6ICEwXG4gICAgfSkgOiBSZXNwb25zZS5lcnJvcigpO1xufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ducanh2912/next-pwa/dist/fallback.js\n"));
|
||||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\nself.fallback = async (_)=>{\n let { destination: e, url: A } = _, s = {\n document: \"/offline\",\n image: false,\n audio: false,\n video: false,\n font: false\n }[e];\n return s ? caches.match(s, {\n ignoreSearch: !0\n }) : \"\" === e && false && 0 ? 0 : Response.error();\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGR1Y2FuaDI5MTIvbmV4dC1wd2EvZGlzdC9mYWxsYmFjay5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQSxVQUFVLHlCQUF5QjtBQUNuQyxrQkFBa0IsVUFBcUM7QUFDdkQsZUFBZSxLQUFrQztBQUNqRCxlQUFlLEtBQWtDO0FBQ2pELGVBQWUsS0FBa0M7QUFDakQsY0FBYyxLQUFpQztBQUMvQyxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUssZ0JBQWdCLEtBQWlDLElBQUksQ0FBd0MsR0FBRyxDQUUvRjtBQUNOIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AZHVjYW5oMjkxMi9uZXh0LXB3YS9kaXN0L2ZhbGxiYWNrLmpzP2U4YjAiXSwic291cmNlc0NvbnRlbnQiOlsic2VsZi5mYWxsYmFjayA9IGFzeW5jIChfKT0+e1xuICAgIGxldCB7IGRlc3RpbmF0aW9uOiBlLCB1cmw6IEEgfSA9IF8sIHMgPSB7XG4gICAgICAgIGRvY3VtZW50OiBwcm9jZXNzLmVudi5fX1BXQV9GQUxMQkFDS19ET0NVTUVOVF9fLFxuICAgICAgICBpbWFnZTogcHJvY2Vzcy5lbnYuX19QV0FfRkFMTEJBQ0tfSU1BR0VfXyxcbiAgICAgICAgYXVkaW86IHByb2Nlc3MuZW52Ll9fUFdBX0ZBTExCQUNLX0FVRElPX18sXG4gICAgICAgIHZpZGVvOiBwcm9jZXNzLmVudi5fX1BXQV9GQUxMQkFDS19WSURFT19fLFxuICAgICAgICBmb250OiBwcm9jZXNzLmVudi5fX1BXQV9GQUxMQkFDS19GT05UX19cbiAgICB9W2VdO1xuICAgIHJldHVybiBzID8gY2FjaGVzLm1hdGNoKHMsIHtcbiAgICAgICAgaWdub3JlU2VhcmNoOiAhMFxuICAgIH0pIDogXCJcIiA9PT0gZSAmJiBwcm9jZXNzLmVudi5fX1BXQV9GQUxMQkFDS19EQVRBX18gJiYgQS5tYXRjaCgvXFwvX25leHRcXC9kYXRhXFwvLitcXC8uK1xcLmpzb24kL2kpID8gY2FjaGVzLm1hdGNoKHByb2Nlc3MuZW52Ll9fUFdBX0ZBTExCQUNLX0RBVEFfXywge1xuICAgICAgICBpZ25vcmVTZWFyY2g6ICEwXG4gICAgfSkgOiBSZXNwb25zZS5lcnJvcigpO1xufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ducanh2912/next-pwa/dist/fallback.js\n"));
|
||||
|
||||
/***/ })
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -16,7 +16,7 @@
|
|||
\*******************************************************************/
|
||||
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\nself.onmessage = async (e)=>{\n switch(e.data.type){\n case \"__START_URL_CACHE__\":\n {\n let t = e.data.url, a = await fetch(t);\n if (!a.redirected) return (await caches.open(\"start-url\")).put(t, a);\n return Promise.resolve();\n }\n case \"__FRONTEND_NAV_CACHE__\":\n {\n let t = e.data.url, a = await caches.open(\"pages\");\n if (await a.match(t, {\n ignoreSearch: !0\n })) return;\n let s = await fetch(t);\n if (!s.ok) return;\n if (a.put(t, s.clone()), e.data.shouldCacheAggressively && s.headers.get(\"Content-Type\")?.includes(\"text/html\")) try {\n let e = await s.text(), t = [], a = await caches.open(\"static-style-assets\"), r = await caches.open(\"next-static-js-assets\"), c = await caches.open(\"static-js-assets\");\n for (let [s, r] of e.matchAll(/<link.*?href=['\"](.*?)['\"].*?>/g))/rel=['\"]stylesheet['\"]/.test(s) && t.push(a.match(r).then((e)=>e ? Promise.resolve() : a.add(r)));\n for (let [, a] of e.matchAll(/<script.*?src=['\"](.*?)['\"].*?>/g)){\n let e = /\\/_next\\/static.+\\.js$/i.test(a) ? r : c;\n t.push(e.match(a).then((t)=>t ? Promise.resolve() : e.add(a)));\n }\n return await Promise.all(t);\n } catch {}\n return Promise.resolve();\n }\n default:\n return Promise.resolve();\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGR1Y2FuaDI5MTIvbmV4dC1wd2EvZGlzdC9zdy1lbnRyeS13b3JrZXIuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGR1Y2FuaDI5MTIvbmV4dC1wd2EvZGlzdC9zdy1lbnRyeS13b3JrZXIuanM/NmM4NCJdLCJzb3VyY2VzQ29udGVudCI6WyJzZWxmLm9ubWVzc2FnZSA9IGFzeW5jIChlKT0+e1xuICAgIHN3aXRjaChlLmRhdGEudHlwZSl7XG4gICAgICAgIGNhc2UgXCJfX1NUQVJUX1VSTF9DQUNIRV9fXCI6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGV0IHQgPSBlLmRhdGEudXJsLCBhID0gYXdhaXQgZmV0Y2godCk7XG4gICAgICAgICAgICAgICAgaWYgKCFhLnJlZGlyZWN0ZWQpIHJldHVybiAoYXdhaXQgY2FjaGVzLm9wZW4oXCJzdGFydC11cmxcIikpLnB1dCh0LCBhKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJfX0ZST05URU5EX05BVl9DQUNIRV9fXCI6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGV0IHQgPSBlLmRhdGEudXJsLCBhID0gYXdhaXQgY2FjaGVzLm9wZW4oXCJwYWdlc1wiKTtcbiAgICAgICAgICAgICAgICBpZiAoYXdhaXQgYS5tYXRjaCh0LCB7XG4gICAgICAgICAgICAgICAgICAgIGlnbm9yZVNlYXJjaDogITBcbiAgICAgICAgICAgICAgICB9KSkgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGxldCBzID0gYXdhaXQgZmV0Y2godCk7XG4gICAgICAgICAgICAgICAgaWYgKCFzLm9rKSByZXR1cm47XG4gICAgICAgICAgICAgICAgaWYgKGEucHV0KHQsIHMuY2xvbmUoKSksIGUuZGF0YS5zaG91bGRDYWNoZUFnZ3Jlc3NpdmVseSAmJiBzLmhlYWRlcnMuZ2V0KFwiQ29udGVudC1UeXBlXCIpPy5pbmNsdWRlcyhcInRleHQvaHRtbFwiKSkgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGUgPSBhd2FpdCBzLnRleHQoKSwgdCA9IFtdLCBhID0gYXdhaXQgY2FjaGVzLm9wZW4oXCJzdGF0aWMtc3R5bGUtYXNzZXRzXCIpLCByID0gYXdhaXQgY2FjaGVzLm9wZW4oXCJuZXh0LXN0YXRpYy1qcy1hc3NldHNcIiksIGMgPSBhd2FpdCBjYWNoZXMub3BlbihcInN0YXRpYy1qcy1hc3NldHNcIik7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IFtzLCByXSBvZiBlLm1hdGNoQWxsKC88bGluay4qP2hyZWY9WydcIl0oLio/KVsnXCJdLio/Pi9nKSkvcmVsPVsnXCJdc3R5bGVzaGVldFsnXCJdLy50ZXN0KHMpICYmIHQucHVzaChhLm1hdGNoKHIpLnRoZW4oKGUpPT5lID8gUHJvbWlzZS5yZXNvbHZlKCkgOiBhLmFkZChyKSkpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBbLCBhXSBvZiBlLm1hdGNoQWxsKC88c2NyaXB0Lio/c3JjPVsnXCJdKC4qPylbJ1wiXS4qPz4vZykpe1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGUgPSAvXFwvX25leHRcXC9zdGF0aWMuK1xcLmpzJC9pLnRlc3QoYSkgPyByIDogYztcbiAgICAgICAgICAgICAgICAgICAgICAgIHQucHVzaChlLm1hdGNoKGEpLnRoZW4oKHQpPT50ID8gUHJvbWlzZS5yZXNvbHZlKCkgOiBlLmFkZChhKSkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCBQcm9taXNlLmFsbCh0KTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoICB7fVxuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9XG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ducanh2912/next-pwa/dist/sw-entry-worker.js\n"));
|
||||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\nself.onmessage = async (e)=>{\n switch(e.data.type){\n case \"__START_URL_CACHE__\":\n {\n let t = e.data.url, a = await fetch(t);\n if (!a.redirected) return (await caches.open(\"start-url\")).put(t, a);\n return Promise.resolve();\n }\n case \"__FRONTEND_NAV_CACHE__\":\n {\n let t = e.data.url, a = await caches.open(\"pages\");\n if (await a.match(t, {\n ignoreSearch: !0\n })) return;\n let s = await fetch(t);\n if (!s.ok) return;\n if (a.put(t, s.clone()), e.data.shouldCacheAggressively && s.headers.get(\"Content-Type\")?.includes(\"text/html\")) try {\n let e = await s.text(), t = [], a = await caches.open(\"static-style-assets\"), r = await caches.open(\"next-static-js-assets\"), c = await caches.open(\"static-js-assets\");\n for (let [s, r] of e.matchAll(/<link.*?href=['\"](.*?)['\"].*?>/g))/rel=['\"]stylesheet['\"]/.test(s) && t.push(a.match(r).then((e)=>e ? Promise.resolve() : a.add(r)));\n for (let [, a] of e.matchAll(/<script.*?src=['\"](.*?)['\"].*?>/g)){\n let e = /\\/_next\\/static.+\\.js$/i.test(a) ? r : c;\n t.push(e.match(a).then((t)=>t ? Promise.resolve() : e.add(a)));\n }\n return await Promise.all(t);\n } catch {}\n return Promise.resolve();\n }\n default:\n return Promise.resolve();\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGR1Y2FuaDI5MTIvbmV4dC1wd2EvZGlzdC9zdy1lbnRyeS13b3JrZXIuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGR1Y2FuaDI5MTIvbmV4dC1wd2EvZGlzdC9zdy1lbnRyeS13b3JrZXIuanM/YjIzYiJdLCJzb3VyY2VzQ29udGVudCI6WyJzZWxmLm9ubWVzc2FnZSA9IGFzeW5jIChlKT0+e1xuICAgIHN3aXRjaChlLmRhdGEudHlwZSl7XG4gICAgICAgIGNhc2UgXCJfX1NUQVJUX1VSTF9DQUNIRV9fXCI6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGV0IHQgPSBlLmRhdGEudXJsLCBhID0gYXdhaXQgZmV0Y2godCk7XG4gICAgICAgICAgICAgICAgaWYgKCFhLnJlZGlyZWN0ZWQpIHJldHVybiAoYXdhaXQgY2FjaGVzLm9wZW4oXCJzdGFydC11cmxcIikpLnB1dCh0LCBhKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJfX0ZST05URU5EX05BVl9DQUNIRV9fXCI6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGV0IHQgPSBlLmRhdGEudXJsLCBhID0gYXdhaXQgY2FjaGVzLm9wZW4oXCJwYWdlc1wiKTtcbiAgICAgICAgICAgICAgICBpZiAoYXdhaXQgYS5tYXRjaCh0LCB7XG4gICAgICAgICAgICAgICAgICAgIGlnbm9yZVNlYXJjaDogITBcbiAgICAgICAgICAgICAgICB9KSkgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGxldCBzID0gYXdhaXQgZmV0Y2godCk7XG4gICAgICAgICAgICAgICAgaWYgKCFzLm9rKSByZXR1cm47XG4gICAgICAgICAgICAgICAgaWYgKGEucHV0KHQsIHMuY2xvbmUoKSksIGUuZGF0YS5zaG91bGRDYWNoZUFnZ3Jlc3NpdmVseSAmJiBzLmhlYWRlcnMuZ2V0KFwiQ29udGVudC1UeXBlXCIpPy5pbmNsdWRlcyhcInRleHQvaHRtbFwiKSkgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGUgPSBhd2FpdCBzLnRleHQoKSwgdCA9IFtdLCBhID0gYXdhaXQgY2FjaGVzLm9wZW4oXCJzdGF0aWMtc3R5bGUtYXNzZXRzXCIpLCByID0gYXdhaXQgY2FjaGVzLm9wZW4oXCJuZXh0LXN0YXRpYy1qcy1hc3NldHNcIiksIGMgPSBhd2FpdCBjYWNoZXMub3BlbihcInN0YXRpYy1qcy1hc3NldHNcIik7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IFtzLCByXSBvZiBlLm1hdGNoQWxsKC88bGluay4qP2hyZWY9WydcIl0oLio/KVsnXCJdLio/Pi9nKSkvcmVsPVsnXCJdc3R5bGVzaGVldFsnXCJdLy50ZXN0KHMpICYmIHQucHVzaChhLm1hdGNoKHIpLnRoZW4oKGUpPT5lID8gUHJvbWlzZS5yZXNvbHZlKCkgOiBhLmFkZChyKSkpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBbLCBhXSBvZiBlLm1hdGNoQWxsKC88c2NyaXB0Lio/c3JjPVsnXCJdKC4qPylbJ1wiXS4qPz4vZykpe1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGUgPSAvXFwvX25leHRcXC9zdGF0aWMuK1xcLmpzJC9pLnRlc3QoYSkgPyByIDogYztcbiAgICAgICAgICAgICAgICAgICAgICAgIHQucHVzaChlLm1hdGNoKGEpLnRoZW4oKHQpPT50ID8gUHJvbWlzZS5yZXNvbHZlKCkgOiBlLmFkZChhKSkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCBQcm9taXNlLmFsbCh0KTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoICB7fVxuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9XG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ducanh2912/next-pwa/dist/sw-entry-worker.js\n"));
|
||||
|
||||
/***/ })
|
||||
|
||||
|
|
|
@ -8,11 +8,13 @@ import AppContext from "@ctx/AppContext";
|
|||
import VerifyCodeStep from "@comp/LoginComponents/VerifyCodeStep";
|
||||
import SignUp from "@comp/LoginComponents/SignUp";
|
||||
import { useRouter } from "next/navigation";
|
||||
import { useTranslations } from "next-intl";
|
||||
|
||||
const Login = (props) => {
|
||||
const CTX = useContext(AppContext);
|
||||
const stepLogin = CTX.state.stepLogin;
|
||||
const router = useRouter();
|
||||
const t = useTranslations("login");
|
||||
|
||||
const [isLogoCentered, setIsLogoCentered] = useState(true);
|
||||
|
||||
|
@ -33,7 +35,7 @@ const Login = (props) => {
|
|||
}, []);
|
||||
|
||||
return (
|
||||
<div className="pb-5 relative">
|
||||
<div className="relative pb-5">
|
||||
<video
|
||||
autoPlay
|
||||
muted
|
||||
|
@ -41,7 +43,7 @@ const Login = (props) => {
|
|||
loop
|
||||
playsInline
|
||||
poster="/Images/video-section-1-poster.png"
|
||||
className="absolute left-0 top-0 right-0 w-screen -z-10 object-cover h-screen"
|
||||
className="absolute top-0 left-0 right-0 object-cover w-screen h-screen -z-10"
|
||||
style={{ filter: "brightness(0.3)" }}
|
||||
>
|
||||
<source src={"/videos/login.mp4"} type="video/mp4" />
|
||||
|
@ -67,8 +69,8 @@ const Login = (props) => {
|
|||
isLogoCentered ? "opacity-0" : "opacity-100"
|
||||
} transition-opacity duration-1000`}
|
||||
>
|
||||
<h2 className="text-white text-[50px] font-bold">بریز</h2>
|
||||
<p className="mb-0 text-white">"مدیرت هارمونیک روتین ها"</p>
|
||||
<h2 className="text-white text-[50px] font-bold">{t("title")}</h2>
|
||||
<p className="mb-0 text-white">" "</p>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
|
|
|
@ -4,9 +4,9 @@ import { createSharedPathnamesNavigation } from "next-intl/navigation";
|
|||
export const routing = defineRouting({
|
||||
// A list of all locales that are supported
|
||||
locales: ["en", "fa", "zh"],
|
||||
|
||||
// Used when no locale matches
|
||||
defaultLocale: "en",
|
||||
localePrefix: "as-needed",
|
||||
localeDetection: false,
|
||||
});
|
||||
|
||||
// Lightweight wrappers around Next.js' navigation APIs
|
||||
|
|
|
@ -5,5 +5,9 @@ export default createMiddleware(routing);
|
|||
|
||||
export const config = {
|
||||
// Match only internationalized pathnames
|
||||
matcher: ["/", "/(fa|en|zh)/:path*"],
|
||||
matcher: [
|
||||
"/",
|
||||
"/(fa|en|zh)/:path*",
|
||||
"/((?!_next/static|_next/image|api|images|icons|fonts|video|audio|favicon.ico).*)",
|
||||
],
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue