Amir Hossein Khademi 2024-09-16 03:08:12 +03:30
commit 3b17de2f17
17 changed files with 4063 additions and 92 deletions

View File

@ -78,7 +78,7 @@ const LoginStep = (props) => {
onClick={(e) => setRoleCheckBox(e.target.checked)}
/>
</div>
<p className={`mb-0 text-textMain-100 mt-1 text-right text-sm `}>
<p className={`mb-0 text-white mt-1 text-right text-sm `}>
با تایید شماره تلفن با همه شرایط حریم خصوص اپلیکیشن بریز موافقت می کنم
.
</p>

View File

@ -73,8 +73,8 @@ const SignUp = (props) => {
};
return (
<div className="px-5 mt-6">
<p className="mb-0 text-textMain-100 mt-1 text-right text-sm ">
<div className="px-5 pt-6">
<p className="mb-0 text-white mt-1 text-right text-sm ">
برای ورود یا ثبت نام به اپلیکیشن مدیریت وظایف رستوران باید شماره تلفن
همراه خود را وارد کنید
</p>

View File

@ -24,7 +24,7 @@ const VerifyCodeStep = () => {
return (
<div className="px-5 mt-6">
<p className="mb-0 text-textMain-100 mt-1 text-right text-sm">
<p className="mb-0 text-white mt-1 text-right text-sm">
{" "}
کد تایید برای شماره
<strong className="mx-1">

View File

@ -6,16 +6,16 @@ import Link from "next/link";
const Footer = () => {
return (
<div className="bg-hero-pattern-footer ">
<div className="w-7/12 mx-auto py-20">
<div className="lg:w-7/12 xs:w-full mx-auto py-20">
<div className="flex justify-center">
<div className="flex"></div>
<div className="text-center w-full">
<p className="mb-0 text-white text-center mt-10 font-bold lg:text-[70px] xs:text-[30px] lg:leading-[60px] w-fit">
<p className="mb-0 text-white text-center xs:mt-0 lg:mt-10 font-bold lg:text-[70px] xs:text-[25px] lg:leading-[60px] lg:w-fit xs:w-full">
<small className="text-primary-300">"</small>
Briz, Harmonious routine
</p>
<p className=" text-white text-center mb-10 font-bold lg:text-[70px] xs:text-[30px] lg:leading-[60px] w-fit">
<p className="mb-0 text-white text-center font-bold lg:text-[70px] xs:text-[25px] lg:leading-[60px] lg:w-fit xs:w-full">
management
<small className=" text-primary-300">"</small>
</p>

View File

@ -29,7 +29,9 @@ const PricingHero = () => {
} `}
onClick={() => setOneMonth(0)}
>
<p className="mb-0 text-center text-white text-xl">up 10 user</p>
<p className="mb-0 text-center text-white xs:text-sm lg:text-xl">
up 10 user
</p>
</div>
<div
className={`bg-[#132420] p-4 rounded-l-3xl mt-3 cursor-pointer tr03 ${
@ -37,7 +39,9 @@ const PricingHero = () => {
} `}
onClick={() => setOneMonth(1)}
>
<p className="mb-0 text-center text-white text-xl">up 25 user</p>
<p className="mb-0 text-center text-white xs:text-sm lg:text-xl">
up 25 user
</p>
</div>
<div
@ -46,16 +50,18 @@ const PricingHero = () => {
} `}
onClick={() => setOneMonth(2)}
>
<p className="mb-0 text-center text-white text-xl">up 50 user</p>
<p className="mb-0 text-center text-white xs:text-sm lg:text-xl">
up 50 user
</p>
</div>
</div>
<div className="w-8/12 bg-[#132420] p-10 rounded-r-3xl rounded-bl-3xl">
<h2 className="mb-0 text-center font-bold text-[25px] text-gray-400">
<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
</h2>
<p className="mb-0 text-center text-white text-[33px] font-bold">
<p className="mb-0 text-center text-white xs:text-[25px] lg:text-[33px] font-bold">
{oneMonth == 0
? " 15,000,000 R"
: oneMonth == 1
@ -86,7 +92,9 @@ const PricingHero = () => {
} `}
onClick={() => setThreeMonth(0)}
>
<p className="mb-0 text-center text-white text-xl">up 10 user</p>
<p className="mb-0 text-center text-white xs:text-sm lg:text-xl">
up 10 user
</p>
</div>
<div
className={`bg-[#132420] p-4 rounded-l-3xl mt-3 cursor-pointer tr03 ${
@ -94,7 +102,9 @@ const PricingHero = () => {
} `}
onClick={() => setThreeMonth(1)}
>
<p className="mb-0 text-center text-white text-xl">up 25 user</p>
<p className="mb-0 text-center text-white xs:text-sm lg:text-xl">
up 25 user
</p>
</div>
<div
@ -103,16 +113,18 @@ const PricingHero = () => {
} `}
onClick={() => setThreeMonth(2)}
>
<p className="mb-0 text-center text-white text-xl">up 50 user</p>
<p className="mb-0 text-center text-white xs:text-sm lg:text-xl">
up 50 user
</p>
</div>
</div>
<div className="w-8/12 bg-[#132420] p-10 rounded-r-3xl rounded-bl-3xl">
<h2 className="mb-0 text-center font-bold text-[25px] text-gray-400">
<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
</h2>
<p className="mb-0 text-center text-white text-[33px] font-bold">
<p className="mb-0 text-center text-white xs:text-[25px] lg:text-[33px] font-bold">
{threeMonth == 0
? " 36,000,000 R"
: threeMonth == 1
@ -143,7 +155,9 @@ const PricingHero = () => {
} `}
onClick={() => setOneYear(0)}
>
<p className="mb-0 text-center text-white text-xl">up 10 user</p>
<p className="mb-0 text-center text-white xs:text-sm lg:text-xl">
up 10 user
</p>
</div>
<div
className={`bg-[#132420] p-4 rounded-l-3xl mt-3 cursor-pointer tr03 ${
@ -151,7 +165,9 @@ const PricingHero = () => {
} `}
onClick={() => setOneYear(1)}
>
<p className="mb-0 text-center text-white text-xl">up 25 user</p>
<p className="mb-0 text-center text-white xs:text-sm lg:text-xl">
up 25 user
</p>
</div>
<div
@ -160,16 +176,18 @@ const PricingHero = () => {
} `}
onClick={() => setOneYear(2)}
>
<p className="mb-0 text-center text-white text-xl">up 50 user</p>
<p className="mb-0 text-center text-white xs:text-sm lg:text-xl">
up 50 user
</p>
</div>
</div>
<div className="w-8/12 bg-[#132420] p-10 rounded-r-3xl rounded-bl-3xl">
<h2 className="mb-0 text-center font-bold text-[25px] text-gray-400">
<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
</h2>
<p className="mb-0 text-center text-white text-[33px] font-bold">
<p className="mb-0 text-center text-white xs:text-[25px] lg:text-[33px] font-bold">
{oneYear == 0
? " 108,000,000 R"
: oneYear == 1

View File

@ -1 +0,0 @@
self.fallback=async e=>{let{destination:a,url:n}=e,o={document:"/offline",image:!1,audio:!1,video:!1,font:!1}[a];return o?caches.match(o,{ignoreSearch:!0}):Response.error()};

View File

@ -0,0 +1,102 @@
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
/******/ (function() { // webpackBootstrap
/******/ "use strict";
/******/ var __webpack_modules__ = ({
/***/ "./node_modules/@ducanh2912/next-pwa/dist/fallback.js":
/*!************************************************************!*\
!*** ./node_modules/@ducanh2912/next-pwa/dist/fallback.js ***!
\************************************************************/
/***/ (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"));
/***/ })
/******/ });
/************************************************************************/
/******/ // The require scope
/******/ var __webpack_require__ = {};
/******/
/************************************************************************/
/******/ /* webpack/runtime/make namespace object */
/******/ !function() {
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/ }();
/******/
/******/ /* webpack/runtime/trusted types policy */
/******/ !function() {
/******/ var policy;
/******/ __webpack_require__.tt = function() {
/******/ // Create Trusted Type policy if Trusted Types are available and the policy doesn't exist yet.
/******/ if (policy === undefined) {
/******/ policy = {
/******/ createScript: function(script) { return script; }
/******/ };
/******/ if (typeof trustedTypes !== "undefined" && trustedTypes.createPolicy) {
/******/ policy = trustedTypes.createPolicy("nextjs#bundler", policy);
/******/ }
/******/ }
/******/ return policy;
/******/ };
/******/ }();
/******/
/******/ /* webpack/runtime/trusted types script */
/******/ !function() {
/******/ __webpack_require__.ts = function(script) { return __webpack_require__.tt().createScript(script); };
/******/ }();
/******/
/******/ /* webpack/runtime/react refresh */
/******/ !function() {
/******/ if (__webpack_require__.i) {
/******/ __webpack_require__.i.push(function(options) {
/******/ var originalFactory = options.factory;
/******/ options.factory = function(moduleObject, moduleExports, webpackRequire) {
/******/ var hasRefresh = typeof self !== "undefined" && !!self.$RefreshInterceptModuleExecution$;
/******/ var cleanup = hasRefresh ? self.$RefreshInterceptModuleExecution$(moduleObject.id) : function() {};
/******/ try {
/******/ originalFactory.call(this, moduleObject, moduleExports, webpackRequire);
/******/ } finally {
/******/ cleanup();
/******/ }
/******/ }
/******/ })
/******/ }
/******/ }();
/******/
/******/ /* webpack/runtime/compat */
/******/
/******/
/******/ // noop fns to prevent runtime errors during initialization
/******/ if (typeof self !== "undefined") {
/******/ self.$RefreshReg$ = function () {};
/******/ self.$RefreshSig$ = function () {
/******/ return function (type) {
/******/ return type;
/******/ };
/******/ };
/******/ }
/******/
/************************************************************************/
/******/
/******/ // startup
/******/ // Load entry module and return exports
/******/ // This entry module can't be inlined because the eval-source-map devtool is used.
/******/ var __webpack_exports__ = {};
/******/ __webpack_modules__["./node_modules/@ducanh2912/next-pwa/dist/fallback.js"](0, __webpack_exports__, __webpack_require__);
/******/
/******/ })()
;

File diff suppressed because one or more lines are too long

1
public/sw.js.map 100644

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
self.onmessage=async e=>{switch(e.data.type){case"__START_URL_CACHE__":{let t=e.data.url,a=await fetch(t);if(!a.redirected)return(await caches.open("start-url")).put(t,a);return Promise.resolve()}case"__FRONTEND_NAV_CACHE__":{let t=e.data.url,a=await caches.open("pages");if(await a.match(t,{ignoreSearch:!0}))return;let s=await fetch(t);if(!s.ok)return;if(a.put(t,s.clone()),e.data.shouldCacheAggressively&&s.headers.get("Content-Type")?.includes("text/html"))try{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");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)));for(let[,a]of e.matchAll(/<script.*?src=['"](.*?)['"].*?>/g)){let e=/\/_next\/static.+\.js$/i.test(a)?r:c;t.push(e.match(a).then(t=>t?Promise.resolve():e.add(a)))}return await Promise.all(t)}catch{}return Promise.resolve()}default:return Promise.resolve()}};

View File

@ -0,0 +1,102 @@
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
/******/ (function() { // webpackBootstrap
/******/ "use strict";
/******/ var __webpack_modules__ = ({
/***/ "./node_modules/@ducanh2912/next-pwa/dist/sw-entry-worker.js":
/*!*******************************************************************!*\
!*** ./node_modules/@ducanh2912/next-pwa/dist/sw-entry-worker.js ***!
\*******************************************************************/
/***/ (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"));
/***/ })
/******/ });
/************************************************************************/
/******/ // The require scope
/******/ var __webpack_require__ = {};
/******/
/************************************************************************/
/******/ /* webpack/runtime/make namespace object */
/******/ !function() {
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/ }();
/******/
/******/ /* webpack/runtime/trusted types policy */
/******/ !function() {
/******/ var policy;
/******/ __webpack_require__.tt = function() {
/******/ // Create Trusted Type policy if Trusted Types are available and the policy doesn't exist yet.
/******/ if (policy === undefined) {
/******/ policy = {
/******/ createScript: function(script) { return script; }
/******/ };
/******/ if (typeof trustedTypes !== "undefined" && trustedTypes.createPolicy) {
/******/ policy = trustedTypes.createPolicy("nextjs#bundler", policy);
/******/ }
/******/ }
/******/ return policy;
/******/ };
/******/ }();
/******/
/******/ /* webpack/runtime/trusted types script */
/******/ !function() {
/******/ __webpack_require__.ts = function(script) { return __webpack_require__.tt().createScript(script); };
/******/ }();
/******/
/******/ /* webpack/runtime/react refresh */
/******/ !function() {
/******/ if (__webpack_require__.i) {
/******/ __webpack_require__.i.push(function(options) {
/******/ var originalFactory = options.factory;
/******/ options.factory = function(moduleObject, moduleExports, webpackRequire) {
/******/ var hasRefresh = typeof self !== "undefined" && !!self.$RefreshInterceptModuleExecution$;
/******/ var cleanup = hasRefresh ? self.$RefreshInterceptModuleExecution$(moduleObject.id) : function() {};
/******/ try {
/******/ originalFactory.call(this, moduleObject, moduleExports, webpackRequire);
/******/ } finally {
/******/ cleanup();
/******/ }
/******/ }
/******/ })
/******/ }
/******/ }();
/******/
/******/ /* webpack/runtime/compat */
/******/
/******/
/******/ // noop fns to prevent runtime errors during initialization
/******/ if (typeof self !== "undefined") {
/******/ self.$RefreshReg$ = function () {};
/******/ self.$RefreshSig$ = function () {
/******/ return function (type) {
/******/ return type;
/******/ };
/******/ };
/******/ }
/******/
/************************************************************************/
/******/
/******/ // startup
/******/ // Load entry module and return exports
/******/ // This entry module can't be inlined because the eval-source-map devtool is used.
/******/ var __webpack_exports__ = {};
/******/ __webpack_modules__["./node_modules/@ducanh2912/next-pwa/dist/sw-entry-worker.js"](0, __webpack_exports__, __webpack_require__);
/******/
/******/ })()
;

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -11,6 +11,7 @@ import AppContext from "@ctx/AppContext";
import Chapar from "plugins/Chapar";
import { toast } from "react-toastify";
import CoffeeBrewChart from "plugins/Charts/CoffeeBrewChart";
import NothingFound from "plugins/NothingFound/page";
const page = () => {
const router = useRouter();
@ -192,52 +193,61 @@ const page = () => {
buttonEvent={() => CreateBrew()}
/>
</div>
<h3 className="text-right px-3 pb-1 font-medium mt-7 text-sm">
تاریخچه ادجاست ها
</h3>
<div className="flex justify-between mt-4">
<div className=" ">
<div className=" p-3 rounded-2xl">
<div className="w-5 p-1 rounded-full bg-[#4bc0c0]"></div>
<div>
<p className="mb-0 text-gray-400 text-[12px] mt-1 font-medium text-center">
گرماژ قهوه{" "}
</p>
{coffeeBrewData?.pastRecipes?.length > 0 ||
coffeeBrewData?.currentRecipe?.logAt != "0001-01-01T00:00:00" ? (
<>
<h3 className="text-right px-3 pb-1 font-medium mt-7 text-sm">
تاریخچه ادجاست ها
</h3>
<div className="flex justify-between mt-4">
<div className=" ">
<div className=" p-3 rounded-2xl">
<div className="w-5 p-1 rounded-full bg-[#4bc0c0]"></div>
<div>
<p className="mb-0 text-gray-400 text-[12px] mt-1 font-medium text-center">
گرماژ قهوه{" "}
</p>
</div>
</div>
</div>
<div className="w-[2px] h-9 bg-primary-100 opacity-75 mt-4"></div>
<div className="">
<div className=" p-3 rounded-2xl">
<div className="w-5 p-1 rounded-full bg-[#9966ff]"></div>
<div>
<p className="mb-0 text-gray-400 text-[12px] mt-1 font-medium text-center">
زمان عصاره گیری{" "}
</p>
</div>
</div>
</div>
<div className="w-[2px] h-9 bg-primary-100 opacity-75 mt-4"></div>
<div className=" ">
<div className=" p-3 rounded-2xl">
<div className="w-5 p-1 rounded-full bg-[#ff9f40]"></div>
<div>
<p className="mb-0 text-gray-400 text-[12px] mt-1 font-medium text-center">
گرماژ عصاره خروجی{" "}
</p>
</div>
</div>
</div>
</div>
</div>
<div className="w-[2px] h-9 bg-primary-100 opacity-75 mt-4"></div>
<div className="">
<div className=" p-3 rounded-2xl">
<div className="w-5 p-1 rounded-full bg-[#9966ff]"></div>
<div>
<p className="mb-0 text-gray-400 text-[12px] mt-1 font-medium text-center">
زمان عصاره گیری{" "}
</p>
</div>
</div>
</div>
<div className="w-[2px] h-9 bg-primary-100 opacity-75 mt-4"></div>
<div className=" ">
<div className=" p-3 rounded-2xl">
<div className="w-5 p-1 rounded-full bg-[#ff9f40]"></div>
<div>
<p className="mb-0 text-gray-400 text-[12px] mt-1 font-medium text-center">
گرماژ عصاره خروجی{" "}
</p>
</div>
</div>
</div>
</div>
<CoffeeBrewChart data={coffeeBrewData?.pastRecipes} />
<CoffeeBrewCard data={coffeeBrewData?.currentRecipe} last />
{coffeeBrewData?.pastRecipes?.map((e) => (
<CoffeeBrewCard data={e} />
))}
<CoffeeBrewChart data={coffeeBrewData?.pastRecipes} />
<CoffeeBrewCard data={coffeeBrewData?.currentRecipe} last />
{coffeeBrewData?.pastRecipes?.map((e) => (
<CoffeeBrewCard data={e} />
))}
</>
) : (
<NothingFound />
)}
</div>
</div>
</>

View File

@ -14,6 +14,8 @@ const Login = (props) => {
const stepLogin = CTX.state.stepLogin;
const router = useRouter();
const [isLogoCentered, setIsLogoCentered] = useState(true);
useEffect(() => {
if (typeof window !== "undefined") {
const item = localStorage.token;
@ -21,10 +23,17 @@ const Login = (props) => {
router.push("/app/home");
}
}
// Delay to move logo up after 2 seconds
const timer = setTimeout(() => {
setIsLogoCentered(false);
}, 2000);
return () => clearTimeout(timer); // Clean up the timer on unmount
}, []);
return (
<div className="pb-5 ">
<div className="pb-5 relative">
<video
autoPlay
muted
@ -32,30 +41,54 @@ 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 brightness-50 h-screen "
className="absolute left-0 top-0 right-0 w-screen -z-10 object-cover h-screen"
style={{ filter: "brightness(0.3)" }}
>
<source src={"/public/mp4/login.mp4"} type="video/mp4" />
<source src={"/videos/login.mp4"} type="video/mp4" />
</video>
<div className="flex rtl">
<div className="w-[200px] mx-auto pt-10 ">
<Image src={task} className="w-[100px] mx-auto rounded-2xl" />
</div>
<div className=" w-full text-right mt-7">
<h2 className=" text-balck text-[50px] font-bold">بریز</h2>
<p className="mb-0">"مدیرت هارمونیک روتین ها "</p>
</div>
</div>
{/* Logo animation */}
{stepLogin == 0 ? (
<LoginStep />
) : stepLogin == 1 ? (
<VerifyCodeStep />
) : stepLogin == 2 ? (
<SignUp />
) : (
""
{stepLogin != 2 && (
<div
className={`flex flex-col items-center justify-center transition-all duration-1000 ease-in-out ${
isLogoCentered ? "h-screen" : "h-[150px] pt-5"
}`}
>
<div
className={`transition-all duration-1000 ease-in-out ${
isLogoCentered ? "mt-0" : "mt-[150px]"
}`}
>
<Image src={task} className="w-[100px] mx-auto rounded-2xl" />
</div>
<div
className={`text-center ${
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>
</div>
</div>
)}
{/* Login steps show after the logo moves up */}
<div
className={`transition-opacity duration-1000 ${
isLogoCentered ? "opacity-0" : "opacity-100"
} ${stepLogin == 2 ? "mt-0" : "mt-[160px] "}`}
>
{stepLogin == 0 ? (
<LoginStep />
) : stepLogin == 1 ? (
<VerifyCodeStep />
) : stepLogin == 2 ? (
<SignUp />
) : (
""
)}
</div>
</div>
);
};