Commit graph

44 commits

Author SHA1 Message Date
7245123e49 Improve merchant creation with automatic keypair generation
Enhance the merchant creation process by automatically generating Nostr keypairs
for users who don't have them, and streamline the API interface.

Changes:
- Add CreateMerchantRequest model to simplify merchant creation API
- Auto-generate Nostr keypairs for users without existing keys
- Update merchant creation endpoint to use user account keypairs
- Improve error handling and validation in merchant creation flow
- Clean up frontend JavaScript for merchant creation

This ensures all merchants have proper Nostr keypairs for marketplace
functionality without requiring manual key management from users.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-31 12:04:22 +01:00
arcbtc
7771201c32 moved to orders tab 2025-12-30 11:46:45 +00:00
arcbtc
1777b5df6d Merge branch 'main' into feature/merchant-keys-panel-146 2025-12-30 11:40:14 +00:00
Ben Weeks
7aec14854c feat: multi-profile support and UI improvements
- Remove backend restriction on one merchant per user
- Add "Generate New Key" dialog with npub/nsec display
- Add "Import Existing Key" option with duplicate check
- Change "Save" to "Save & Publish" in edit profile dialog
- Remove standalone Publish button (now part of Save)
- Add trash icon to saved profile for removal
- Show display_name in saved profiles dropdown
- Hide nsec by default with eye toggle in generate dialog

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 14:05:18 +00:00
Arc
a2931d675a fixup: ui 2025-12-24 05:32:27 +00:00
Arc
05a23fae0b Merge remote-tracking branch 'origin/main' into feature/nostrclient-status-indicator 2025-12-24 03:57:27 +00:00
Ben Weeks
bd010ece6b style: fix prettier formatting
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 12:21:59 +00:00
Ben Weeks
b8c2c99175 chore: remove unused status endpoint and debug logging
- Remove api_get_nostr_status() - frontend calls nostrclient directly
- Remove unused httpx and settings imports
- Remove console.log debug statement

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 14:46:30 +00:00
Ben Weeks
d2755d7232 fix: improve nostrclient status detection and display
- 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>
2025-12-22 12:49:33 +00:00
Ben Weeks
9911a03575 feat: add nostrclient status indicator and connection button
- 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>
2025-12-22 10:15:11 +00:00
Ben Weeks
71f458b9b9 feat: restructure UI with tab-based navigation (#119)
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>
2025-12-21 19:06:28 +00:00
Vlad Stan
de7fe059b8
V1 (#106) 2024-11-06 11:50:21 +02:00
PatMulligan
7a3b144a94
pass showKeys as prop to merchant-details child and use emit to toggle (#105)
previously, index and its child compoment merchant-details had their own
booleans and their values were not synched. Using a prop avoids this
problem
2024-10-25 15:19:13 +03:00
Vlad Stan
f2773e0b44
Fix subscription errors (#81)
* pref: merge filters in one

* chore: load nit

* feat: restore individual order
2023-09-12 15:03:37 +03:00
Vlad Stan
31d04ff3a5 feat: show shipping cost for order 2023-07-05 09:58:34 +03:00
Vlad Stan
e47c6ec7f4 feat: show order details for customer 2023-07-04 08:40:49 +02:00
Vlad Stan
4bcc994057 chore: code clean-up 2023-07-04 08:40:49 +02:00
Vlad Stan
0ce4d1ebce fix: notification for orders 2023-07-04 08:40:49 +02:00
Vlad Stan
a3c221aca8 feat: activate/deactivate merchant 2023-07-04 08:40:49 +02:00
Vlad Stan
33adae672d
Product delete (#64)
* feat: restore stalls from `nostr` as pending

* feat: stall and prod last update time

* feat: restore products and stalls as `pending`

* feat: show pending stalls

* feat: restore stall

* feat: restore a stall from nostr

* feat: add  blank `Restore Product` button

* fix: handle no talls to restore case

* feat: show restore dialog

* feat: allow query for pending products

* feat: restore products

* chore: code clean-up

* fix: last dm and last order query

* chore: code clean-up

* fix: subscribe for stalls and products on merchant create/restore

* feat: add message type to orders

* feat: simplify messages; code format

* feat: add type to DMs; restore DMs from nostr

* fix: parsing ints

* fix: hide copy button if invoice not present

* fix: do not generate invoice if product not found

* feat: order restore: first version

* refactor: move some logic into `services`

* feat: improve restore UX

* fix: too many calls to customer DMs

* fix: allow `All` customers filter

* fix: ws reconnect on server restart

* fix: query for customer profiles only one

* fix: unread messages per customer per merchant

* fix: disable `user-profile-events`

* fix: customer profile is optional

* fix: get customers after new message debounced

* chore: code clean-up

* feat: auto-create zone

* feat: fixed ID for default zone

* feat: notify order paid
2023-06-30 13:12:56 +03:00
Vlad Stan
37d26645da fix: remove closed websocket 2023-04-11 19:16:05 +03:00
Vlad Stan
af780a3080 feat: add reconnect to nostrclient 2023-04-11 19:03:41 +03:00
Vlad Stan
755f8ac9ae fix: filter and notifications 2023-04-03 15:11:46 +03:00
Vlad Stan
a65017d04e fix: shipping cost; update UI on new order 2023-04-03 11:57:55 +03:00
Vlad Stan
ef49983e10 feat: dinamically refresh orders 2023-03-30 13:58:14 +03:00
Vlad Stan
178966f0bb feat: navigate from chat to orders 2023-03-30 13:58:14 +03:00
Vlad Stan
9dac1d25b2 feat: keep customer profiles up to date 2023-03-30 13:58:14 +03:00
Vlad Stan
dd4d677ce1 feat: allow delete merchant from nostr 2023-03-23 11:14:34 +02:00
Vlad Stan
27589856bd fix: clear merchant screen on delete 2023-03-23 09:47:40 +02:00
Vlad Stan
9d63d2f5d8 feat: link order to DMs 2023-03-17 10:51:20 +02:00
Vlad Stan
aeebae863e fix: do not allow two merchants with the same public key 2023-03-16 09:56:30 +02:00
Vlad Stan
a16bce543b feat: add merchant-details 2023-03-14 14:31:30 +02:00
Vlad Stan
8228487fc4 feat: add empty DMs box 2023-03-14 14:31:30 +02:00
Vlad Stan
0ca5bf6475 feat: add basic order-list 2023-03-07 09:12:14 +02:00
Vlad Stan
e72e315b7a feat: import private key 2023-03-02 16:00:40 +02:00
Vlad Stan
46f3ad46ad feat: allow restore from nsec 2023-03-02 15:52:40 +02:00
Vlad Stan
8ea5fbc113 feat: basic stall flow 2023-03-01 11:35:04 +02:00
Vlad Stan
fef4f349f2 feat: manage shipping zones 2023-02-28 16:30:09 +02:00
Vlad Stan
dc6ae1d9b3 feat: basic shipping zones UI 2023-02-28 13:08:58 +02:00
Vlad Stan
03a1ccb0b2 fix: set merchant after create 2023-02-28 12:28:51 +02:00
Vlad Stan
e1745703f6 feat: show merchant keypair 2023-02-28 12:21:34 +02:00
Vlad Stan
b0ffbe0b4c feat: init merchant 2023-02-28 11:46:40 +02:00
Vlad Stan
6f3154a449 fix: js references 2023-02-28 09:50:49 +02:00
Tiago Vasconcelos
eb3d1e8f99 Initial skeleton 2023-02-27 18:13:26 +00:00