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
This commit is contained in:
parent
be93965e13
commit
5eb46e96c3
11 changed files with 169 additions and 26 deletions
|
|
@ -9,6 +9,7 @@ import { useRouter } from 'vue-router'
|
|||
import LogoutDialog from '@/components/ui/logout-dialog/LogoutDialog.vue'
|
||||
import Login from '@/components/Login.vue'
|
||||
import { Dialog, DialogContent } from '@/components/ui/dialog'
|
||||
import ConnectionStatus from '@/components/ConnectionStatus.vue'
|
||||
|
||||
const { t, locale } = useI18n()
|
||||
const { theme, setTheme } = useTheme()
|
||||
|
|
@ -84,6 +85,8 @@ const openLogin = () => {
|
|||
{{ locale === 'en' ? '🇪🇸 ES' : '🇺🇸 EN' }}
|
||||
</Button>
|
||||
|
||||
<ConnectionStatus v-if="nostrStore.isLoggedIn" />
|
||||
|
||||
<template v-if="nostrStore.isLoggedIn">
|
||||
<LogoutDialog :onLogout="handleLogout" />
|
||||
</template>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue