Extract conditional SQL clause to variable to fix E501 (line > 88 chars)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add generate_logo.py script to create icon programmatically
- New shop icon with striped awning and display windows
- Consistent purple color scheme with Nostr Proxy extension
- Update config.json to reference new icon
Closes#150🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The get_orders and get_orders_for_stall functions were generating
malformed SQL when filtering by additional parameters like public_key.
Before: WHERE merchant_id = :merchant_id public_key = :public_key
After: WHERE merchant_id = :merchant_id AND public_key = :public_key
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Call nostrclient /relays API directly from frontend for accurate status
- Show correct error messages from API response (body.detail)
- Add orange warning state for no relays configured
- Show relay count when connected (X of Y connected)
- Simplify status logic: 200 = green, no relays = orange, error = red
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add /api/v1/status endpoint to check nostrclient availability
- Add color-coded "Connect" button (red/orange/green) based on status
- Show dropdown with connection details (relays count, websocket status)
- Add warning banner when nostrclient extension is not available
- Update info card with description of extension functionality
Closes#132🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Reorganizes the merchant dashboard into a tab-based layout:
- Tabs: Merchant | Shipping | Stalls | Products | Messages | Orders
- Publish dropdown with NIP-15 options (NIP-99 disabled/coming soon)
- Consistent UI patterns across all tabs:
- Search/filter/buttons aligned right
- Actions column on right side of tables
- Equal-width tabs
- Stalls tab: popup edit dialog, navigation to Products/Orders
- Products tab: filter icon dropdown for stall filtering
- Modular component structure for each tab section
- Fixed product API calls to use correct endpoints
Closes#119🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use window.g.allowedCurrencies instead of fetching all currencies from
the API, so currency dropdowns only show currencies configured by the
admin in LNbits settings.
Closes#116🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Refactor merchant details layout for improved responsiveness and styling in index.html
* Revamp key pair component layout with improved styling and functionality. Added a header with a toggle for showing the private key, enhanced QR code display for both public and private keys, and included copy buttons for better user interaction.
Update key pair component styling and functionality: adjust QR code dimensions, improve key display format with truncation, and refine button margins for enhanced user experience.
Add 'show-buttons' prop to QR code components in key pair template for improved functionality
Update key pair component layout to use 'col-sm-6' for responsive design of QR code sections, enhancing display on smaller screens.
* Enhance direct messages component layout with improved styling and responsiveness. Updated class names for better alignment, added ellipsis for long customer labels, and modified button styles for consistency. Improved select options display with custom templates for better user experience.
* Refactor customer label generation in direct messages component for improved readability. Added checks for undefined customer data, enhanced label formatting with truncation for long descriptions, and adjusted unread message display format.
* make format