Commit graph

203 commits

Author SHA1 Message Date
2dec184c42 refactor: Replace Nostr chat preloader with a singleton pattern for improved state management
- Remove the useNostrChatPreloader composable and integrate its functionality into the useNostrChat composable, streamlining chat data handling.
- Update App.vue and ChatComponent to utilize the new singleton instance for managing chat connections and peer subscriptions.
- Enhance Navbar and ChatComponent to reflect changes in unread message tracking and peer management, improving user experience.
- Ensure proper error handling and logging during chat connection and peer loading processes.
2025-08-10 10:50:14 +02:00
855a003962 feat: Integrate Nostr chat preloader for improved chat data handling
- Introduce a new composable, useNostrChatPreloader, to manage chat data preloading, including peer loading and subscription for notifications.
- Update ChatComponent to utilize the preloader, ensuring chat data is ready before connecting.
- Enhance Navbar to display unread message counts with notification badges for better user experience.
- Refactor App.vue to trigger both market and chat preloading upon successful login, streamlining the user experience.
2025-08-10 10:50:14 +02:00
b0101915c7 feat: Implement sorting of peers by latest message timestamp and unread status in Nostr chat
- Introduce a computed property to sort peers based on the latest message timestamp and unread message count, enhancing the user experience by prioritizing relevant conversations.
- Add methods to track and retrieve the latest message timestamp for each peer, ensuring accurate sorting.
- Update the ChatComponent to utilize the new sorting logic, improving the display of peers in the chat interface.

refactor: Reorganize fuzzy search and mobile detection logic in ChatComponent

- Move fuzzy search implementation and mobile detection methods to improve code clarity and maintainability.
- Ensure consistent functionality for searching peers by username or pubkey with typo tolerance.
- Maintain mobile navigation logic for better user experience on smaller devices.
2025-08-10 10:50:14 +02:00
91e9756bf0 fix: build errors 2025-08-10 10:50:14 +02:00
a0ae70670d feat: Enhance peer subscription and logging in Nostr chat
- Improve the subscription process for peers by adding detailed logging for subscription attempts and results.
- Update the ChatComponent to provide a summary of successful and failed subscriptions.
- Enhance the useNostrChat composable with additional logging for subscription filters and incoming message handling.
- Ensure better visibility into connection state changes and subscription readiness.
2025-08-10 10:50:14 +02:00
d48cbbeec0 feat: Add peer notification subscriptions in Nostr chat
- Implement a new method to subscribe to peers for notifications without loading full message history.
- Enhance the ChatComponent to automatically subscribe to peers when the connection is established.
- Update the useNostrChat composable to include the new subscription method and handle notification events.
- Improve logging for subscription status and errors to aid in debugging.
2025-08-10 10:50:14 +02:00
5fa3fcf60f feat: Add unread message notifications and tracking in Nostr chat
- Implement unread message indicators in the ChatComponent for both total unread messages and per-peer unread counts.
- Enhance the useNostrChat composable to manage unread message data, including saving and loading unread counts from localStorage.
- Introduce methods to mark messages as read and update unread counts dynamically as new messages are received.
- Refactor the message handling logic to ensure accurate tracking of unread messages based on the last read timestamp.
2025-08-10 10:50:14 +02:00
7241789c9e refactor: Update FuzzySearch component and composable for improved class handling and code clarity
- Modify the class prop in FuzzySearch.vue to accept both string and array types for greater flexibility.
- Adjust the template to correctly reference props.class for consistent styling.
- Remove unused variables in FuzzySearchDemo.vue to streamline the code.
- Update the updateData function in useFuzzySearch.ts for better parameter clarity.
2025-08-10 10:50:14 +02:00
fd795df8ac refactor: Enhance layout structure in ChatComponent for improved responsiveness
- Update the layout of the peer list and scrolling area to utilize flex properties, ensuring better responsiveness and clarity.
- Adjust the structure of the ChatComponent to maintain consistent spacing and alignment across different screen sizes.
2025-08-10 10:50:14 +02:00
11fb45e527 feat: Add fuzzy search functionality to peer list in ChatComponent
- Implement a search input for filtering peers by name or pubkey, enhancing user experience.
- Display search results count and a message when no peers match the search query.
- Update peer list rendering to utilize filtered results, improving performance and usability.
- Refactor layout for better responsiveness and clarity in the chat interface.
2025-08-10 10:50:14 +02:00
3d1bc94183 fix: Update private key field in chat integration documentation
- Change the private key field name from "prvkey" to "prvkey_hex" in the CHAT_INTEGRATION.md file for clarity and consistency with expected data formats.

