Commit Graph

153 Commits

Author SHA1 Message Date
1ce33d9b74 refactor: optimze modal 2026-10-02 13:37:59 +03:30
800efeb784 feat: show the admin-managed announcement popup when the site opens
Fetch the live notice from the API so users see maintenance updates without a hardcoded toast.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-27 22:05:40 +03:30
9286a283c0 feat: full profile editing (email/password/mobile/card) + lighter background particles
- 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>
2026-09-22 01:38:00 +03:30
bbf1fc8899 feat: render the connection-warning block from backend data per service
Replaces the hardcoded "⚠️ اتصال سرویس‌ها" text (shown for every product)
with data.has_connection_notice / data.connection_notice from the
config's own see() response, so it's opt-in per service instead of
always-on for the whole category.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-22 01:14:33 +03:30
e1a84105c7 feat: require reading the service description before purchase
For categories with has_extra_description, the buy button now stays
disabled until the user ticks "توضیحات سرویس را مطالعه کردم" — mirrors
the pattern used for the Shahkar/advanced-verification gates.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-22 00:14:02 +03:30
897146ee12 feat: let users save their national code from the profile page
Wires up the previously-disabled "edit profile" button/modal to save
national_id via POST /profile/national-id, so it's no longer only
collectible through the inline field during a Shahkar-gated purchase.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-17 05:29:25 +03:30
255a48ae99 feat: handle new Shahkar identity verification step during purchase
When the backend responds with requires_shahkar_verification (for
purchases between the 100M and 200M thresholds), show an inline
national-code input instead of failing outright, and resubmit the
buy request with nationalCode once the user fills it in.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-16 20:59:35 +03:30
0b32e97b7d fix: show tutorial button directly in mobile DNS row
Putting "آموزش" only inside the DNS management modal wasn't enough -
mobile users expect a direct button next to "مدیریت DNS", same as
the desktop row already has.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-16 00:16:55 +03:30
fb70f32048 fix: add missing tutorial access to DNS service modal in profile
The "آموزش" button only appeared in the desktop-only action row, and
the modal that opens for DNS on mobile (ModalDnsConfig) never had a
tutorial link at all, unlike ModalConfigDetails for other config
types. DNS users therefore had no way to reach /tutorial on mobile.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-15 23:37:07 +03:30
0434819af0 feat: render service description as structured sections from backend
Matches the admin's new repeater (emoji + title + items per section)
instead of a single plain-text block.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-15 23:25:48 +03:30
5e9e0b7969 feat: drive shop "service description" button/content from backend
Replaces the hardcoded DNS-only content and isDns/category-label check
with data from the config's `has_extra_description` / `extra_description`
fields, so any product can opt into showing free-text extra info.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 16:48:20 +03:30
826f61a0fe feat: responsive media grid with lightbox, proper attachment list
- Media (images/videos) now render in a responsive grid with a
  full-screen lightbox on tap instead of a stacked full-width column.
- Multiple attached files (attachments[]) each get their own icon,
  title, and download button, replacing the single hidden file link.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 19:22:24 +03:30
1ea325ad47 fix: show missing tutorial file download, support more video formats
- Render the download button for a tutorial's uploaded file field
  (it was fetched from the API but never displayed).
- Recognize mov/avi/wmv as video (the backend already accepts them as
  uploads) and add a download fallback for any media type the browser
  can't play inline instead of a dead "unknown file type" message.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KMLvfLviDB12t4U9UijE4k
2026-09-04 18:02:08 +03:30
8b6c0b07de fix: remove expired status from profile filter, show order code
- Drop the now-unused "expired" filter option/status (the API never
  returns expired services anymore).
- Show the order code next to each service in the config card and in
  the service details modal.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KMLvfLviDB12t4U9UijE4k
