From 016e071d50674fa26d3d9941712c4286dcf68d1a Mon Sep 17 00:00:00 2001
From: GuoRuqiang <61670021+guoruqiang@users.noreply.github.com>
Date: Wed, 18 Sep 2024 10:29:25 +0000
Subject: [PATCH 1/7] update HeaderBar
---
web/src/components/HeaderBar.js | 24 ++++++++++++++++++++++++
web/src/components/SiderBar.js | 19 ++++++++++---------
2 files changed, 34 insertions(+), 9 deletions(-)
diff --git a/web/src/components/HeaderBar.js b/web/src/components/HeaderBar.js
index b73bb0ee..b487822e 100644
--- a/web/src/components/HeaderBar.js
+++ b/web/src/components/HeaderBar.js
@@ -12,6 +12,7 @@ import {
IconHelpCircle,
IconHome,
IconHomeStroked,
+ IconComment,
IconKey,
IconNoteMoneyStroked,
IconPriceTag,
@@ -37,6 +38,28 @@ let buttons = [
itemKey: 'home',
to: '/',
icon: ,
+ onMouseEnter: (e) => {
+ e.currentTarget.querySelector('svg').style.color = '#0064FA';
+ },
+ onMouseLeave: (e) => {
+ e.currentTarget.querySelector('svg').style.color = 'black';
+ },
+ },
+ // 增加 聊天 按钮
+ {
+ text: '聊天',
+ itemKey: 'chat',
+ to: '/chat',
+ icon: ,
+ onMouseEnter: (e) => {
+ e.currentTarget.querySelector('svg').style.color = '#0064FA';
+ },
+ onMouseLeave: (e) => {
+ e.currentTarget.querySelector('svg').style.color = 'black';
+ },
+ className: localStorage.getItem('chat_link')
+ ? 'semi-navigation-item-normal'
+ : 'tableHiddle',
},
// {
// text: '模型价格',
@@ -115,6 +138,7 @@ const HeaderBar = () => {
login: '/login',
register: '/register',
home: '/',
+ chat: '/chat',
};
return (
{
icon: ,
className: isAdmin() ? 'semi-navigation-item-normal' : 'tableHiddle',
},
- {
- text: '聊天',
- itemKey: 'chat',
- to: '/chat',
- icon: ,
- className: localStorage.getItem('chat_link')
- ? 'semi-navigation-item-normal'
- : 'tableHiddle',
- },
+ // 去掉侧边栏的聊天,换到HeaderBar
+ // {
+ // text: '聊天',
+ // itemKey: 'chat',
+ // to: '/chat',
+ // icon: ,
+ // className: localStorage.getItem('chat_link')
+ // ? 'semi-navigation-item-normal'
+ // : 'tableHiddle',
+ // },
{
text: '令牌',
itemKey: 'token',
From bab718e9bc6662afb6c5a01024a6d4afa6724ba9 Mon Sep 17 00:00:00 2001
From: GuoRuqiang <61670021+guoruqiang@users.noreply.github.com>
Date: Fri, 20 Sep 2024 04:45:33 +0000
Subject: [PATCH 2/7] =?UTF-8?q?=E8=81=8A=E5=A4=A9=E6=8C=89=E9=92=AE?=
=?UTF-8?q?=E9=80=82=E9=85=8D=E7=A7=BB=E5=8A=A8=E7=AB=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
web/src/components/HeaderBar.js | 2 +-
web/src/components/SiderBar.js | 20 ++++++++++----------
2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/web/src/components/HeaderBar.js b/web/src/components/HeaderBar.js
index b487822e..b7cf9061 100644
--- a/web/src/components/HeaderBar.js
+++ b/web/src/components/HeaderBar.js
@@ -57,7 +57,7 @@ let buttons = [
onMouseLeave: (e) => {
e.currentTarget.querySelector('svg').style.color = 'black';
},
- className: localStorage.getItem('chat_link')
+ className: localStorage.getItem('chat_link') && !isMobile() //移动端不显示
? 'semi-navigation-item-normal'
: 'tableHiddle',
},
diff --git a/web/src/components/SiderBar.js b/web/src/components/SiderBar.js
index 22289e47..13182ba2 100644
--- a/web/src/components/SiderBar.js
+++ b/web/src/components/SiderBar.js
@@ -86,16 +86,16 @@ const SiderBar = () => {
icon: ,
className: isAdmin() ? 'semi-navigation-item-normal' : 'tableHiddle',
},
- // 去掉侧边栏的聊天,换到HeaderBar
- // {
- // text: '聊天',
- // itemKey: 'chat',
- // to: '/chat',
- // icon: ,
- // className: localStorage.getItem('chat_link')
- // ? 'semi-navigation-item-normal'
- // : 'tableHiddle',
- // },
+ // 修改侧边栏的聊天按钮,当移动端的时候才显示。
+ {
+ text: '聊天',
+ itemKey: 'chat',
+ to: '/chat',
+ icon: ,
+ className: isMobile() && localStorage.getItem('chat_link')
+ ? 'semi-navigation-item-normal'
+ : 'tableHiddle',
+ },
{
text: '令牌',
itemKey: 'token',
From 574d7a09147c66d176b0cdcde5f186a0b1240510 Mon Sep 17 00:00:00 2001
From: GuoRuqiang <61670021+guoruqiang@users.noreply.github.com>
Date: Sun, 22 Sep 2024 14:09:03 +0000
Subject: [PATCH 3/7] =?UTF-8?q?=E4=BD=BF=E7=94=A8postMessage=E5=90=91ifram?=
=?UTF-8?q?e=E4=BC=A0=E5=8F=82theme-mode=EF=BC=8C=E5=AE=9E=E7=8E=B0?=
=?UTF-8?q?=E5=88=87=E6=8D=A2=E5=AD=90=E9=A1=B5=E9=9D=A2=E4=B8=BB=E9=A2=98?=
=?UTF-8?q?=E7=9A=84=E5=8A=9F=E8=83=BD=20=E5=AD=90=E9=A1=B5=E9=9D=A2?=
=?UTF-8?q?=E7=9A=84js=E7=A4=BA=E4=BE=8B=20```=20
```
---
web/src/components/HeaderBar.js | 10 ++++++++--
web/src/pages/Home/index.js | 13 +++++++++++++
2 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/web/src/components/HeaderBar.js b/web/src/components/HeaderBar.js
index b7cf9061..981a34fb 100644
--- a/web/src/components/HeaderBar.js
+++ b/web/src/components/HeaderBar.js
@@ -118,13 +118,19 @@ const HeaderBar = () => {
useEffect(() => {
if (theme === 'dark') {
document.body.setAttribute('theme-mode', 'dark');
+ } else {
+ document.body.removeAttribute('theme-mode');
+ }
+ // 发送当前主题模式给子页面
+ const iframe = document.querySelector('iframe');
+ if (iframe) {
+ iframe.contentWindow.postMessage({ themeMode: theme }, '*');
}
if (isNewYear) {
console.log('Happy New Year!');
}
- }, []);
-
+ }, [theme]); // 监听 theme-mode 的变化
return (
<>
diff --git a/web/src/pages/Home/index.js b/web/src/pages/Home/index.js
index 38029528..ad7cba32 100644
--- a/web/src/pages/Home/index.js
+++ b/web/src/pages/Home/index.js
@@ -35,6 +35,19 @@ const Home = () => {
}
setHomePageContent(content);
localStorage.setItem('home_page_content', content);
+
+ // 如果内容是 URL,则发送主题模式
+ if (data.startsWith('https://')) {
+ const iframe = document.querySelector('iframe');
+ if (iframe) {
+ const theme = localStorage.getItem('theme-mode') || 'light';
+ // 测试是否正确传递theme-mode给iframe
+ // console.log('Sending theme-mode to iframe:', theme);
+ iframe.onload = () => {
+ iframe.contentWindow.postMessage({ themeMode: theme }, '*');
+ };
+ }
+ }
} else {
showError(message);
setHomePageContent('加载首页内容失败...');
From ee17e307f0b446de9b25c2ac399140dc4312c61f Mon Sep 17 00:00:00 2001
From: "G.RQ" <61670021+guoruqiang@users.noreply.github.com>
Date: Sun, 22 Sep 2024 23:09:45 +0800
Subject: [PATCH 4/7] Update README.md
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
增加主要变更说明15. 支持使用路由/chat2link 进入聊天界面
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index dc8098cf..b609f98e 100644
--- a/README.md
+++ b/README.md
@@ -48,6 +48,7 @@
4. Telegram Bot 名称是bot username 去掉@后的字符串
13. 添加 [Suno API](https://github.com/Suno-API/Suno-API)接口的支持,[对接文档](Suno.md)
14. 支持Rerank模型,目前仅兼容Cohere和Jina,可接入Dify,[对接文档](Rerank.md)
+15. 支持使用路由/chat2link 进入聊天界面
## 模型支持
此版本额外支持以下模型:
From b139588aa1ceb7b44d90745f53ad27c5f11c71a3 Mon Sep 17 00:00:00 2001
From: GuoRuqiang <61670021+guoruqiang@users.noreply.github.com>
Date: Wed, 25 Sep 2024 06:38:17 +0000
Subject: [PATCH 5/7] =?UTF-8?q?=E6=9B=B4=E6=96=B0LoginForm=20=E6=8F=90?=
=?UTF-8?q?=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
web/src/components/LoginForm.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/web/src/components/LoginForm.js b/web/src/components/LoginForm.js
index 3cd56a14..af29b17f 100644
--- a/web/src/components/LoginForm.js
+++ b/web/src/components/LoginForm.js
@@ -170,7 +170,7 @@ const LoginForm = () => {
handleChange('username', value)}
/>
From e4ccaddf4a048f5243df89365b7428f9f7cd086d Mon Sep 17 00:00:00 2001
From: GuoRuqiang <61670021+guoruqiang@users.noreply.github.com>
Date: Wed, 25 Sep 2024 06:39:32 +0000
Subject: [PATCH 6/7] =?UTF-8?q?=E6=92=A4=E5=9B=9E=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
web/src/components/LoginForm.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/web/src/components/LoginForm.js b/web/src/components/LoginForm.js
index af29b17f..3cd56a14 100644
--- a/web/src/components/LoginForm.js
+++ b/web/src/components/LoginForm.js
@@ -170,7 +170,7 @@ const LoginForm = () => {
handleChange('username', value)}
/>
From fd86de19b5f97c9dc2b818e7524e7fb1f5267759 Mon Sep 17 00:00:00 2001
From: CalciumIon <1808837298@qq.com>
Date: Mon, 16 Dec 2024 21:05:02 +0800
Subject: [PATCH 7/7] feat: Enhance HeaderBar to support language change
messaging
- Added functionality to post a message to the iframe when the language is changed.
- This update improves localization support by ensuring that the iframe content updates according to the selected language.
---
web/src/components/HeaderBar.js | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/web/src/components/HeaderBar.js b/web/src/components/HeaderBar.js
index 5483b15c..8884d21b 100644
--- a/web/src/components/HeaderBar.js
+++ b/web/src/components/HeaderBar.js
@@ -105,6 +105,10 @@ const HeaderBar = () => {
useEffect(() => {
const handleLanguageChanged = (lng) => {
setCurrentLang(lng);
+ const iframe = document.querySelector('iframe');
+ if (iframe) {
+ iframe.contentWindow.postMessage({ lang: lng }, '*');
+ }
};
i18n.on('languageChanged', handleLanguageChanged);