Commit graph

92 commits

Author SHA1 Message Date
c05f40f1ec feat: Implement push notification system for admin announcements
- Add a notification manager to handle push notifications and integrate with Nostr events.
- Create a push notification service to manage subscription and permission requests.
- Introduce components for notification settings and permission prompts in the UI.
- Update Nostr store to manage push notification state and enable/disable functionality.
- Enhance NostrFeed to send notifications for new admin announcements.
- Implement test notification functionality for development purposes.
2025-07-12 18:10:33 +02:00
cf7d288e50 feat: Enhance Navbar and IdentityDialog components with improved functionality and logging
- Update Navbar to close the mobile menu when opening the identity dialog.
- Add debug logging to IdentityDialog to track changes in the dialog's open state.
- Adjust styling for mobile menu and dialog content for better responsiveness.
2025-07-12 18:10:33 +02:00
5175c20d82 feat: Enhance Navbar and IdentityDialog components with improved functionality and logging
- Update Navbar to close the mobile menu when opening the identity dialog.
- Add debug logging to IdentityDialog to track changes in the dialog's open state.
- Adjust styling for mobile menu and dialog content for better responsiveness.
2025-07-07 01:12:01 +02:00
236a8a59b9 refactor: Simplify Nostr connection management and enhance store integration
- Refactor useNostr composable to utilize a centralized Pinia store for connection state and client management.
- Update NostrFeed and App components to leverage the new store-based approach for relay configuration and client instantiation.
- Remove direct relay URL handling from components, improving maintainability and consistency across the application.
2025-07-02 19:49:06 +02:00
0324cf8ec5 feat: Centralize configuration management for Nostr and API settings
- Introduce a new config module to manage Nostr relays, admin pubkeys, and API settings.
- Update components to utilize the centralized config instead of environment variables directly.
- Refactor relevant files to improve maintainability and reduce reliance on environment variables.
2025-07-02 19:47:55 +02:00
97db2a2fec feat: Add scripts for sending admin and test notes via Nostr
- Introduce `send_admin_note.js` for sending community announcements to Nostr relays.
- Implement `send_test_note.js` for testing note sending with specified private key and relay URL.
- Enhance `NostrFeed.vue` to filter notes based on admin pubkeys and display appropriate titles and descriptions for different feed types.
- Update `Home.vue` to use the announcements feed type for the Nostr feed component.
2025-07-02 19:14:56 +02:00
ee7eb461c4 feat: Implement comprehensive Nostr identity and social features
## Core Identity Management
- Add secure key generation and import functionality
- Implement AES-GCM encryption with PBKDF2 key derivation
- Create password-protected identity storage
- Add browser-compatible crypto utilities (no Buffer dependency)

## User Interface
- Build identity management dialog with tabs for setup and profile
- Add navbar integration with user dropdown and mobile support
- Create password unlock dialog for encrypted identities
- Integrate vue-sonner for toast notifications

## Nostr Protocol Integration
- Implement event creation (notes, reactions, profiles, contacts)
- Add reply thread detection and engagement metrics
- Create social interaction composables for publishing
- Support multi-relay publishing with failure handling
- Add profile fetching and caching system

## Security Features
- Web Crypto API with 100k PBKDF2 iterations
- Secure random salt and IV generation
- Automatic password prompts for encrypted storage
- Legacy support for unencrypted identities

