diff --git a/electron.vite.config.ts b/electron.vite.config.ts
index 08708635..c5f0e76b 100644
--- a/electron.vite.config.ts
+++ b/electron.vite.config.ts
@@ -43,7 +43,24 @@ export default defineConfig({
plugins: [externalizeDepsPlugin()]
},
renderer: {
- plugins: [react(), ...visualizerPlugin('renderer')],
+ plugins: [
+ react({
+ babel: {
+ plugins: [
+ [
+ 'styled-components',
+ {
+ displayName: true, // 开发环境下启用组件名称
+ fileName: false, // 不在类名中包含文件名
+ pure: true, // 优化性能
+ ssr: false // 不需要服务端渲染
+ }
+ ]
+ ]
+ }
+ }),
+ ...visualizerPlugin('renderer')
+ ],
resolve: {
alias: {
'@renderer': resolve('src/renderer/src'),
diff --git a/package.json b/package.json
index e3342288..a4827a5b 100644
--- a/package.json
+++ b/package.json
@@ -51,6 +51,7 @@
"@electron-toolkit/preload": "^3.0.0",
"@electron-toolkit/utils": "^3.0.0",
"@electron/notarize": "^2.5.0",
+ "@emotion/is-prop-valid": "^1.3.1",
"@google/generative-ai": "^0.21.0",
"@llm-tools/embedjs": "patch:@llm-tools/embedjs@npm%3A0.1.28#~/.yarn/patches/@llm-tools-embedjs-npm-0.1.28-8e4393fa2d.patch",
"@llm-tools/embedjs-libsql": "^0.1.28",
@@ -104,6 +105,7 @@
"antd": "^5.22.5",
"applescript": "^1.0.0",
"axios": "^1.7.3",
+ "babel-plugin-styled-components": "^2.1.4",
"browser-image-compression": "^2.0.2",
"dayjs": "^1.11.11",
"dexie": "^4.0.8",
diff --git a/src/renderer/src/App.tsx b/src/renderer/src/App.tsx
index 84d877c6..3ea5c8de 100644
--- a/src/renderer/src/App.tsx
+++ b/src/renderer/src/App.tsx
@@ -1,9 +1,11 @@
import '@renderer/databases'
+import isPropValid from '@emotion/is-prop-valid'
import store, { persistor } from '@renderer/store'
import { Provider } from 'react-redux'
import { HashRouter, Route, Routes } from 'react-router-dom'
import { PersistGate } from 'redux-persist/integration/react'
+import { StyleSheetManager } from 'styled-components'
import Sidebar from './components/app/Sidebar'
import TopViewContainer from './components/TopView'
@@ -19,35 +21,44 @@ import KnowledgePage from './pages/knowledge/KnowledgePage'
import PaintingsPage from './pages/paintings/PaintingsPage'
import SettingsPage from './pages/settings/SettingsPage'
import TranslatePage from './pages/translate/TranslatePage'
-
function App(): JSX.Element {
return (
-
-
-
-
-
-
-
- {/* 添加导航处理组件 */}
-
-
- } />
- } />
- } />
- } />
- } />
- } />
- } />
- } />
-
-
-
-
-
-
-
+ {
+ // 对于 HTML 元素,使用 isPropValid 检查
+ if (typeof element === 'string') {
+ return isPropValid(prop)
+ }
+ // 对于自定义组件,允许所有非特殊属性通过
+ return prop !== '$' && !prop.startsWith('$')
+ }}>
+
+
+
+
+
+
+
+ {/* 添加导航处理组件 */}
+
+
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+
+
+
+
+
+
+
+
)
}
diff --git a/src/renderer/src/components/Popups/AddAssistantPopup.tsx b/src/renderer/src/components/Popups/AddAssistantPopup.tsx
index 0b785d3f..e33c534b 100644
--- a/src/renderer/src/components/Popups/AddAssistantPopup.tsx
+++ b/src/renderer/src/components/Popups/AddAssistantPopup.tsx
@@ -110,7 +110,7 @@ const PopupContainer: React.FC = ({ resolve }) => {
allowClear
autoFocus
style={{ paddingLeft: 0 }}
- bordered={false}
+ variant="borderless"
size="middle"
/>
diff --git a/src/renderer/src/components/Popups/SelectModelPopup.tsx b/src/renderer/src/components/Popups/SelectModelPopup.tsx
index e985c8ba..f7811dd5 100644
--- a/src/renderer/src/components/Popups/SelectModelPopup.tsx
+++ b/src/renderer/src/components/Popups/SelectModelPopup.tsx
@@ -295,7 +295,7 @@ const PopupContainer: React.FC = ({ model, resolve }) => {
allowClear
autoFocus
style={{ paddingLeft: 0 }}
- bordered={false}
+ variant="borderless"
size="middle"
onKeyDown={(e) => {
// 防止上下键移动光标
diff --git a/src/renderer/src/windows/mini/home/components/InputBar.tsx b/src/renderer/src/windows/mini/home/components/InputBar.tsx
index 4f218a48..cb29c6af 100644
--- a/src/renderer/src/windows/mini/home/components/InputBar.tsx
+++ b/src/renderer/src/windows/mini/home/components/InputBar.tsx
@@ -27,7 +27,7 @@ const InputBar = forwardRef(
= 2"
+ checksum: 10c0/553f35f5feb4b51fda9c9aeef8a31c1b66f430687ab17830b7cdacfe7e93f912aef55bf59e402f4e0a1fa7ad039768ab3626512bbb9bf1f76fcc67ba47e7a56e
+ languageName: node
+ linkType: hard
+
"bail@npm:^2.0.0":
version: 2.0.2
resolution: "bail@npm:2.0.2"