Commit Graph

155 Commits

Author SHA1 Message Date
Ruslan Bakiev
ace458ed7e Add KYC profile integration and SupplierInfoBlock component
Some checks failed
Build Docker Image / build (push) Failing after 2m51s
2026-01-21 09:19:44 +07:00
Ruslan Bakiev
0a79b90d1c Replace breadcrumbs with key-value badges in search bar
All checks were successful
Build Docker Image / build (push) Successful in 4m0s
- Add key property to FilterOption interface in CatalogSearchBar
- Display badges in "Key: Value" format (e.g., "Поставщик: Name")
- Remove SuppliersBreadcrumbs from supplier catalog pages
- Add navigationFilters computed with supplier/product/hub badges
- Add handleRemoveFilter to navigate back when badge is clicked
2026-01-19 11:09:58 +07:00
Ruslan Bakiev
804bd9c95d Fix catalog pages UI issues
All checks were successful
Build Docker Image / build (push) Successful in 5m48s
- Remove counter from /catalog/offers search bar
- Add server-clustering to /catalog/offers/[productId]
- Remove transition animations from Card.vue
- Use client-side clustering for suppliers (data from exchange, not geo)
2026-01-19 10:02:41 +07:00
Ruslan Bakiev
43310f5c28 Enable server-side clustering on all catalog pages
All checks were successful
Build Docker Image / build (push) Successful in 4m37s
- Add clusterNodeType prop to CatalogPage
- Update useClusteredNodes to accept nodeType parameter
- Enable server clustering on /offers and /suppliers pages
- Add hoveredId sync on /offers page
- Remove hover:shadow-lg animation from Card
2026-01-16 17:32:59 +07:00
Ruslan Bakiev
d3bc7e9c09 refactor(webapp): Update to use new geo queries - offersByHub, offerToHub
All checks were successful
Build Docker Image / build (push) Successful in 4m23s
- Rename GetOffersToHub → GetOffersByHub
- Rename GetDeliveryToHub → GetOfferToHub
- Delete FindRoutes.graphql, FindProductRoutes.graphql
- Update catalog pages and CalcResultContent to use new query names
- Regenerate GraphQL types
2026-01-16 16:57:30 +07:00
Ruslan Bakiev
7968a32fd4 Fix map layout: use sticky instead of fixed, add rounded corners and shadow
All checks were successful
Build Docker Image / build (push) Successful in 4m20s
2026-01-16 16:27:39 +07:00
Ruslan Bakiev
3b0418f328 fix(catalog): use supplier.uuid instead of teamUuid for navigation
All checks were successful
Build Docker Image / build (push) Successful in 5m25s
- SupplierCard.vue: use supplier.uuid in link generation
- products/[id].vue: get uuid from supplier profile and use it for navigation