## Technical Improvements
- Replace all Buffer usage with browser-native APIs
- Add comprehensive error handling and validation
- Implement reactive state management with Vue composables
- Create reusable crypto utility functions

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-02 17:14:02 +02:00
8515b1343e feat(ui): Add Toaster and Textarea components
- Introduce Toaster component using vue-sonner for notifications
- Implement Textarea component with v-model support and customizable classes
2025-07-02 16:24:12 +02:00
a74148a0da chore: Set up Electron configuration and update dependencies
- Add Electron Forge configuration in forge.config.js for packaging and building the app
- Create main Electron entry point in main.cjs for application initialization
- Update package.json scripts for Electron development and building
- Add necessary Electron dependencies to package.json
- Modify .gitignore to exclude build artifacts and temporary files
- Refactor Footer and Navbar components to remove unused imports
- Enhance NostrFeed component by removing unnecessary connection logic
- Update i18n setup for better type safety and locale management
- Refactor Home component to clean up unused code
- Extend Nostr store to manage account state with TypeScript interfaces
2025-03-20 17:26:15 +01:00
3c05ddde51 chore: Update project metadata and dependencies
- Change project title from "Atitlán Directory" to "Ariège Hub" in index.html
- Update app title in meta tags for PWA support
- Add @tanstack/vue-table dependency for enhanced table management
- Refactor ConnectionStatus component to improve status variant logic
- Enhance useEvents composable for better error handling and sorting
- Add 'events' translation to Spanish and French locales
- Create a new Pinia store for Nostr state management
2025-03-19 23:02:30 +01:00
c3a8abb252 feat(events): Add Lightning Network ticket purchase flow with QR code generation
- Integrate QRCode library for Lightning payment QR code generation
- Create PurchaseTicketDialog component for ticket purchase workflow
- Implement dynamic ticket purchase API integration with error handling
- Add Lightning wallet payment QR code and deep linking support
- Update events page to trigger ticket purchase dialog
- Configure environment variables for ticket purchase API endpoint
2025-03-11 22:05:03 +01:00
b8c881dea2 feat(events): Add comprehensive events management with dynamic fetching and UI
- Integrate Reka UI Tabs component for event browsing
- Create useEvents composable for event data management
- Implement events API integration with error handling
- Add events page with upcoming and past events sections
- Configure environment variables for API connection
- Add internationalization support for events navigation
2025-03-11 22:05:03 +01:00
55e8fa59d0 refactor(ui): Optimize LanguageSwitcher component rendering and type safety
- Simplify language display logic using computed property
- Add Locale interface for improved type checking
- Remove redundant v-for loops in template
- Enhance readability and performance of language selection rendering
2025-03-11 02:18:29 +01:00
f2a3f5e53e fix tailwind 2025-03-11 01:52:56 +01:00
00f4bfa583 feat(nostr): Implement Nostr Feed with real-time note fetching
- Add NostrFeed component to display Nostr network notes
- Integrate date-fns for human-readable timestamp formatting
- Enhance NostrClient with fetchNotes and subscribeToNotes methods
- Implement loading, error, and empty state handling
- Add scrollable card-based UI for note display
- Configure dynamic relay selection with fallback to environment variables
2025-03-09 16:57:22 +01:00
68d6001880 feat(ui): Improve ConnectionStatus responsive design
- Add responsive classes to ConnectionStatus badge
- Hide status text on mobile screens
- Conditionally display error message on larger screens
- Enhance badge styling with transparent background on mobile
2025-03-09 15:40:32 +01:00
18ece1e3e7 feat(nostr): Add connecting state to Nostr connection management
- Introduce `isConnecting` state in useNostr composable
- Update ConnectionStatus component to handle connecting state
- Add warning variant to Badge for connecting status
- Implement dynamic status text, color, and animation for connection states
- Modify App.vue to pass new isConnecting prop to ConnectionStatus
2025-03-09 15:40:32 +01:00
0923731ee9 feat(ui): Enhance ConnectionStatus and Badge components with dynamic status indicators
- Add animated ping effect to ConnectionStatus badge
- Update Badge variants with more subtle color schemes
- Implement success variant for online/offline states
- Reduce text size and improve visual hierarchy
- Use rounded-full badge design for better aesthetics
2025-03-09 15:40:32 +01:00
ea03290f84 refactor(ui): Improve Badge component styling and variants
- Change Badge component from div to span for semantic correctness
- Add whitespace-nowrap to prevent text wrapping
- Remove unnecessary shadow classes from default and destructive variants
- Enhance outline variant with border and hover states
- Update variant prop handling in Badge component
2025-03-09 15:40:32 +01:00
903636b6f9 update shadcn/tailwind config 2025-03-09 15:40:32 +01:00
2a83972b47 feat(nostr): Add Nostr relay connection and status management
- Integrate nostr-tools for Nostr relay connectivity
- Create NostrClient for managing relay connections
- Implement useNostr composable for reactive connection handling
- Add ConnectionStatus component to display relay connection state
- Configure environment variable for Nostr relay endpoints
- Update App.vue to manage Nostr connection lifecycle
2025-03-09 15:40:32 +01:00
e8225446ac refactor(ui): Enhance Navbar styling with improved text and hover states
- Add text-foreground class to improve color consistency
- Implement hover states for logo, theme toggle, and mobile menu button
- Simplify mobile menu backdrop filter with more concise class
- Ensure consistent text and interaction styling across navbar components
2025-03-09 14:08:55 +01:00
ecc85ba98b feat(ui): Implement Dropdown Menu components for language switcher
- Add DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, and DropdownMenuItem components
- Refactor LanguageSwitcher to use new Dropdown Menu components
- Update Navbar to use LanguageSwitcher component with improved language selection UI
- Remove legacy language toggle logic from Navbar
2025-03-09 13:40:39 +01:00
c1f32c0ea6 chore: Refactor project setup and remove Nostr-specific components
- Remove Nostr-related components (ConnectionStatus, Login)
- Update package.json with performance and analysis tools
- Configure Vite for improved build optimization
- Simplify i18n locales by removing Atitlán-specific content
- Add .cursorrules file with development guidelines
- Update Navbar and Footer to be more generic
2025-03-09 13:05:33 +01:00
3d356225cd bare repo 2025-03-09 12:28:49 +01:00
1147bebf98 comment out local badges 2025-02-16 11:00:41 +01:00
69d0a23848 fix typescript errors
fix typescript errors
2025-02-16 11:00:41 +01:00
9aeff9ddbb improve navbar UI 2025-02-16 11:00:41 +01:00
074a1fc534 new message indicator 2025-02-16 11:00:41 +01:00
d1ac7da1a6 refactor for better message handling 2025-02-16 11:00:41 +01:00
5eb46e96c3 refactor: improve nostr connection and message handling
- Add WebSocket manager class for better connection handling
- Split message handling into separate store
- Add encryption service class
- Create chat composable for reusable chat logic
- Add error handling service
- Add connection status indicators throughout app
- Add message persistence service
- Improve subscription reliability with EOSE handling
- Add connection state management
- Hide status text on mobile for better space usage

