20 Commits

Author SHA1 Message Date
DaX
f1f3a65dfd Update documentation and clean up component code 2025-09-24 18:15:19 +02:00
DaX
59304a88f4 Center tabs and move color request to dedicated tab
- Centered tab navigation for better visual balance
- Created dedicated Color Request tab with informative layout
- Removed standalone color request button from main actions
- Added statistics and info to color request section
- Shortened 'Oprema i Delovi' to just 'Oprema' for cleaner tabs
2025-08-29 13:22:34 +02:00
DaX
2fefc805ef Add tabbed interface with Printers and Gear/Accessories sections
- Created tabbed navigation component for switching between sections
- Added Printers table with card layout and request modal
- Added Gear/Accessories table with filtering and request modal
- Integrated tabs into main page with icons
- Added mock data for printers and gear items
- Created request modals with required contact fields
2025-08-29 13:12:12 +02:00
DaX
fd3ba36ae2 Add color request feature with modal and Safari styling fixes
- Implement color request modal popup instead of separate page
- Add Serbian translations throughout
- Fix Safari form styling issues with custom CSS
- Add 'Other' option to material and finish dropdowns
- Create admin panel for managing color requests
- Add database migration for color_requests table
- Implement API endpoints for color request management
2025-08-05 23:34:35 +02:00
DaX
18a4cd1e34 Fix sale countdown timer to properly update when sale dates change
- Fix SaleCountdown useEffect dependency array to include saleEndDate
- Remove console logs and debug output from page.tsx
- Clean up date parsing logic and remove unnecessary error handling
- Ensure countdown recalculates when sale end date changes
- Fix TypeScript type comparison for sale_active boolean check
2025-07-11 13:32:27 +02:00
DaX
7945d9400f Fix countdown to show latest sale end date instead of earliest
- Countdown now shows time until the furthest sale end date
- When setting new 7-day sale, banner shows 7 days instead of old shorter countdown
- Shows the latest active sale deadline instead of earliest one
2025-07-11 12:04:30 +02:00
DaX
b75849e285 Use admin-set sale end dates in countdown banner
- Countdown now uses actual sale_end_date from database instead of hardcoded Sunday
- Shows time until earliest sale end date when multiple sales are active
- Falls back to next Sunday if no end dates are set
- Banner now reflects real deadlines set in admin panel
2025-07-11 11:50:27 +02:00
DaX
7d4e696fcd Improve admin panel and sale countdown banner
- Remove 'apply to all' option from sale manager - only selected items
- Fix PLA Translucent to be spool-only (no refill option)
- Sale countdown shows actual max percentage from database
- Update banner design: blue-purple-orange gradient instead of red
- Remove fire emoji and promotional text
- Make percentage number larger and yellow for emphasis
- Change 'do' to 'od' in discount text
- Add shimmer animation for subtle effect
2025-07-11 11:07:14 +02:00
DaX
f0ea3e963a Add sale countdown timer expiring next Sunday
- Created SaleCountdown component with real-time countdown
- Displays days, hours, minutes, seconds until sale ends
- Responsive design with fire emoji and urgency messaging
- Auto-calculates next Sunday at 23:59:59
- Positioned prominently above filament table
2025-07-06 02:55:08 +02:00
DaX
bf2b80f6dc Add phone contact option with +381677102845
- Added call button next to Kupujem Prodajem link
- Added footer with contact section
- Implemented click tracking for phone calls
- Responsive design for mobile and desktop
2025-07-05 19:56:44 +02:00
DaX
c0682e1969 Improve mobile responsiveness and add scroll-to-top functionality
- Fix header layout to stack vertically on mobile and prevent text overflow
- Reduce table padding on mobile screens for better space utilization
- Make color swatches and text smaller on mobile devices
- Hide bullet separator on mobile for cleaner layout
- Add scroll-to-top when editing or adding filaments in admin
- Ensure all UI elements fit properly on iPhone screens
2025-06-30 23:42:58 +02:00
DaX
7349d1b60d Add Kupujem Prodajem purchase link to homepage
- Added prominent call-to-action button between logo and inventory table
- Styled with green gradient and hover effects
- Includes purchase and external link icons
- Opens in new tab with proper security attributes
- Tracks clicks with Matomo analytics
- Responsive design with smooth transitions

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-30 23:03:18 +02:00
DaX
a2ec640ecc Add Matomo analytics tracking with Suspense fix
- Created MatomoAnalytics component with page view and event tracking
- Fixed Next.js build issue by wrapping useSearchParams in Suspense
- Added tracking for user interactions:
  - Search functionality
  - Table sorting
  - Filter changes (material, finish, color)
  - Dark mode toggles
  - Admin login success/failure
  - Admin filament create/update actions