feat: Add Fuzzy Search Component and Composable

- Introduce a new FuzzySearch component for Vue 3, leveraging Fuse.js for intelligent search capabilities.
- Implement a useFuzzySearch composable for flexible search functionality, allowing configuration of search options.
- Create demo and README files to showcase usage and features of the fuzzy search implementation.
- Update package.json and package-lock.json to include @vueuse/integrations version 13.6.0 for enhanced performance.
2025-08-10 10:50:14 +02:00
37a539bc2d Fix Build Errors (Clean up ChatComponent and useNostrChat)
- Remove unused ChatMessage interface from ChatComponent to streamline
the code.
- Update getPeerAvatar function parameter for clarity by renaming it to
_peer.
- Remove unnecessary useNostrStore import in useNostrChat, simplifying
the composable's structure.
2025-08-10 10:50:14 +02:00
55e051146e feat: Implement message addition callback and enhance scrolling behavior
- Introduce a callback for when new messages are added, allowing for automatic scrolling to the bottom of the chat when relevant peers are selected.
- Update the ChatComponent to reference the scrolling area correctly and improve the logic for scrolling to the latest messages.
- Enhance console logging for better debugging and tracking of message flow and scrolling actions.
2025-08-10 10:50:14 +02:00
7bef56f630 refactor: Update chat component for improved scrolling behavior
- Change the reference for the scrolling target to a hidden element at the bottom of the chat, enhancing the user experience during message loading.
- Adjust scrolling logic to automatically scroll to the bottom when a peer is selected, ensuring users see the latest messages immediately.
2025-08-10 10:50:14 +02:00
dd7d13f41b refactor: Improve chat component layout and message handling
- Ensure the chat header is always present to maintain layout consistency, even when no peer is selected.
- Update message display logic to only scroll to the bottom when new messages arrive, enhancing user experience.
- Refactor message input and display sections for better responsiveness and usability across devices.
2025-08-10 10:50:14 +02:00
c30e4ba6c5 feat: Enhance Nostr chat functionality with improved authentication and error handling
- Integrate authentication token retrieval for loading peers and current user data.
- Update API endpoints to use a configurable base URL for better flexibility.
- Implement enhanced error handling for API responses, including JSON parsing and logging.
- Refactor relay connection logic to utilize a SimplePool for managing multiple relays efficiently.
- Improve user feedback with console logs for connection status and error details.
2025-08-10 10:50:14 +02:00
3bd87ee712 fix: Refine mobile chat layout and peer selection logic
- Adjust mobile chat component to ensure proper display of peer list and chat view based on selection.
- Enhance avatar and username rendering for selected peers, ensuring fallback options are in place.
- Improve responsiveness and usability of the chat interface, particularly for mobile users.
- Update message display logic to maintain consistency across different screen sizes.

refactor: Update desktop chat layout for improved structure

