Files
Hermes-ui/packages/client/src/views/hermes/ChannelsView.vue
T
ekkoandClaude Opus 4.6 9979871550 feat: add Codex OAuth login and fix channel config display
- Add OpenAI Codex Device Code Flow login (backend polling + frontend modal)
- Codex provider integrated into preset dropdown (hides URL/API key fields)
- Sync provider model catalogs with Hermes system
- Fix channel config not displaying on first visit (wait for data load)
- Fix sidebar model list not refreshing after adding provider
- Add autocomplete="off" to API key input to prevent browser autofill

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-17 23:11:57 +08:00

46 lines
1.0 KiB
Vue

<script setup lang="ts">
import { onMounted } from 'vue'
import { NSpin } from 'naive-ui'
import { useI18n } from 'vue-i18n'
import { useSettingsStore } from '@/stores/hermes/settings'
import PlatformSettings from '@/components/hermes/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 || settingsStore.saving" size="large" :description="t('common.loading')">
<PlatformSettings v-if="!settingsStore.loading" />
</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;
position: relative;
}
</style>