Fixes 404 errors on supplier pages
2026-01-16 09:11:46 +07:00
Ruslan Bakiev
1e87a14065 feat(catalog): implement step-by-step navigation for offers and suppliers
All checks were successful
Build Docker Image / build (push) Successful in 4m49s
- Transform offers/index.vue to show products list with sparkline charts
- Create nested routes for offers: /offers → /offers/[productId] → /offers/[productId]/[hubId]
- Create nested routes for suppliers: /suppliers → /suppliers/[supplierId] → /suppliers/[supplierId]/[productId] → /suppliers/[supplierId]/[productId]/[hubId]
- Add OffersBreadcrumbs and SuppliersBreadcrumbs components for navigation
- Update HubCard to accept custom linkTo prop
- Key difference: Suppliers calculation uses FindRoutes (single source), Offers uses FindProductRoutes (all sources)
2026-01-16 00:52:47 +07:00
Ruslan Bakiev
210d3e935c feat: вложенные роуты хаб/товар с хлебными крошками
All checks were successful
Build Docker Image / build (push) Successful in 4m34s
- /catalog/hubs/[id] — список товаров с графиками
- /catalog/hubs/[id]/[productId] — страница товара с большим графиком и предложениями
- CatalogBreadcrumbs — компонент хлебных крошек
2026-01-16 00:25:41 +07:00
Ruslan Bakiev
bab0e9e539 refactor: убрать автовыбор продукта, карточки на всю ширину
All checks were successful
Build Docker Image / build (push) Successful in 4m53s
2026-01-16 00:02:17 +07:00
Ruslan Bakiev
25030f0350 feat: добавить мок-данные графиков цен на карточки продуктов
All checks were successful
Build Docker Image / build (push) Successful in 4m43s
2026-01-15 23:50:52 +07:00
Ruslan Bakiev
71663186e2 refactor: убрать ring бордер с карточки продукта
All checks were successful
Build Docker Image / build (push) Successful in 4m34s
2026-01-15 23:39:35 +07:00
Ruslan Bakiev
5b620f77b3 Improve hub page: new RouteStepper, HubProductCard with ApexCharts
All checks were successful
Build Docker Image / build (push) Successful in 4m57s
- Redesign RouteStepper: nodes connected by lines with distance on line
- Add HubProductCard component with sparkline chart background
- Auto-select first product when hub page loads
- Remove placeholder with package-x icon
- Add ApexCharts plugin for charts
- Pass startName/endName to RouteStepper for route visualization
2026-01-15 15:45:26 +07:00
Ruslan Bakiev
97f346ba83 Fix navigation background color: bg-base-100 → bg-base-200
All checks were successful
Build Docker Image / build (push) Successful in 4m10s
2026-01-15 13:03:16 +07:00
Ruslan Bakiev
43158924ab Fix smooth scroll animation and map positioning
All checks were successful
Build Docker Image / build (push) Successful in 4m4s
- Replace v-show with transform: translateY() for smooth header collapse animation
- Wrap MainNav + SubNav in fixed container with dynamic transform
- Remove sticky positioning from MainNavigation and SubNavigation
- Fix map to extend to screen edge (right-0, no rounded corners)
- Add dynamic padding-top to main for fixed header compensation
2026-01-15 12:51:00 +07:00
Ruslan Bakiev
b9f44ecaf4 Fix SearchBar height and remove padding gaps
All checks were successful
Build Docker Image / build (push) Successful in 4m24s
2026-01-15 12:15:48 +07:00
Ruslan Bakiev
ea7c0b460a Move expand button from separate bar to SearchBar area
All checks were successful
Build Docker Image / build (push) Successful in 4m4s
2026-01-15 11:55:41 +07:00
Ruslan Bakiev
46b1a17a23 Fix smooth scroll in CatalogPage - use pixel values from useScrollCollapse
All checks were successful
Build Docker Image / build (push) Successful in 4m3s
2026-01-15 11:47:56 +07:00
Ruslan Bakiev
e451267c36 Fix search bar top padding on catalog page
Some checks failed
Build Docker Image / build (push) Has been cancelled
2026-01-15 10:04:45 +07:00
Ruslan Bakiev
0337cebc63 Simplify OfferResultCard and use daisyUI Steps
All checks were successful
Build Docker Image / build (push) Successful in 4m42s
- Remove sourceName, latitude, longitude props from OfferResultCard
- Remove LocationMiniMap component (not needed, main map is on the side)
- Convert RouteStepper to use daisyUI steps-horizontal
- Update hub page and CalcResultContent to remove unused props
2026-01-15 00:33:17 +07:00
Ruslan Bakiev
f03554893b Update OfferResultCard: add location, mini map, fix price format
All checks were successful
Build Docker Image / build (push) Successful in 4m30s
- Remove distance from right side (shown in stepper)
- Change price format to symbol + formatted number (e.g. $1,200/тонна)
- Add locationName prop for displaying offer location
- Add LocationMiniMap component for showing point on map
- Update hub page and CalcResultContent to pass coordinates
2026-01-15 00:07:21 +07:00
Ruslan Bakiev
de95dbd059 Unify offer cards: RouteStepper + OfferResultCard components
All checks were successful
Build Docker Image / build (push) Successful in 4m36s
- Add RouteStepper component with transport icons (🚛 🚂 🚢)
- Add OfferResultCard with price, distance, route stages
- Update hub page to use OfferResultCard
- Update CalcResultContent to use OfferResultCard
2026-01-14 23:47:42 +07:00
Ruslan Bakiev
9d0b1a6b15 feat: collapsible header on scroll for catalog pages
All checks were successful
Build Docker Image / build (push) Successful in 4m24s
- Add useScrollCollapse composable to track scroll and collapse state
- Update topnav.vue to show collapsed bar with chevron when scrolled
- Add collapse button (chevron up) to SubNavigation
- Make SubNavigation sticky below MainNavigation
- Update CatalogPage map/searchbar positions based on header state
2026-01-14 21:34:06 +07:00
Ruslan Bakiev
25da16f854 Make search bar sticky third navigation bar
All checks were successful
Build Docker Image / build (push) Successful in 5m17s
- Add sticky positioning with proper styling (bg, border-b)
- Use negative margins to span full width like nav bars
- Update map offset to account for 3 bars (11rem with search bar)
2026-01-14 13:06:30 +07:00
Ruslan Bakiev
479412d901 Hide duplicate counter in pagination when search bar is present
All checks were successful
Build Docker Image / build (push) Successful in 5m27s
Add hideCounter prop to PaginationLoadMore and use it on hubs page
2026-01-14 12:57:58 +07:00
Ruslan Bakiev
7bd5000dc4 Fix map positioning when search bar is present
All checks were successful
Build Docker Image / build (push) Successful in 5m13s
Use dynamic mapTopClass/mapHeightClass based on searchBar slot:
- With searchBar: top-44 (176px), height calc(100vh-12rem)
- Without searchBar: top-32 (128px), height calc(100vh-9rem)
2026-01-14 12:50:57 +07:00
Ruslan Bakiev
134b8a5eb4 Add CatalogSearchBar component with filter badges
All checks were successful
Build Docker Image / build (push) Successful in 5m8s
- Create CatalogSearchBar.vue with search input, filter badges (× to remove), filter dropdown, counter, sort dropdown
- Integrate searchBar slot into CatalogPage with displayedCount and totalCount
- Update hubs page to use CatalogSearchBar with transport type and country filters
- Add translations for search bar in common.json
- Add transport/country filter labels in catalogHubsSection.json
2026-01-14 12:31:38 +07:00
Ruslan Bakiev
a493d2cf01 Add map improvements: hover highlight, fitBounds, search checkbox
All checks were successful
Build Docker Image / build (push) Successful in 5m45s
2026-01-14 12:09:15 +07:00
Ruslan Bakiev
c458f851dc Fix map clusters: use Apollo client, remove flyTo on hover
All checks were successful
Build Docker Image / build (push) Successful in 4m48s
2026-01-14 11:50:39 +07:00
Ruslan Bakiev
46f8e97ee9 feat: add server-side clustering to CatalogPage for hubs
All checks were successful
Build Docker Image / build (push) Successful in 5m8s
2026-01-14 11:16:26 +07:00
Ruslan Bakiev
b75459c8be fix: remove separate /map pages, add hover highlight to CatalogPage
All checks were successful
Build Docker Image / build (push) Successful in 4m48s
- Delete hubs/map.vue, offers/map.vue, suppliers/map.vue
- Pass hoveredId to CatalogMap for marker highlighting
- Split view on main pages (like Airbnb) is the correct approach
2026-01-14 10:46:04 +07:00
Ruslan Bakiev
844878ce85 feat(map): add server-side h3 clustering and hover highlight
All checks were successful
Build Docker Image / build (push) Successful in 4m55s
- Add useClusteredNodes composable for fetching clustered nodes
- Update CatalogMap to support server-side clustering mode
- Add bounds-change event for fetching clusters on map move/zoom
- Add hover event to HubCard for marker highlighting
- Update hubs/map page to use new clustering system
2026-01-14 10:34:44 +07:00
Ruslan Bakiev
01e8eb2cfa fix: separate list items from map points in orders page
All checks were successful
Build Docker Image / build (push) Successful in 4m58s
- Add mapItems prop to CatalogPage for separate map data
- List shows one card per order, map shows source+dest points
- Fix hover to match by orderUuid pattern
2026-01-08 14:52:58 +07:00
Ruslan Bakiev
13f60bd022 feat: show transport type on routes + unify map height
All checks were successful
Build Docker Image / build (push) Successful in 4m33s
- Add transportType display (🚂 ЖД / 🚛 Авто) in RouteStagesList
- Pass transportType from CalcResultContent to RouteStagesList
- Unify map height in CatalogPage for orders/addresses pages
2026-01-08 14:22:37 +07:00
Ruslan Bakiev
6b2208f0ae Add KYC translations, AI button, improve chat, swap homepage sections
Some checks failed
Build Docker Image / build (push) Has been cancelled
- Add missing kycOverview.list translations (en + ru)
- Add AI assistant button to navigation (left of globe)
- Improve AI chat layout: fixed textarea at bottom, full width
- Swap homepage sections: How it works before Who it's for
2026-01-08 13:58:09 +07:00
Ruslan Bakiev
34c7404a42 Refactor navigation and fix UI issues
All checks were successful
Build Docker Image / build (push) Successful in 4m13s
- Add py-4 to main layout for detail page padding
- Show search widget only on main page (not all catalog pages)
- Add 4 menu items: Search, Catalog, Orders, Seller
- Fix orders page click to navigate to order detail
- Update CatalogPage map positioning for new nav structure
- Add search translation to cabinetNav i18n files
2026-01-08 13:26:23 +07:00
Ruslan Bakiev
f3e0260325 Fix search widget destination field not passing mode=search
All checks were successful
Build Docker Image / build (push) Successful in 4m1s
When clicking destination in GlobalSearchBar, now passes ?mode=search
to /select-location so the selection gets saved to searchStore
2026-01-08 13:18:05 +07:00
Ruslan Bakiev
675ccc2064 Add hasSubNav prop for map positioning (3 vs 2 nav levels)
All checks were successful
Build Docker Image / build (push) Successful in 3m58s
2026-01-08 13:11:13 +07:00
Ruslan Bakiev
53904ead05 Fix: offers map coords, map position, orders filter, select-location layout
All checks were successful
Build Docker Image / build (push) Successful in 3m38s
2026-01-08 13:01:54 +07:00
Ruslan Bakiev
8d1b7c6dc7 Unify CatalogPage: fixed map, hover support, delete ListMapLayout
All checks were successful
Build Docker Image / build (push) Successful in 4m31s
2026-01-08 11:15:54 +07:00
Ruslan Bakiev
d6865d2129 UI improvements: filters, map layout, search bar
Some checks failed
Build Docker Image / build (push) Failing after 1m29s
- Add hubCountries query and country filter for hubs page
- Add getAvailableProducts query for offers (only products with active offers)
- Add sourceLatitude/sourceLongitude to orders GraphQL
- Fix ListMapLayout with position fixed for proper map height
- GlobalSearchBar: make fields wider, remove unit selector
- Remove status/isVerified filters from suppliers/offers (backend handles this)
2026-01-08 10:42:59 +07:00
Ruslan Bakiev
0c88cf383c Refactor catalog filters: remove badges, use select dropdowns
All checks were successful
Build Docker Image / build (push) Successful in 4m21s
- Remove filter from suppliers page (not needed)
- Offers: show all active offers directly, add product type filter as select
- Hubs: change filter from pills to select dropdown
- Create CatalogFilterSelect component for dropdown filters
- Update useCatalogOffers to always filter active, use product filter
2026-01-08 10:08:05 +07:00
Ruslan Bakiev
e629025899 Fix UI issues: 3 columns, SubNav label, back button, sticky map, hover flyTo
All checks were successful
Build Docker Image / build (push) Successful in 4m14s
- Homepage roles section now shows 3 columns on medium screens
- SubNavigation catalog offers label changed to "Предложения"
- Removed back button from catalog/offers page
- ListMapLayout: sticky map with full height
- ListMapLayout: hover on card flies to location on map
2026-01-08 10:00:59 +07:00
Ruslan Bakiev
b8de322dd2 Unify layouts and create CatalogPage component
All checks were successful
Build Docker Image / build (push) Successful in 3m45s
- MainNavigation: center tabs on page (absolute positioning)
- SubNavigation: align left instead of center
- Create CatalogPage universal component for list+map pages
- Migrate catalog pages (offers, suppliers, hubs) to CatalogPage
- Remove PageHeader from clientarea pages (redundant with navigation)
- Add topnav layout to supplier detail page

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 09:38:53 +07:00
Ruslan Bakiev
f34c484561 Fix navigation layout and search behavior
All checks were successful
Build Docker Image / build (push) Successful in 3m40s
- Reorder topnav components: search bar before submenu
- GlobalSearchBar: use page navigation instead of dropdowns
- Remove icons from MainNavigation and SubNavigation
- Create ListMapLayout universal component for list+map pages
- Migrate catalog pages (offers, suppliers, hubs) to ListMapLayout
2026-01-08 09:16:56 +07:00
Ruslan Bakiev
1a2693bcd6 feat(ui): redesign GlobalSearchBar, split layouts, and remove hero section
All checks were successful
Build Docker Image / build (push) Successful in 5m25s
- Make GlobalSearchBar functional with searchStore integration
- Add destination search using hubs/nodes GraphQL query
- Navigate to /request page instead of /catalog/offers
- Remove hero section from index.vue (search is now in header)
- Add padding (px-3 lg:px-6) to topnav layout
- Implement split layout for catalog pages (offers, hubs, suppliers)
  - Left side: filters + scrollable card list (40%)
  - Right side: map (60%, hidden on mobile)