- Change the layout of the desktop chat component to use a full-height column flexbox, enhancing the overall structure and responsiveness.
- Ensure better alignment and spacing within the chat interface for a more organized appearance.
2025-08-10 10:50:14 +02:00
87663d1d87 feat: Enhance mobile chat experience with responsive design and navigation
- Implement mobile-first design for the chat interface, optimizing touch interactions and navigation.
- Introduce a peer list view that displays only peers until a selection is made, followed by a full-width chat view.
- Add a back button for easy navigation and ensure touch-friendly elements for better usability.
- Optimize message bubbles and avatars for mobile readability and visibility.
- Update documentation to reflect new mobile-responsive features and navigation improvements.
2025-08-10 10:50:14 +02:00
37642ca48c feat: Integrate chat feature into main navigation
- Add a "Chat" link to the main navigation for both desktop and mobile views.
- Include a message icon for visual identification and support for multiple languages (English, Spanish, French).
- Update documentation to reflect navigation integration and usage instructions for the chat feature.
2025-08-10 10:50:14 +02:00
0b62418310 feat: Add Nostr chat integration for LNBits users
- Introduce a new chat system that allows LNBits users to communicate via Nostr relays.
- Implement ChatComponent for real-time messaging, peer selection, and message display.
- Create useNostrChat composable to manage Nostr relay connections, message encryption, and user authentication.
- Develop ChatPage to serve as the main interface for the chat feature.
- Add API endpoints for retrieving current user and public keys for peer messaging.
- Ensure secure communication with encryption and admin-only access to private keys.
2025-08-10 10:50:14 +02:00
c2f11f3d96 chore: update LNBits API configuration in environment and documentation
- Added VITE_LNBITS_API_URL to .env.example for LNBits API integration.
- Updated AUTHENTICATION.md to reflect changes in LNBits base URL configuration.
- Refactored ProfileDialog.vue and config files to use VITE_LNBITS_BASE_URL instead of VITE_API_BASE_URL for API calls.
2025-08-10 10:46:49 +02:00
b453637867 feat: Add wallet opening functionality in ProfileDialog component
- Introduce a new button to open the user's wallet in a new tab.
- Implement error handling for cases where the user ID is not available.
- Retrieve the API base URL from environment variables for constructing the wallet URL.
2025-08-05 00:20:03 +02:00
e56dcb9e60 fix: Format price display in ProductCard component
- Update the price formatting in ProductCard.vue to use `toLocaleString` to add thousand mark separators.
2025-08-04 09:59:35 +02:00
35d2eba4ac Squash merge market-preload into market 2025-08-03 11:20:58 +02:00
9e02574c27 refactor: Remove MarketTest page and update Navbar navigation
- Delete MarketTest.vue as it is no longer needed for testing purposes.
- Remove the corresponding route from the router configuration.
- Update Navbar.vue to eliminate the 'Market Test' navigation item, streamlining the navigation options.
2025-08-03 11:20:58 +02:00
1ed8759162 feat: Add MarketTest page and enhance error handling in market components
- Introduce MarketTest.vue for testing market loading and state management.
- Update error handling in Market.vue and useMarket composable to utilize marketStore for consistent error reporting.
- Enhance logging throughout market loading processes for better debugging and user feedback.
2025-08-03 11:20:58 +02:00
4c31ebaaa5 feat: Add .env.example file and update Navbar for market navigation
- Introduce a new .env.example file for Nostr and API configuration, including settings for push notifications and market relays.
- Update Navbar.vue to include a new navigation item for the market, enhancing user access to market features.
- Extend localization support by adding market translations in English, Spanish, and French.
2025-08-03 11:20:58 +02:00
21bb7372b4 refactor: Replace ShoppingCartIcon with ShoppingCart component in ProductCard and Market pages
- Update ProductCard.vue and Market.vue to use the new ShoppingCart component from lucide-vue-next instead of the previous ShoppingCartIcon from heroicons.
- Adjust button and icon imports for consistency across the application.
2025-08-03 11:20:58 +02:00
4d3d69f527 feat: Implement market functionality with ProductCard, useMarket composable, and market store
- Add ProductCard.vue component for displaying product details, including image, name, description, price, and stock status.
- Create useMarket.ts composable to manage market loading, data fetching, and real-time updates from Nostr.
- Introduce market.ts store to handle market, stall, product, and order states, along with filtering and sorting capabilities.
- Develop Market.vue page to present market content, including loading states, error handling, and product grid.
- Update router to include a new market route for user navigation.
2025-08-03 11:20:58 +02:00
2fc87fa032 feat: Update reka-ui dependency and add new UI components
- Upgrade reka-ui to version 2.4.1 in package.json and package-lock.json for improved features and bug fixes.
- Introduce new Checkbox, HoverCard, Popover, Progress, RadioGroup, Separator, Skeleton, Slider, Switch, Tooltip components to enhance UI functionality.
- Ensure all new components utilize reactive props and maintain consistent styling with utility classes.
2025-08-03 11:20:58 +02:00
98bd504333 refactor: Comment out wallet balance display in Navbar for future adjustments
- Comment out the wallet balance display section in Navbar.vue to prepare for potential redesign or feature updates.
- Remove the border from the CurrencyDisplay component.
2025-08-03 11:20:58 +02:00
941b4c3ec5 refactor: Clean up Navbar component and remove support link
- Remove the "Support" link from the Navbar.vue navigation items to streamline the menu.
- Adjust formatting in Navbar.vue for improved readability and consistency in the template structure.
- Update i18n files to remove references to the "Support" string in English, Spanish, and French locales, enhancing localization accuracy.
2025-08-03 11:20:58 +02:00
93d30c0255 refactor: Simplify CurrencyDisplay component by removing conditional rendering for zero values
- Remove conditional rendering for currency denominations in CurrencyDisplay.vue, ensuring consistent display regardless of value.
- Enhance code clarity by streamlining the template structure while maintaining visual representation of wallet contents.
2025-08-03 11:20:58 +02:00
4b469ce82e feat: Add "My Tickets" button to Navbar for quick access
- Introduce a new button in Navbar.vue that allows users to navigate directly to their tickets, enhancing user experience and accessibility.
2025-08-03 11:20:58 +02:00
437da6ad72 feat: Integrate CurrencyDisplay component for wallet balance in Navbar
- Replace formatted balance display with CurrencyDisplay component in Navbar.vue, enhancing the visual representation of wallet balances.
- Introduce CurrencyDisplay.vue to handle the display of various currency denominations, improving clarity for users regarding their wallet contents.
2025-08-03 11:20:58 +02:00
4cf2b769d6 feat: Add wallet balance display and currency formatting
- Implement wallet balance computation and formatting in Navbar.vue, enhancing user experience by displaying wallet balance in both the main navigation and dropdown menu.
- Introduce currency conversion utilities in currency.ts to format wallet balances into EverQuest currency denominations, improving clarity for users.
2025-08-03 11:20:58 +02:00
c959cf8101 fix: Update manual payment message in PurchaseTicketDialog for clarity
- Change the manual payment message to specify that users need to fill their wallet or use an external payment method, enhancing user understanding of payment options.
2025-08-03 11:20:58 +02:00
217ca70334 refactor: Clean up imports and unused variables in ticket-related components
- Remove unused imports from PurchaseTicketDialog.vue and useUserTickets.ts for improved code clarity.
- Update events.ts to eliminate the unused paymentRequest parameter in payInvoiceWithWallet function.
- Simplify MyTickets.vue by removing the unused unregisteredTickets variable and related QR code generation logic, enhancing maintainability.
2025-08-03 11:20:58 +02:00
a6a65800a4 feat: Update PurchaseTicketDialog to enhance ticket purchase confirmation
- Modify PurchaseTicketDialog.vue to improve the ticket purchase success message and display a ticket icon.
- Add a button for users to easily navigate to their tickets area.
- Refactor the layout for better visual presentation of ticket information.
2025-08-03 11:20:58 +02:00
72e51ea10c refactor: Improve ticket ID display in PurchaseTicketDialog and MyTickets
- Update PurchaseTicketDialog.vue and MyTickets.vue to enhance the presentation of ticket IDs.
- Wrap ticket ID text in a styled container for better visibility and formatting.
- Ensure consistent styling across components for a unified user experience.
2025-08-03 11:20:58 +02:00
de8db6a12b feat: Enhance ticket purchasing and management with QR code support
- Update PurchaseTicketDialog.vue to display a ticket QR code after successful purchase and manage its visibility.
- Refactor useTicketPurchase composable to include ticket QR code generation and state management.
- Introduce QR code functionality in MyTickets.vue for displaying ticket QR codes, allowing users to toggle visibility.
- Improve user experience by providing clear feedback on ticket purchase status and QR code availability.
2025-08-03 11:20:58 +02:00
63d636a8a0 feat: Add My Tickets feature with ticket management
- Introduce MyTickets.vue page to display user tickets with filtering options for paid, pending, and registered tickets.
- Implement useUserTickets composable for fetching and managing user ticket data.
- Update Navbar.vue to include a link to the My Tickets page.
- Enhance events API to support fetching user tickets.
- Define Ticket type in event.ts for better type safety.
2025-08-03 11:20:57 +02:00
f7450627bc refactor: Revamp PurchaseTicketDialog and introduce useTicketPurchase composable
- Update PurchaseTicketDialog.vue to integrate authentication checks and enhance ticket purchasing flow with wallet support.
- Implement useTicketPurchase composable for managing ticket purchase logic, including payment handling and QR code generation.
- Improve user experience by displaying user information and wallet status during the ticket purchase process.
- Refactor API interactions in events.ts to streamline ticket purchasing and payment status checks.
2025-08-03 11:20:57 +02:00
44b767a2e4 refactor: Remove unused icon imports in ProfileDialog component
- Update ProfileDialog.vue to eliminate unnecessary imports of Mail icon, streamlining the component and improving performance.
2025-08-03 11:20:57 +02:00
2f4a65d522 refactor: Enhance layout and responsiveness of Login components
- Update LoginDialog.vue to improve maximum width settings for better adaptability across different screen sizes.
- Adjust Login.vue to refine container padding and centering, ensuring a more consistent layout on various devices.
2025-08-03 11:20:48 +02:00
62c52f0d7c refactor: Improve layout and responsiveness of NostrFeed and Home components
- Adjust NostrFeed.vue to enhance the scroll area height for better adaptability across screen sizes.
- Update Home.vue to refine the container's padding and width for improved layout consistency on various devices.
2025-08-03 11:20:48 +02:00
fd4e0ea8e6 refactor: Improve layout and responsiveness of Navbar and App components
- Update Navbar.vue to enhance spacing and responsiveness for logo and navigation items.
- Adjust App.vue to ensure consistent padding and layout for the header and navigation.
- Refine button sizes and text scaling for better usability across different screen sizes.
2025-08-03 11:20:35 +02:00
eb238ca380 feat: Add ProfileDialog component for user profile management
- Introduce ProfileDialog.vue to display user information and account settings.
- Integrate ProfileDialog into Navbar.vue for easy access to user profile.
- Implement logout functionality within the ProfileDialog, enhancing user experience.
2025-08-03 11:20:35 +02:00
734122ad27 refactor: Simplify logout process and enhance routing in authentication components
- Remove unnecessary async handling in logout functions across UserProfile.vue and Navbar.vue.
- Integrate `useRouter` for consistent redirection to the login page after logout.
- Update `logout` method in useAuth.ts to clear local state without an API call.
2025-08-03 11:20:35 +02:00
412849b312 refactor: Remove unused router import in UserProfile.vue
- Eliminate the `useRouter` import from UserProfile.vue as it is no longer needed for the logout functionality.
2025-08-03 11:20:35 +02:00