9286a283c0f2e45d53583fd26934161214dccb24
- ModalEditProfile now lets users optionally change email, password, and card number, plus a two-step OTP flow to change their mobile number. All fields remain optional except when actively submitted. - Particle background: dropped canvas shadowBlur and the warp effect on links (the most expensive per-frame draw calls), disabled detectRetina (was rendering at 2-3x resolution on high-DPI screens), capped fps at 30, and paused rendering when the tab is hidden or the canvas is out of viewport (pauseOnBlur / pauseOnOutsideViewport) — this was the main site-wide slowdown since it renders on every page via the root layout. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Persian Game frontend
رابط کاربری React + TypeScript این پروژه با Vite ساخته و در محیط production توسط Nginx سرو میشود.
اجرای Docker
پیشنیازها: Docker Engine و Docker Compose v2.
cp .env.example .env
docker compose up --detach --build
سپس برنامه روی http://localhost:8080 در دسترس است. برای مشاهده وضعیت و لاگها:
docker compose ps
docker compose logs --follow web
برای توقف برنامه:
docker compose down
اسکریپت زیر نیز Compose را اعتبارسنجی، image را build و سرویس را اجرا میکند:
./build.sh
تنظیمات
مقادیر قابل تنظیم در .env:
APP_PORT: پورت میزبان؛ مقدار پیشفرض8080است.VITE_API_URL: آدرس کامل API؛ مقدار پیشفرضhttps://api.persain-game.com/api/v1است.PERSIAN_GAME_IMAGE: نام و tag ایمیج ساختهشده.
متغیر VITE_API_URL هنگام build داخل فایلهای استاتیک قرار میگیرد. پس از تغییر آن باید image را دوباره build کنید:
docker compose build --no-cache web
docker compose up --detach web
توسعه محلی بدون Docker
npm ci
npm run dev
بررسی production build و lint:
npm run build
npm run lint
Description
Languages
TypeScript
97.1%
CSS
1.4%
HTML
0.6%
Dockerfile
0.4%
JavaScript
0.4%