Files
singlechat/client/src/components/HistoryView.vue
Torsten Schulz (local) 0205352ae9 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.
2026-03-19 15:01:59 +01:00

67 lines
1.3 KiB
Vue

<template>
<div class="history-list">
<div class="panel-header" v-html="$t('history_title')"></div>
<div v-if="chatStore.historyResults.length === 0" class="panel-empty">
<p>{{ $t('history_empty') }}</p>
</div>
<div
v-for="item in chatStore.historyResults"
:key="item.userName"
class="history-item"
@click="selectUser(item.userName)"
>
<span class="panel-item-name">{{ item.userName }}</span>
<small v-if="item.lastMessage" class="panel-item-meta">
{{ formatTime(item.lastMessage.timestamp) }}
</small>
</div>
</div>
</template>
<script setup>
import { useChatStore } from '../stores/chat';
const chatStore = useChatStore();
function selectUser(userName) {
chatStore.requestConversation(userName);
}
function formatTime(timestamp) {
const date = new Date(timestamp);
return date.toLocaleString('de-DE');
}
</script>
<style scoped>
.panel-header {
margin-bottom: 16px;
}
.panel-empty {
color: #637067;
}
.history-item {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
border-radius: 10px;
}
.panel-item-name {
font-weight: 600;
color: #18201b;
}
.panel-item-meta {
white-space: nowrap;
font-size: 12px;
font-weight: 500;
color: #637067;
}
</style>