These changes improve code organization, reliability, and user experience by:
- Better separation of concerns
- More robust error handling
- Clearer connection status feedback
- Improved message persistence
- More maintainable WebSocket management
- Better mobile responsiveness

Breaking changes:
- Message handling moved to separate store
- WebSocket connections now managed through NostrWebSocketManager
- Encryption now handled through NostrEncryption service
2025-02-16 11:00:41 +01:00
d27f66e95d updates 2025-02-16 11:00:41 +01:00
d694f9b645 lots of login dialog and nostr subsription relate updates 2025-02-16 11:00:41 +01:00
ed1b4cb22a extract Login out of Support.vue as its own dialog; add copy button and reminder to save key 2025-02-16 11:00:41 +01:00
8b3f1aa14b improve subscribe to messages 2025-02-16 11:00:41 +01:00
32b0bf7247 fix dialog box background and positioning 2025-02-16 11:00:41 +01:00
6283c76861 fix tailwind colors; gradients work now! 2025-02-16 11:00:41 +01:00
e94e20db08 add translations 2025-02-16 11:00:41 +01:00
f3eb1622eb improve UI 2025-02-16 11:00:41 +01:00
b32c609a3b fix z-index of mobile menu bar relative to directory search/filter; improve ui 2025-02-16 11:00:41 +01:00
3aa8050b3f implement logout dialog, fix unused imports 2025-02-16 11:00:41 +01:00
d81357ead1 everything looks dopeee 2025-02-16 11:00:41 +01:00
fcf052bf8a ui improvements 2025-02-16 11:00:41 +01:00
b230e22ed1 almost there 2025-02-16 11:00:41 +01:00
231658b980 big milestone 2!!! 2025-02-16 11:00:41 +01:00
ac906ca6c9 big milestone! 2025-02-16 11:00:41 +01:00
53a2982716 increase z-index of filters to go above card links, fit to width of screen; import Button but remove borders 2025-02-11 01:47:20 +01:00
02e699aad5 add quick town selection and category selection from homescreen with localstorage! 2025-02-11 01:41:12 +01:00
73f5683fbc add tuktuk category (taxis will be for driving to the airport, etc) 2025-02-11 00:54:22 +01:00
c9c45f8d28 make footer more compact on mobile 2025-02-11 00:32:51 +01:00