2026-09-04 17:34:52 +03:30
aeefe075dd fix: fix bug docker 2026-09-02 20:29:41 +03:30
c5bfa5544c feat: add dockeriz project 2026-09-02 00:47:48 +03:30
f16b9044a1 feat: add can_renew 2026-09-01 18:50:58 +03:30
9fd8543b7e feat: add new feature and fix bugs 2026-08-13 16:38:49 +03:30
9c9450ffca Bug -> add rule and fix bug 2026-04-09 08:12:03 +03:30
2ee6a3b6fa Update -> check config count 2025-07-26 01:01:06 +03:30
703c16e9ee Update -> text 2025-07-26 01:00:45 +03:30
josheqani
08bde1ff4b fix(Axios & Layout): add Shop-ID header to Axios instance and navigate to home on shop ID set 2025-05-13 08:31:23 +03:30
Ali Josheghani
bd4e3feea0 fix(ProductList): adjust image styling for better responsiveness and layout 2025-03-27 00:00:11 +03:30
Ali Josheghani
6c5617587d fix(ModalBuy): enhance traffic and user limit display with conditional rendering 2025-03-02 22:15:52 +03:30
Ali Josheghani
f543654f18 fix(Content): replace Button with SmoothScrollLink for smooth scrolling to configs 2025-03-02 22:15:44 +03:30
Ali Josheghani
52e84c58c3 fix(NowSell): adjust margin for improved layout on various screen sizes 2025-03-02 22:15:40 +03:30
Ali Josheghani
6a9fef08b1 fix(Intro): improve layout and formatting of header and button elements 2025-03-02 22:15:36 +03:30
Ali Josheghani
2fad6bb6cd fix(Shop): reorder components to include NowSell in the product display 2025-03-02 22:15:30 +03:30
56b519bdce fix(ConfigItem.tsx): improve code formatting and update button label for service details 2025-02-22 20:55:54 +03:30
0d3106c0d3 fix(ProductConfigList.tsx): update link destination for empty configs 2025-01-26 23:39:21 +03:30
Ali Josheghani
03996d8668 update config item tsx 2025-01-21 15:07:03 +03:30
Ali Josheghani
921e434d95 chore(package-lock.json): remove package lock json and insted use bun lockb 2025-01-21 15:04:03 +03:30
Ali Josheghani
dc21226f2a feat(bun.lockb): add bun lockb config 2025-01-21 15:03:10 +03:30
Ali Josheghani
2328e58ff5 Delete .github/workflows directory 2024-12-19 12:01:56 +03:30
Ali Josheghani
1a06948b35 fix(index.tsx): rempve unused code from index footer 2024-12-17 23:40:39 +03:30
Ali Josheghani
a0ca1a4a0f fix(CopyRight.tsx): fix "مطعلق" word to "متعلق" 2024-12-17 23:39:48 +03:30
Ali Josheghani
59520dafce feat(index.html):remove enmad img from footer 2024-12-17 23:37:41 +03:30
Ali Josheghani
96b7698d8d feat(ProductList.tsx): Added link to support chat and wrapped offline buy image in a link 2024-12-15 11:16:27 +03:30
Ali Josheghani
514e5e06fd chore : Update package-lock.json to reflect new versions of cross-spawn and nanoid 2024-12-12 20:04:00 +03:30
Ali Josheghani
d135f0cc0a feat(ProductList.tsx,offline-buy.jpg): Added offline buy image to ProductList component 2024-12-12 20:02:43 +03:30
alij
3cc3dc3542 (chore) chnage active id 2024-11-10 19:47:59 +03:30
alij
672a765ede (feat) add redirect to home for handle navigate to / without remove params 2024-11-10 18:14:07 +03:30
alij
52b2e30698 (feat) handle for save params when navigate to home 2024-11-10 18:13:13 +03:30
ALi Josheghani
aca1dd53ad feat: Add shop ID slice to store configuration 2024-10-30 11:33:00 +03:30
ALi Josheghani
b853d7df01 feat: Add shop ID slice to store configuration 2024-10-30 11:32:57 +03:30
ALi Josheghani
72eca494b0 feat: Add shop ID to layout component
This commit adds functionality to the layout component to retrieve the shop ID from the URL query parameters and dispatch it to the Redux store using the setShopId action.
2024-10-30 11:32:53 +03:30
ALi Josheghani
0be0abaf9a refactor: Update useAxios to include Shop-ID header
This commit updates the useAxios hook to include the Shop-ID header in the request configuration. It retrieves the shop ID from the state and adds it to the headers if it exists. This change ensures that the Shop-ID is sent along with the request when making API calls.

Co-authored-by: [Author Name]
2024-10-30 11:32:48 +03:30
fb922ec97e feat: Update text and update id 2024-10-18 16:15:13 +03:30
c525c068a0 feat: Update text 2024-10-17 17:47:35 +03:30
0fc961f92a feat: Update text 2024-10-16 19:20:47 +03:30