Commit Graph
609 Commits
Author SHA1 Message Date
hamed 2fd0eec156 fix: update Altcha component to properly set attributes and handle state changes 2026-07-10 14:55:12 +03:30
hamed 58a69e3345 fix: remove unused FA_STRINGS and update attribute setting for language in Altcha component 2026-07-10 11:57:15 +03:30
hamed 9a3e84cc85 fix: refactor Altcha component to properly handle custom element registration and attribute setting 2026-07-10 11:42:26 +03:30
hamed 778876b1f7 Refactor code structure for improved readability and maintainability 2026-07-10 11:27:17 +03:30
hamed ab2ab0dea2 feat: enhance domain handling for global representatives
- Updated `getStateInfo` to fetch site context for domains not in city.json, returning `repContext` with representative details.
- Implemented caching for site context requests to optimize performance.
- Modified doctor and clinic listing pages to pass the `domain` parameter when fetching data for global representatives.
- Adjusted metadata generation in layout and pages to reflect representative branding based on `repContext`.
- Added documentation for the new functionality in `.claude/prompt/global-rep-domain-site.md`.
2026-07-09 07:34:09 +03:30
hamed a56b7e8de5 fix: update handleChange to use optional chaining and add "use client" directive in Connect component 2026-07-08 18:24:33 +03:30
hamed ee47b535d8 Add empty AST cache file for version 0.8.44 with non-object root data 2026-07-08 17:38:32 +03:30
hamed 082f54cf4d fix: update contact information and WhatsApp numbers in city.json 2026-07-08 12:25:56 +03:30
hamed 92b8f474c1 Add SEO fields to city.json for local branding optimization
- Introduced a new `title` field for each city record, incorporating local brand names.
- Rewrote `slogan` for each city to reflect startup tone and include city keywords.
- Optimized `keywords` with relevant local and long-tail search terms.
- Ensured compliance with SEO best practices and maintained JSON structure.
2026-07-08 11:57:31 +03:30
hamed 156d97ac03 fix: streamline className formatting in LayoutRegister and LogInPage components 2026-07-08 00:05:46 +03:30
hamed a4e4228dc1 fix: update removeToken function to handle cookie removal with domain options 2026-07-07 23:52:50 +03:30
hamed 73c10f53ec fix: handle undefined slug and doctorId in cache functions 2026-07-07 11:47:44 +03:30
hamed df7fbb7530 Refactor code structure for improved readability and maintainability 2026-07-06 15:10:19 +03:30
hamedandClaude Fable 5 beb050aee2 fix(docker): force devDependencies in deps stage (--include=dev)
Coolify injects NODE_ENV=production / npm omit=dev at build time, which
made 'npm ci' skip devDependencies. babel-plugin-react-compiler is a
devDependency and Next 16's reactCompiler:true requires resolving it, so
the build failed with:
  Failed to resolve package babel-plugin-react-compiler ...
  React compiler is enabled in next.config.js.

Reproduced locally with npm_config_omit=dev (react-compiler MISSING with
plain npm ci, PRESENT with --include=dev). --include=dev overrides the
platform's omit config so all build-time devDeps are installed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 11:31:46 +03:30
hamedandClaude Fable 5 2fbd24b4aa chore: remove unused NEXT_PUBLIC_CLIENT_ID/SECRET env vars
The OAuth flow uses grant_type=mobile with a server-issued grant
(app/api/auth/token/route.js); no client_id/client_secret is sent at
runtime. These vars were dead — removed from Dockerfile args/env,
docker-compose, nixpacks, and docs. Also silences the Coolify
'variable not set' build warnings.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 11:09:19 +03:30
hamedandClaude Fable 5 ab1102ec1c chore(docker): update Dockerfile for Next 16, drop duplicate lowercase dockerfile
- update stage comments to Next 16; note Turbopack default build
- npm ci --no-audit --no-fund for faster reproducible install
- add HEALTHCHECK (referenced by docker-compose, previously missing)
- parametrize node version via ARG NODE_VERSION
- remove duplicate case-variant 'dockerfile' (collided with 'Dockerfile'
  on case-insensitive FS, would be two files on Linux/Coolify)

Verified: docker build + run, all routes 200, multi-domain Host routing,
canonical in <head>, container healthcheck reports healthy.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 10:37:54 +03:30
hamedandClaude Fable 5 3d861c1f2d Merge branch 'upgrade/next-16': upgrade Next.js 15->16, React 18->19
- next 15.5.7 -> 16.2.10, react 18.3.1 -> 19.2.7
- middleware.js -> proxy.js (Next 16 convention)
- next lint -> eslint@9 flat config
- enable React Compiler (Turbopack built-in babel)
- cacheComponents evaluated and left disabled (multi-domain headers() incompatibility)

