From cb0ba29d046f1bb89cd5f0d3d07de51780148d85 Mon Sep 17 00:00:00 2001 From: BLxcwg666 Date: Sat, 10 Jan 2026 02:13:24 +0800 Subject: [PATCH] fix(sidebar): prevent unintended collapse behavior --- src/layouts/sidebar/index.tsx | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/layouts/sidebar/index.tsx b/src/layouts/sidebar/index.tsx index 7818690d8..37efb2c12 100644 --- a/src/layouts/sidebar/index.tsx +++ b/src/layouts/sidebar/index.tsx @@ -1,16 +1,17 @@ -import { GATEWAY_URL } from '~/constants/env' -import { KBarWrapper } from '~/components/k-bar' -import $RouterView from '~/layouts/router-view' import { NLayoutContent } from 'naive-ui' -import { RESTManager } from '~/utils' import { computed, defineComponent, watchEffect } from 'vue' import { RouterLink } from 'vue-router' +import type { CSSProperties } from 'vue' + +import { KBarWrapper } from '~/components/k-bar' +import { GATEWAY_URL } from '~/constants/env' +import $RouterView from '~/layouts/router-view' +import { RESTManager } from '~/utils' import { Sidebar } from '../../components/sidebar' import { useStoreRef } from '../../hooks/use-store-ref' import { UIStore } from '../../stores/ui' import styles from './index.module.css' -import type { CSSProperties } from 'vue' export const SidebarLayout = defineComponent({ name: 'SidebarLayout', @@ -21,7 +22,18 @@ export const SidebarLayout = defineComponent({ const { meta, b } = useMagicKeys() watchEffect(() => { if (meta.value && b.value) { - collapse.value = !collapse.value + // is the focus in the input box? + const activeElement = document.activeElement + const isInEditor = + activeElement?.tagName === 'TEXTAREA' || + activeElement?.tagName === 'INPUT' || + activeElement?.getAttribute('contenteditable') === 'true' || + activeElement?.closest('.monaco-editor') || + activeElement?.closest('[role="textbox"]') + + if (!isInEditor) { + collapse.value = !collapse.value + } } })