Antoni Nuñez Romeu
38374341ed
feat(i18n): add bilingual support (Català / Castellano)
...
Run Tests on Branches / Detect Changes (push) Successful in 11s
Run Tests on Branches / Backend Tests (push) Has been skipped
Run Tests on Branches / Frontend Tests (push) Successful in 1m44s
Run Tests on Branches / Frontend Mobile Tests (push) Has been skipped
Run Tests on Branches / Parapharmacy API Tests (push) Has been skipped
Add lightweight i18n system using React Context + useTranslation hook.
No external dependencies. Language persisted in localStorage('ff-lang').
New files:
- src/i18n/locales/ca.js (~410 translation keys)
- src/i18n/locales/es.js (~410 translation keys)
- src/i18n/LanguageContext.jsx (Provider + t() function)
- src/i18n/useTranslation.js (hook)
- src/i18n/index.js (barrel export)
Modified 22 files:
- main.jsx: wrap App with LanguageProvider
- App.test.jsx: add LanguageProvider wrapper for tests
- 13 user components: BottomNav, HomeView, LoginModal, SearchView,
ProfileView, AlertsView, ScannerView, PharmacyList, MedicineResults,
ProductResults, SavedNotifications, ErrorBoundary, SearchBar
- 6 admin components: AdminView, LoginForm, PharmacyManagement,
MedicineManagement, PharmacyMedicineLink, PharmacyProductLink
ProfileView includes language selector (globe icon + modal CA/ES)
placed next to the Theme selector.
No routes changed. No API calls affected. No navigation changes.
2026-07-17 09:43:45 +02:00
Antoni Nuñez Romeu
de8fdbb904
feat: add sort by distance and directions to ProductView
...
Run Tests on Branches / Detect Changes (push) Successful in 13s
Run Tests on Branches / Backend Tests (push) Failing after 17s
Run Tests on Branches / Frontend Tests (push) Failing after 16s
Run Tests on Branches / Frontend Mobile Tests (push) Failing after 18s
Run Tests on Branches / Parapharmacy API Tests (push) Has been skipped
- Added sort by distance functionality (same as SearchView)
- Added PharmacyList component with distance display
- Added 'Cómo llegar' button in map popup (Google Maps directions)
- Uses haversineKm for distance calculation
2026-07-16 16:55:48 +02:00
Antoni Nuñez Romeu
26e7d92079
fix: handle both array and object responses in admin search
...
The CIMA search API returns {results: [...]} but the admin panel
was treating it as an array, causing CIMA products to be lost.
Now handles both formats:
- Array: [...]
- Object: {results: [...]}
2026-07-16 16:32:24 +02:00
Antoni Nuñez Romeu
63b25e3f4f
fix: use _id for MongoDB products in frontend
...
- SearchView now uses p._id || p.id for product navigation
- ProductResults uses product._id || product.id for React key
- Fixes 'undefined' error when clicking parapharmacy products
2026-07-16 16:18:22 +02:00
Antoni Nuñez Romeu
3666f4dee8
fix: update ProductResults and admin panel for parapharmacy
...
- Updated ProductResults component with new source labels
- Added price display for parapharmacy products
- Updated admin panel to search both CIMA and Parapharmacy
- Updated getSourceBadge to handle parapharmacy sources
- Added CSS for product price display
2026-07-16 15:58:35 +02:00
Antoni Nuñez Romeu
8bf0b33249
feat: add pharmacy-product linking system
...
Run Tests on Branches / Detect Changes (push) Successful in 12s
Run Tests on Branches / Frontend Tests (push) Has been cancelled
Run Tests on Branches / Frontend Mobile Tests (push) Has been cancelled
Run Tests on Branches / Backend Tests (push) Has been cancelled
- Add pharmacy_products table (PostgreSQL + SQLite)
- Add public route GET /api/products/:source/:id/pharmacies
- Add admin CRUD routes for pharmacy-product links
- Add cascade delete when pharmacy is removed
- Update ProductView to show linked pharmacies
- Create PharmacyProductLink admin component
- Add 'Vincular Producto a Farmacia' tab in AdminView
2026-07-13 20:41:16 +02:00
Antoni Nuñez Romeu
981f3bd3db
fix: address code review issues — nutriscore field name, cache write isolation, missing rate limiter, dead props
2026-07-13 15:46:47 +02:00
Antoni Nuñez Romeu
83920ae57c
feat: display product results alongside medicine results in MedicineResults component
2026-07-13 15:35:11 +02:00
Antoni Nuñez Romeu
a709deb893
feat(frontend): add ProductResults component for unified product search
...
Displays CIMA OTC and Open Food Facts baby products with source/category
badges, product images, brand info, and Nutri-Score for OFF items.
2026-07-13 15:25:35 +02:00
Antoni Nuñez Romeu
8b9b7e8444
Dark mode improvements and FarmaClic rebranding
...
Run Tests on Branches / Detect Changes (push) Successful in 12s
Run Tests on Branches / Backend Tests (push) Has been skipped
Run Tests on Branches / Frontend Tests (push) Successful in 1m55s
Run Tests on Branches / Frontend Mobile Tests (push) Successful in 1m51s
- Dark mode: gray background instead of pure black
- Dark mode: improved notification card visibility (SavedNotifications)
- Dark mode: improved alerts view badge contrast (AlertsView)
- Dark mode: custom pharmacy-themed background image
- Rebranding: replace all logos with FarmaClic branding
- Update PWA icons, favicon, apple-touch-icon, and mobile app icons
2026-07-10 09:58:36 +02:00
Antoni Nuñez Romeu
e9a1d7c53d
Add dark mode for PWA frontend
Run Tests on Branches / Detect Changes (push) Successful in 12s
Run Tests on Branches / Backend Tests (push) Has been skipped
Run Tests on Branches / Frontend Tests (push) Successful in 1m47s
Run Tests on Branches / Frontend Mobile Tests (push) Has been skipped
2026-07-09 13:18:25 +02:00
Antoni Nuñez Romeu
6612c8b10c
Faro & grafana improvements
Run Tests on Branches / Detect Changes (push) Successful in 8s
Run Tests on Branches / Backend Tests (push) Has been skipped
Run Tests on Branches / Frontend Tests (push) Successful in 1m46s
Run Tests on Branches / Frontend Mobile Tests (push) Has been cancelled
2026-07-07 23:40:04 +02:00
Antoni Nuñez Romeu
a58ce306bf
Missing files from commit
Run Tests on Branches / Frontend Tests (push) Has been cancelled
Run Tests on Branches / Backend Tests (push) Has been cancelled
2026-07-07 17:44:36 +02:00
Antoni Nuñez Romeu
afaa4de385
Google services, design fixes
Run Tests on Branches / Backend Tests (push) Successful in 2m2s
Run Tests on Branches / Frontend Tests (push) Successful in 1m55s
2026-07-07 12:50:32 +02:00
Antoni Nuñez Romeu
4404db62ee
feat: avatar popup options, profile redesign, and search dosage parsing
...
Run Tests on Branches / Backend Tests (push) Successful in 2m3s
Run Tests on Branches / Frontend Tests (push) Successful in 1m56s
- Added avatar selection popup with predefined avatar options
- Redesigned ProfileView (web + mobile) with avatar upload and editable fields
- Added AvatarSelectionModal for mobile profile
- Fixed medicine search: parse dosage terms (e.g. 'Paracetamol 1G')
to query CIMA only by name and filter by dosage field
- Updated styles for profile, search, and medicine results
2026-07-07 12:09:42 +02:00
Antoni Nuñez Romeu
fe22e6ee9b
Profile and design hotfixes
Run Tests on Branches / Backend Tests (push) Failing after 17s
Run Tests on Branches / Frontend Tests (push) Failing after 17s
2026-07-07 01:45:09 +02:00
Antoni Nuñez Romeu
0785653474
Hotfixes in ci/cd and notifications
Run Tests on Branches / Backend Tests (push) Failing after 1m30s
Run Tests on Branches / Frontend Tests (push) Successful in 1m42s
2026-07-06 17:18:15 +02:00
Antoni Nuñez Romeu
190b3d163d
Restructure with Turborepo
Run Tests on Branches / Backend Tests (push) Successful in 3m38s
Run Tests on Branches / Frontend Tests (push) Successful in 3m28s
2026-07-06 15:51:53 +02:00