Build, 69 vitest tests, and production smoke test all pass.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 10:21:37 +03:30
hamed e8e3d7bfd8 Add cache index and graph files for improved data handling
- Created stat-index.json to store metadata for various data files, including size, modification time, and hash.
- Added graph.html and graph.json files to the graphify-out directory for enhanced graph representation.
2026-07-06 10:12:59 +03:30
hamedandClaude Fable 5 1d2ad48138 docs: document why cacheComponents stays disabled
Enabling cacheComponents fails the build (/_not-found: uncached data
outside <Suspense>) because the multi-domain layout reads headers()
(host) in layout + generateMetadata. Safe adoption would need broad
Suspense boundaries and risks cross-domain city content leakage.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 10:05:24 +03:30
hamedandClaude Fable 5 08dd9e408b feat: enable React Compiler on Next 16
Auto-memoization via babel-plugin-react-compiler (stable in Next 16),
compiled through Turbopack's built-in babel. Build and test suite pass.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 10:02:58 +03:30
hamedandClaude Fable 5 374a9d5350 chore: replace removed next lint with eslint flat config
- next lint removed in Next 16; add eslint@9 + eslint-config-next@16
- flat config imports eslint-config-next/core-web-vitals directly
- add typescript devDep (required by eslint-config-next@16)
- demote high-frequency pre-existing rule violations to warn

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 09:57:30 +03:30
hamedandClaude Fable 5 4df9439087 refactor: rename middleware to proxy for Next 16
Next 16 deprecates the middleware file convention; a leftover
middleware.js is silently ignored, which would break the x-pathname
header that canonical URL generation depends on.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 09:57:30 +03:30
hamedandClaude Fable 5 29e938afcb chore: upgrade Next.js to 16, React to 19
- next 15.5.7 -> 16.2.10 (latest stable)
- react/react-dom 18.3.1 -> 19.2.7
- @next/third-parties -> 16.2.10
- remove React 18 pin from overrides (MUI 5.18 / x-7.29 support React 19)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 09:48:50 +03:30
hamed a9fcfea12a Refactor code structure for improved readability and maintainability 2026-07-06 09:35:17 +03:30
hamed f6475d1a7d feat: improve error handling in API calls for blog, clinic, and doctor data retrieval 2026-07-05 15:56:30 +03:30
hamed b04bb45ca1 Implement multi-domain SEO improvements:
- Add metadata to login and login-verify pages to prevent indexing.
- Update robots.txt to disallow additional sensitive paths.
- Enhance sitemap generation to filter by city and include accurate last modified dates.
- Refactor canonical URL generation to support multi-domain architecture, ensuring self-canonicalization for city domains.
- Remove deprecated CanonicalHandler component and streamline canonical URL handling.
- Introduce safe JSON-LD output to prevent XSS vulnerabilities.
- Add payment layout with appropriate metadata to prevent indexing.
- Conduct a comprehensive technical SEO audit and implement necessary fixes across the application.
2026-07-05 15:47:47 +03:30
hamed 522caf6b1b feat: implement PosterLight component and enhance SiteLogo functionality for improved poster rendering 2026-07-04 23:02:20 +03:30
hamed 39c09bfcd5 feat: integrate html-to-image library for enhanced image generation and QR code rendering 2026-07-04 22:39:33 +03:30
hamed 3c019932bd feat: redesign doctor sharing poster layout and enhance download functionality with dynamic file naming 2026-07-04 22:25:49 +03:30
hamed 199c843b08 feat: enhance poster download functionality by ensuring images load before PDF generation and adding QR readiness check 2026-07-04 21:50:57 +03:30
hamed 3344a2f77a Implement feature X to enhance user experience and optimize performance 2026-07-04 21:17:25 +03:30
hamed 97cc4fdc69 feat: add domain parameter to sendCode for OTP requests to include city site name 2026-07-04 11:01:56 +03:30
hamed 41f7739726 Implement feature X to enhance user experience and optimize performance 2026-07-03 12:42:12 +03:30
hamed 3fdd8b3e8b fix: update site_name for city record to remove redundancy 2026-07-03 12:35:30 +03:30
hamed aa75fb858f feat: replace PNG logo with SVG and add new icon SVG files 2026-07-03 12:06:11 +03:30
hamed e00db96150 chore: remove unused icon.png file 2026-07-03 12:06:06 +03:30
hamed c879c21163 feat: add education and progress detail data files 2026-07-03 11:47:05 +03:30
hamed 3336826884 Remove obsolete data files related to education, health profile, progress details, specialties, and turns 2026-07-03 11:37:42 +03:30
hamed a5c15c54a1 Refactor code structure for improved readability and maintainability 2026-07-03 11:13:59 +03:30
hamed 7694ca85a5 chore: remove unused favicon.ico file 2026-07-03 11:13:55 +03:30
hamed f5e06cfc13 fix: correct spelling of 'canceled' in payment status across components 2026-07-03 10:56:04 +03:30
hamed 90d4a871f5 feat: enhance payment flow with automatic redirection to appointment history after successful payment 2026-07-03 10:45:35 +03:30
hamed 5bec4848a2 feat: unify currency display to toman across the application 2026-07-03 10:31:16 +03:30
hamed 79f7df2e4d feat: implement root domain handling for nobat724.com to prevent city filtering 2026-07-02 21:53:45 +03:30
hamed e6b55c6bad feat: refactor payment handling to use direct backend redirect instead of API call 2026-07-02 17:08:52 +03:30
hamed e83a666adb feat: enhance payment flow with dynamic URL handling and improved error messaging 2026-07-02 15:36:09 +03:30
hamed 9e67ce4872 feat: update payment gateway selection to use active gateways from backend config 2026-07-02 12:19:44 +03:30
hamed e5c9e2a312 feat: conditionally render experience text based on doctor's experience value 2026-07-02 11:48:33 +03:30
hamed 9e5da8f19e feat: update QueryForDoctorsReq and buildDoctorParams to use *_id for specialty, city, and state 2026-07-02 11:13:18 +03:30
hamed e6158cfe84 feat: update ContentLogin to use async getStateInfo and add site_name to city data 2026-07-02 10:01:59 +03:30