feat(production): finalize production-readiness improvements

IMPROVEMENTS:
1.  ESLint warnings reduced (27→26, Auth context fully fixed)
   - AuthContext: Fixed signOut, checkSessionTimeout, checkAdminStatus dependencies
   - All functions wrapped with useCallback for stability
   - Remaining warnings are non-critical (fast-refresh, intentional exhaustive-deps)

2.  i18n key coverage verified (100%)
   - All 6 languages: en, ar, ckb, fa, kmr, tr
   - 50 translation keys per language
   - Perfect key parity across all locales
   - No missing translations

3.  Error monitoring integrated (Sentry)
   - @sentry/react installed and configured
   - Environment-based initialization (disabled in dev)
   - Sensitive data filtering (wallet addresses redacted)
   - Session replay enabled (10% sample rate)
   - Performance monitoring (10% trace sample)
   - .env variables for production/staging DSN

PRODUCTION READY STATUS:
- Build: ✓ Success (7.05s)
- Bundle: ✓ Optimized (polkadot 367KB gzip, vendor 52KB gzip)
- ESLint: ✓ 0 errors, 26 warnings (non-critical)
- i18n: ✓ 100% coverage
- Error tracking: ✓ Configured
- Environment config: ✓ Complete

NEXT: Pre-sale UI implementation

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-20 06:37:40 +03:00
parent 0e0ef734fc
commit db8cb44db0
5 changed files with 218 additions and 34 deletions
+108 -14
View File
@@ -41,6 +41,7 @@
"@radix-ui/react-toggle": "^1.1.0",
"@radix-ui/react-toggle-group": "^1.1.0",
"@radix-ui/react-tooltip": "^1.1.4",
"@sentry/react": "^10.26.0",
"@supabase/supabase-js": "^2.49.4",
"@tanstack/react-query": "^5.56.2",
"@types/uuid": "^10.0.0",
@@ -2788,6 +2789,98 @@
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/@sentry-internal/browser-utils": {
"version": "10.26.0",
"resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-10.26.0.tgz",
"integrity": "sha512-rPg1+JZlfp912pZONQAWZzbSaZ9L6R2VrMcCEa+2e2Gqk9um4b+LqF5RQWZsbt5Z0n0azSy/KQ6zAe/zTPXSOg==",
"license": "MIT",
"dependencies": {
"@sentry/core": "10.26.0"
},
"engines": {
"node": ">=18"
}
},
"node_modules/@sentry-internal/feedback": {
"version": "10.26.0",
"resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-10.26.0.tgz",
"integrity": "sha512-0vk9eQP0CXD7Y2WkcCIWHaAqnXOAi18/GupgWLnbB2kuQVYVtStWxtW+OWRe8W/XwSnZ5m6JBTVeokuk/O16DQ==",
"license": "MIT",
"dependencies": {
"@sentry/core": "10.26.0"
},
"engines": {
"node": ">=18"
}
},
"node_modules/@sentry-internal/replay": {
"version": "10.26.0",
"resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-10.26.0.tgz",
"integrity": "sha512-FMySQnY2/p0dVtFUBgUO+aMdK2ovqnd7Q/AkvMQUsN/5ulyj6KZx3JX3CqOqRtAr1izoCe4Kh2pi5t//sQmvsg==",
"license": "MIT",
"dependencies": {
"@sentry-internal/browser-utils": "10.26.0",
"@sentry/core": "10.26.0"
},
"engines": {
"node": ">=18"
}
},
"node_modules/@sentry-internal/replay-canvas": {
"version": "10.26.0",
"resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-10.26.0.tgz",
"integrity": "sha512-vs7d/P+8M1L1JVAhhJx2wo15QDhqAipnEQvuRZ6PV7LUcS1un9/Vx49FMxpIkx6JcKADJVwtXrS1sX2hoNT/kw==",
"license": "MIT",
"dependencies": {
"@sentry-internal/replay": "10.26.0",
"@sentry/core": "10.26.0"
},
"engines": {
"node": ">=18"
}
},
"node_modules/@sentry/browser": {
"version": "10.26.0",
"resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-10.26.0.tgz",
"integrity": "sha512-uvV4hnkt8bh8yP0disJ0fszy8FdnkyGtzyIVKdeQZbNUefwbDhd3H0KJrAHhJ5ocULMH3B+dipdPmw2QXbEflg==",
"license": "MIT",
"dependencies": {
"@sentry-internal/browser-utils": "10.26.0",
"@sentry-internal/feedback": "10.26.0",
"@sentry-internal/replay": "10.26.0",
"@sentry-internal/replay-canvas": "10.26.0",
"@sentry/core": "10.26.0"
},
"engines": {
"node": ">=18"
}
},
"node_modules/@sentry/core": {
"version": "10.26.0",
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.26.0.tgz",
"integrity": "sha512-TjDe5QI37SLuV0q3nMOH8JcPZhv2e85FALaQMIhRILH9Ce6G7xW5GSjmH91NUVq8yc3XtiqYlz/EenEZActc4Q==",
"license": "MIT",
"engines": {
"node": ">=18"
}
},
"node_modules/@sentry/react": {
"version": "10.26.0",
"resolved": "https://registry.npmjs.org/@sentry/react/-/react-10.26.0.tgz",
"integrity": "sha512-Qi0/FVXAalwQNr8zp0tocViH3+MRelW8ePqj3TdMzapkbXRuh07czdGgw8Zgobqcb7l4rRCRAUo2sl/H3KVkIw==",
"license": "MIT",
"dependencies": {
"@sentry/browser": "10.26.0",
"@sentry/core": "10.26.0",
"hoist-non-react-statics": "^3.3.2"
},
"engines": {
"node": ">=18"
},
"peerDependencies": {
"react": "^16.14.0 || 17.x || 18.x || 19.x"
}
},
"node_modules/@standard-schema/spec": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz",
@@ -3132,20 +3225,6 @@
}
}
},
"node_modules/@testing-library/user-event": {
"version": "14.6.1",
"resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz",
"integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12",
"npm": ">=6"
},
"peerDependencies": {
"@testing-library/dom": ">=7.21.4"
}
},
"node_modules/@types/aria-query": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz",
@@ -6014,6 +6093,21 @@
"node": ">=12.0.0"
}
},
"node_modules/hoist-non-react-statics": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
"integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
"license": "BSD-3-Clause",
"dependencies": {
"react-is": "^16.7.0"
}
},
"node_modules/hoist-non-react-statics/node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"license": "MIT"
},
"node_modules/html-encoding-sniffer": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",