Enhance UI and functionality across multiple components

- Updated styles in style.css to improve overall design consistency and introduced CSS variables for better theming.
- Refined ChatWindow.vue with improved no-conversation styling and adjusted image borders for a cleaner look.
- Enhanced HistoryView.vue and InboxView.vue with new panel styles for better user experience and readability.
- Revamped LoginForm.vue to provide a more engaging user interface with a landing page layout and cookie-based profile persistence.
- Improved MenuBar.vue and SearchView.vue with active state indicators and refined item displays for better navigation.
- Added logout functionality in chat store and server routes to manage user sessions effectively.
- Introduced a new mockup view route for design previews.

These changes collectively enhance the user experience and visual appeal of the application.
This commit is contained in:
Torsten Schulz (local)
2026-03-19 15:01:59 +01:00
parent 8f3cbc16b8
commit 0205352ae9
15 changed files with 2432 additions and 350 deletions

View File

@@ -6,11 +6,18 @@
{{ $t('menu_timeout_in', [formatTime(chatStore.remainingSecondsToTimeout)]) }}
</span>
<button @click="handleLeave">{{ $t('menu_leave') }}</button>
<button @click="handleSearch">{{ $t('menu_search') }}</button>
<button @click="handleInbox" :class="{ 'has-unread': chatStore.unreadChatsCount > 0 }">
<button @click="handleSearch" :class="{ 'is-active': chatStore.currentView === 'search' }">
{{ $t('menu_search') }}
</button>
<button
@click="handleInbox"
:class="{ 'has-unread': chatStore.unreadChatsCount > 0, 'is-active': chatStore.currentView === 'inbox' }"
>
{{ $t('menu_inbox') }}<span v-if="chatStore.unreadChatsCount > 0"> ({{ chatStore.unreadChatsCount }})</span>
</button>
<button @click="handleHistory">{{ $t('menu_history') }}</button>
<button @click="handleHistory" :class="{ 'is-active': chatStore.currentView === 'history' }">
{{ $t('menu_history') }}
</button>
</template>
</div>
</template>
@@ -42,4 +49,3 @@ function formatTime(seconds) {
return `${minutes}:${secs.toString().padStart(2, '0')}`;
}
</script>