2026-01-08 08:13:22 +07:00
Ruslan Bakiev
1e179ab04c fix: correct import path for GetProductsDocument
All checks were successful
Build Docker Image / build (push) Successful in 3m47s
2026-01-08 07:48:55 +07:00
Ruslan Bakiev
c4d0ddb14b fix: remove missing logo.svg reference
Some checks failed
Build Docker Image / build (push) Failing after 1m3s
2026-01-08 07:45:25 +07:00
Ruslan Bakiev
a0c6b3b667 fix: remove @apply with daisyUI classes from scoped styles
Some checks failed
Build Docker Image / build (push) Failing after 1m3s
Move Tailwind/daisyUI classes directly to template instead of using
@apply in scoped styles. Tailwind 4 @reference directive doesn't
support daisyUI custom classes like text-base-content/70, bg-base-200.

Files fixed:
- MainNavigation.vue
- SubNavigation.vue
- GlobalSearchBar.vue
2026-01-08 07:42:59 +07:00
Ruslan Bakiev
6d1dd4eac5 fix: add @reference directive for Tailwind 4 scoped styles
Some checks failed
Build Docker Image / build (push) Failing after 1m46s
Add @reference 'tailwindcss' to components using @apply in scoped styles:
- MainNavigation.vue
- SubNavigation.vue
- GlobalSearchBar.vue

Required for Tailwind CSS 4 compatibility with scoped Vue styles.
2026-01-08 07:35:56 +07:00