9eaaa4270d
Simplify addMessage/updateMessage to only write to messages.value, add syncMessagesToSession() to copy messages back on session switch and stream completion. Also fix mobile viewport, session list overlay, hamburger logo, and various responsive improvements. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
45 lines
927 B
Vue
45 lines
927 B
Vue
<script setup lang="ts">
|
|
import { onMounted } from 'vue'
|
|
import { NSpin } from 'naive-ui'
|
|
import { useI18n } from 'vue-i18n'
|
|
import { useSettingsStore } from '@/stores/settings'
|
|
import PlatformSettings from '@/components/settings/PlatformSettings.vue'
|
|
|
|
const settingsStore = useSettingsStore()
|
|
const { t } = useI18n()
|
|
|
|
onMounted(() => {
|
|
settingsStore.fetchSettings()
|
|
})
|
|
</script>
|
|
|
|
<template>
|
|
<div class="channels-view">
|
|
<header class="page-header">
|
|
<h2 class="header-title">{{ t('sidebar.channels') }}</h2>
|
|
</header>
|
|
|
|
<div class="channels-content">
|
|
<NSpin :show="settingsStore.loading">
|
|
<PlatformSettings />
|
|
</NSpin>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<style scoped lang="scss">
|
|
@use '@/styles/variables' as *;
|
|
|
|
.channels-view {
|
|
height: calc(100 * var(--vh));
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.channels-content {
|
|
flex: 1;
|
|
overflow-y: auto;
|
|
padding: 20px;
|
|
}
|
|
</style>
|