- Updated Amplify environment variables via AWS CLI
- Analytics URL: https://analytics.demirix.dev (Site ID: 7)
- Only loads when environment variables are set

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-30 23:01:01 +02:00
DaX
12e91d4c3e Remove refresh icon and fix Safari/WebKit runtime errors
- Removed manual refresh button from frontend (kept auto-refresh functionality)
- Fixed WebKit 'object cannot be found' error by replacing absolute positioning with flexbox
- Added lazy loading to images to prevent preload warnings
- Cleaned up unused imports and variables:
  - Removed unused useRef import
  - Removed unused colors state variable and colorService
  - Removed unused ColorSwatch import from FilamentTableV2
  - Removed unused getModifierIcon function from MaterialBadge
- Updated tests to match current implementation
- Improved layout stability for better cross-browser compatibility
- Removed temporary migration scripts

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-30 22:37:30 +02:00
DaX
82c476430f Fix API connectivity and import filament data from PDF
- Update all environment files to use new PostgreSQL API endpoint
- Fix CORS configuration in API server
- Import 35 filaments and 29 colors from PDF data
- Fix TypeScript type error in dashboard
- Add back emoji icons for dark mode toggle
- Remove debugging code and test buttons
- Clean up error handling
2025-06-20 15:40:40 +02:00
DaX
62a4891112 Remove decorative icons and update CORS configuration 2025-06-20 13:05:36 +02:00
DaX
18110ab159 Major restructure: Remove Confluence, add V2 data structure, organize for dev/prod
- Import real data from PDF (35 Bambu Lab filaments)
- Remove all Confluence integration and dependencies
- Implement new V2 data structure with proper inventory tracking
- Add backwards compatibility for existing data
- Create enhanced UI components (ColorSwatch, InventoryBadge, MaterialBadge)
- Add advanced filtering with quick filters and multi-criteria search
- Organize codebase for dev/prod environments
- Update Lambda functions to support both V1/V2 formats
- Add inventory summary dashboard
- Clean up project structure and documentation

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-20 01:12:50 +02:00
DaX
a2252fa923 Fix production environment variables
- Remove old Confluence variables
- Add NEXT_PUBLIC_API_URL for API access

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-20 00:11:36 +02:00
DaX
1a96e5eef6 Switch to static export with build-time data fetching
- Change from server-side rendering to static export
- Fetch data at build time and save as JSON
- Remove API routes and tests, use static JSON file
- Switch back to WEB platform from WEB_COMPUTE
- Update build test for static export
- Exclude out directory from security scan
- Much simpler and more reliable approach
2025-06-19 01:13:15 +02:00
DaX
21f6577592 Convert to Next.js with security features
- Migrate from Vite to Next.js 15 for server-side API support
- Add dynamic API route at /api/filaments that fetches from Confluence
- Implement security measures:
  - API credentials only accessible server-side
  - Security scan script to detect credential leaks
  - Tests to ensure no sensitive data exposure
  - Build-time security checks in CI/CD
- Update AWS Amplify configuration for Next.js deployment
- Update Terraform to use WEB_COMPUTE platform for Next.js
- Add Jest tests for API security
- Remove static JSON approach in favor of dynamic API

This provides real-time data updates while keeping credentials secure on the server.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-19 00:11:19 +02:00