@lobehub/chat 0.151.3 → 0.151.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +58 -0
- package/README.md +1 -1
- package/docs/self-hosting/advanced/sso-providers/zitadel.mdx +13 -3
- package/docs/self-hosting/advanced/sso-providers/zitadel.zh-CN.mdx +12 -3
- package/locales/ar/welcome.json +1 -1
- package/locales/bg-BG/welcome.json +1 -1
- package/locales/de-DE/welcome.json +1 -1
- package/locales/en-US/welcome.json +1 -1
- package/locales/es-ES/welcome.json +1 -1
- package/locales/fr-FR/welcome.json +1 -1
- package/locales/it-IT/welcome.json +1 -1
- package/locales/ja-JP/welcome.json +1 -1
- package/locales/ko-KR/welcome.json +1 -1
- package/locales/nl-NL/welcome.json +1 -1
- package/locales/pl-PL/welcome.json +1 -1
- package/locales/pt-BR/welcome.json +1 -1
- package/locales/ru-RU/welcome.json +1 -1
- package/locales/tr-TR/welcome.json +1 -1
- package/locales/vi-VN/welcome.json +1 -1
- package/locales/zh-CN/welcome.json +1 -1
- package/locales/zh-TW/welcome.json +1 -1
- package/package.json +1 -1
- package/src/app/{chat → (main)/chat}/(desktop)/features/SideBar/index.tsx +2 -1
- package/src/app/{chat → (main)/chat}/settings/(desktop)/Header.tsx +1 -1
- package/src/app/{market → (main)/market}/features/TagList/index.tsx +1 -1
- package/src/app/{settings → (main)/settings}/about/Analytics.tsx +2 -1
- package/src/app/{settings → (main)/settings}/common/Common.tsx +1 -1
- package/src/app/{settings → (main)/settings}/common/Theme.tsx +1 -1
- package/src/app/{settings → (main)/settings}/llm/components/ProviderConfig/index.tsx +2 -2
- package/src/app/{settings → (main)/settings}/sync/WebRTC/ChannelNameInput.tsx +1 -1
- package/src/app/{welcome → (main)/welcome}/(desktop)/features/Showcase.tsx +1 -1
- package/src/app/{welcome → (main)/welcome}/(mobile)/index.tsx +1 -1
- package/src/app/page.tsx +11 -9
- package/src/features/Conversation/components/AutoScroll.tsx +3 -2
- package/src/features/Conversation/components/VirtualizedList/index.tsx +15 -3
- package/src/locales/default/welcome.ts +1 -1
- /package/src/app/{home/index.tsx → (loading)/Client.tsx} +0 -0
- /package/src/app/{home → (loading)}/Redirect.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/(desktop)/features/ChatHeader/HeaderAction.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/(desktop)/features/ChatHeader/Main.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/(desktop)/features/ChatHeader/Tags.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/(desktop)/features/ChatHeader/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/(desktop)/features/ChatInput/Footer/DragUpload.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/(desktop)/features/ChatInput/Footer/LocalFiles.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/(desktop)/features/ChatInput/Footer/SendMore.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/(desktop)/features/ChatInput/Footer/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/(desktop)/features/ChatInput/Header/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/(desktop)/features/ChatInput/TextArea.test.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/(desktop)/features/ChatInput/TextArea.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/(desktop)/features/ChatInput/__tests__/useAutoFocus.test.ts +0 -0
- /package/src/app/{chat → (main)/chat}/(desktop)/features/ChatInput/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/(desktop)/features/ChatInput/useAutoFocus.ts +0 -0
- /package/src/app/{chat → (main)/chat}/(desktop)/features/Conversation.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/(desktop)/features/HotKeys.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/(desktop)/features/SideBar/SystemRole/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/(desktop)/features/SideBar/SystemRole/style.ts +0 -0
- /package/src/app/{chat → (main)/chat}/(desktop)/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/(mobile)/features/ChatInput/Files.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/(mobile)/features/ChatInput/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/(mobile)/features/SessionHeader.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/(mobile)/features/SessionList.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/(mobile)/features/TopicList.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/(mobile)/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/(mobile)/mobile/ChatHeader/ChatHeaderTitle.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/(mobile)/mobile/ChatHeader/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/(mobile)/mobile/page.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/_layout/Desktop/SessionHeader.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/_layout/Desktop/SessionList.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/_layout/Desktop/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/_layout/Mobile/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/components/SessionHydration/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/components/SidebarHeader/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/Migration/ExportConfigButton.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/Migration/Failed.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/Migration/Modal.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/Migration/Start.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/Migration/UpgradeButton.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/Migration/const.ts +0 -0
- /package/src/app/{chat → (main)/chat}/features/Migration/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/PageTitle/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/PluginTag/PluginStatus.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/PluginTag/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/SessionListContent/CollapseGroup/Actions.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/SessionListContent/CollapseGroup/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/SessionListContent/DefaultMode.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/SessionListContent/Inbox/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/SessionListContent/List/AddButton.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/SessionListContent/List/Item/Actions.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/SessionListContent/List/Item/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/SessionListContent/List/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/SessionListContent/ListItem/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/SessionListContent/Modals/ConfigGroupModal/GroupItem.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/SessionListContent/Modals/ConfigGroupModal/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/SessionListContent/Modals/CreateGroupModal.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/SessionListContent/Modals/RenameGroupModal.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/SessionListContent/SearchMode.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/SessionListContent/SkeletonList.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/SessionListContent/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/SessionSearchBar/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/SettingButton.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/ShareButton/Preview.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/ShareButton/ShareModal.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/ShareButton/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/ShareButton/style.ts +0 -0
- /package/src/app/{chat → (main)/chat}/features/ShareButton/type.ts +0 -0
- /package/src/app/{chat → (main)/chat}/features/ShareButton/useScreenshot.ts +0 -0
- /package/src/app/{chat → (main)/chat}/features/TelemetryNotification/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/TopicListContent/Header.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/TopicListContent/Topic/DefaultContent.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/TopicListContent/Topic/SkeletonList.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/TopicListContent/Topic/TopicContent.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/TopicListContent/Topic/TopicItem.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/TopicListContent/Topic/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/TopicListContent/TopicSearchBar/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/features/TopicListContent/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/layout.ts +0 -0
- /package/src/app/{chat → (main)/chat}/page.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/settings/(desktop)/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/settings/(mobile)/Header.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/settings/(mobile)/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/settings/features/EditPage.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/settings/features/HeaderContent.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/settings/features/SubmitAgentButton/SubmitAgentModal.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/settings/features/SubmitAgentButton/index.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/settings/features/SubmitAgentButton/style.ts +0 -0
- /package/src/app/{chat → (main)/chat}/settings/layout.tsx +0 -0
- /package/src/app/{chat → (main)/chat}/settings/page.tsx +0 -0
- /package/src/app/{market → (main)/market}/(desktop)/index.tsx +0 -0
- /package/src/app/{market → (main)/market}/(mobile)/features/AgentCard.tsx +0 -0
- /package/src/app/{market → (main)/market}/(mobile)/features/AgentDetail.tsx +0 -0
- /package/src/app/{market → (main)/market}/(mobile)/index.tsx +0 -0
- /package/src/app/{market → (main)/market}/_layout/Desktop/AgentDetail.tsx +0 -0
- /package/src/app/{market → (main)/market}/_layout/Desktop/Header.tsx +0 -0
- /package/src/app/{market → (main)/market}/_layout/Desktop/index.tsx +0 -0
- /package/src/app/{market → (main)/market}/_layout/Mobile/Header.tsx +0 -0
- /package/src/app/{market → (main)/market}/_layout/Mobile/index.tsx +0 -0
- /package/src/app/{market → (main)/market}/components/Loading.tsx +0 -0
- /package/src/app/{market → (main)/market}/features/AgentCard/AgentCardBanner.tsx +0 -0
- /package/src/app/{market → (main)/market}/features/AgentCard/AgentCardItem.tsx +0 -0
- /package/src/app/{market → (main)/market}/features/AgentCard/index.tsx +0 -0
- /package/src/app/{market → (main)/market}/features/AgentCard/style.ts +0 -0
- /package/src/app/{market → (main)/market}/features/AgentDetailContent/AgentInfo/Comment.tsx +0 -0
- /package/src/app/{market → (main)/market}/features/AgentDetailContent/AgentInfo/Header.tsx +0 -0
- /package/src/app/{market → (main)/market}/features/AgentDetailContent/AgentInfo/Loading.tsx +0 -0
- /package/src/app/{market → (main)/market}/features/AgentDetailContent/AgentInfo/TokenTag.tsx +0 -0
- /package/src/app/{market → (main)/market}/features/AgentDetailContent/AgentInfo/index.tsx +0 -0
- /package/src/app/{market → (main)/market}/features/AgentDetailContent/AgentInfo/style.ts +0 -0
- /package/src/app/{market → (main)/market}/features/AgentDetailContent/index.tsx +0 -0
- /package/src/app/{market → (main)/market}/features/AgentSearchBar/index.tsx +0 -0
- /package/src/app/{market → (main)/market}/features/PageTitle/index.tsx +0 -0
- /package/src/app/{market → (main)/market}/features/ShareAgentButton/Inner.tsx +0 -0
- /package/src/app/{market → (main)/market}/features/ShareAgentButton/index.tsx +0 -0
- /package/src/app/{market → (main)/market}/features/TagList/Inner.tsx +0 -0
- /package/src/app/{market → (main)/market}/layout.ts +0 -0
- /package/src/app/{market → (main)/market}/loading.tsx +0 -0
- /package/src/app/{market → (main)/market}/page.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/(desktop)/index.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/(mobile)/features/AvatarBanner.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/(mobile)/features/ExtraList.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/(mobile)/index.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/_layout/Desktop/Header.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/_layout/Desktop/SideBar.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/_layout/Desktop/index.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/_layout/Mobile/SubSettingHeader.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/_layout/Mobile/index.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/about/AboutList.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/about/page.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/about/style.ts +0 -0
- /package/src/app/{settings → (main)/settings}/agent/Agent.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/agent/loading.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/agent/page.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/common/index.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/common/loading.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/common/page.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/features/Footer.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/features/SettingList/Item.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/features/SettingList/index.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/features/ThemeSwatches/ThemeSwatchesNeutral.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/features/ThemeSwatches/ThemeSwatchesPrimary.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/features/ThemeSwatches/index.ts +0 -0
- /package/src/app/{settings → (main)/settings}/features/UpgradeAlert.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/hooks/useSyncSettings.ts +0 -0
- /package/src/app/{settings → (main)/settings}/layout.ts +0 -0
- /package/src/app/{settings → (main)/settings}/llm/Anthropic/index.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/llm/Azure/index.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/llm/Bedrock/index.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/llm/Google/index.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/llm/Groq/index.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/llm/Minimax/index.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/llm/Mistral/index.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/llm/Moonshot/index.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/llm/Ollama/Checker.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/llm/Ollama/index.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/llm/OpenAI/index.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/llm/OpenRouter/index.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/llm/Perplexity/index.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/llm/TogetherAI/index.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/llm/ZeroOne/index.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/llm/Zhipu/index.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/llm/components/Checker.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/llm/components/ProviderModelList/CustomModelOption.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/llm/components/ProviderModelList/MaxTokenSlider.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/llm/components/ProviderModelList/ModelConfigModal.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/llm/components/ProviderModelList/ModelFetcher.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/llm/components/ProviderModelList/Option.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/llm/components/ProviderModelList/index.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/llm/const.ts +0 -0
- /package/src/app/{settings → (main)/settings}/llm/index.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/llm/layout.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/llm/loading.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/llm/page.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/page.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/sync/Alert.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/sync/DeviceInfo/Card.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/sync/DeviceInfo/DeviceName.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/sync/DeviceInfo/index.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/sync/PageTitle.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/sync/WebRTC/index.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/sync/components/SyncSwitch/index.css +0 -0
- /package/src/app/{settings → (main)/settings}/sync/components/SyncSwitch/index.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/sync/components/SystemIcon.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/sync/layout.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/sync/loading.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/sync/page.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/sync/util.ts +0 -0
- /package/src/app/{settings → (main)/settings}/tts/TTS/index.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/tts/TTS/options.ts +0 -0
- /package/src/app/{settings → (main)/settings}/tts/loading.tsx +0 -0
- /package/src/app/{settings → (main)/settings}/tts/page.tsx +0 -0
- /package/src/app/{welcome → (main)/welcome}/(desktop)/features/Footer.tsx +0 -0
- /package/src/app/{welcome → (main)/welcome}/(desktop)/index.tsx +0 -0
- /package/src/app/{welcome → (main)/welcome}/_layout/Desktop.tsx +0 -0
- /package/src/app/{welcome → (main)/welcome}/_layout/Mobile.tsx +0 -0
- /package/src/app/{welcome → (main)/welcome}/features/Banner/AgentCard.tsx +0 -0
- /package/src/app/{welcome → (main)/welcome}/features/Banner/AgentTemplate.tsx +0 -0
- /package/src/app/{welcome → (main)/welcome}/features/Banner/Hero.tsx +0 -0
- /package/src/app/{welcome → (main)/welcome}/features/Banner/index.tsx +0 -0
- /package/src/app/{welcome → (main)/welcome}/features/Banner/style.ts +0 -0
- /package/src/app/{welcome → (main)/welcome}/layout.ts +0 -0
- /package/src/app/{welcome → (main)/welcome}/page.tsx +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,64 @@
|
|
|
2
2
|
|
|
3
3
|
# Changelog
|
|
4
4
|
|
|
5
|
+
### [Version 0.151.5](https://github.com/lobehub/lobe-chat/compare/v0.151.4...v0.151.5)
|
|
6
|
+
|
|
7
|
+
<sup>Released on **2024-04-30**</sup>
|
|
8
|
+
|
|
9
|
+
#### 🐛 Bug Fixes
|
|
10
|
+
|
|
11
|
+
- **misc**: Effectively interrupt auto scrolling.
|
|
12
|
+
|
|
13
|
+
#### 💄 Styles
|
|
14
|
+
|
|
15
|
+
- **misc**: Revise some text.
|
|
16
|
+
|
|
17
|
+
<br/>
|
|
18
|
+
|
|
19
|
+
<details>
|
|
20
|
+
<summary><kbd>Improvements and Fixes</kbd></summary>
|
|
21
|
+
|
|
22
|
+
#### What's fixed
|
|
23
|
+
|
|
24
|
+
- **misc**: Effectively interrupt auto scrolling, closes [#2223](https://github.com/lobehub/lobe-chat/issues/2223) ([afe4974](https://github.com/lobehub/lobe-chat/commit/afe4974))
|
|
25
|
+
|
|
26
|
+
#### Styles
|
|
27
|
+
|
|
28
|
+
- **misc**: Revise some text, closes [#2296](https://github.com/lobehub/lobe-chat/issues/2296) ([018427f](https://github.com/lobehub/lobe-chat/commit/018427f))
|
|
29
|
+
|
|
30
|
+
</details>
|
|
31
|
+
|
|
32
|
+
<div align="right">
|
|
33
|
+
|
|
34
|
+
[](#readme-top)
|
|
35
|
+
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
### [Version 0.151.4](https://github.com/lobehub/lobe-chat/compare/v0.151.3...v0.151.4)
|
|
39
|
+
|
|
40
|
+
<sup>Released on **2024-04-29**</sup>
|
|
41
|
+
|
|
42
|
+
#### ♻ Code Refactoring
|
|
43
|
+
|
|
44
|
+
- **misc**: Move app page to the `(main)` layout group.
|
|
45
|
+
|
|
46
|
+
<br/>
|
|
47
|
+
|
|
48
|
+
<details>
|
|
49
|
+
<summary><kbd>Improvements and Fixes</kbd></summary>
|
|
50
|
+
|
|
51
|
+
#### Code refactoring
|
|
52
|
+
|
|
53
|
+
- **misc**: Move app page to the `(main)` layout group, closes [#2297](https://github.com/lobehub/lobe-chat/issues/2297) ([6cc2c38](https://github.com/lobehub/lobe-chat/commit/6cc2c38))
|
|
54
|
+
|
|
55
|
+
</details>
|
|
56
|
+
|
|
57
|
+
<div align="right">
|
|
58
|
+
|
|
59
|
+
[](#readme-top)
|
|
60
|
+
|
|
61
|
+
</div>
|
|
62
|
+
|
|
5
63
|
### [Version 0.151.3](https://github.com/lobehub/lobe-chat/compare/v0.151.2...v0.151.3)
|
|
6
64
|
|
|
7
65
|
<sup>Released on **2024-04-29**</sup>
|
package/README.md
CHANGED
|
@@ -626,7 +626,7 @@ Every bit counts and your one-time donation sparkles in our galaxy of support! Y
|
|
|
626
626
|
|
|
627
627
|
</details>
|
|
628
628
|
|
|
629
|
-
Copyright ©
|
|
629
|
+
Copyright © 2024 [LobeHub][profile-link]. <br />
|
|
630
630
|
This project is [MIT](./LICENSE) licensed.
|
|
631
631
|
|
|
632
632
|
<!-- LINK GROUP -->
|
|
@@ -55,8 +55,9 @@ http(s)://your-domain/api/auth/callback/zitadel
|
|
|
55
55
|
|
|
56
56
|
<Callout type={'important'}>
|
|
57
57
|
- You can fill in or modify redirect URIs after creating the application, but make sure the filled
|
|
58
|
-
URL is consistent with the deployed URL.
|
|
59
|
-
|
|
58
|
+
URL is consistent with the deployed URL.
|
|
59
|
+
|
|
60
|
+
- Replace `http(s)://your-domain` with the actual URL that LobeChat is deployed to.
|
|
60
61
|
</Callout>
|
|
61
62
|
|
|
62
63
|
Confirm the configuration and click **Create**.
|
|
@@ -75,11 +76,20 @@ Save the **ClientId** and **ClientSecret** for later use.
|
|
|
75
76
|
src="https://github.com/lobehub/lobe-chat/assets/8692892/407b4eed-7f21-4aa6-b68f-9bae2faf09d0"
|
|
76
77
|
/>
|
|
77
78
|
|
|
78
|
-
In the application settings page, navigate to the **
|
|
79
|
+
In the application settings page, navigate to the **Token Settings** tab, enable **User Info inside
|
|
80
|
+
ID Token** option, and click **Save**.
|
|
79
81
|
|
|
80
82
|
<Image
|
|
81
83
|
alt="Create ZITADEL Application S7"
|
|
82
84
|
inStep
|
|
85
|
+
src="https://github.com/lobehub/lobe-chat/assets/8692892/d84235b1-45f6-447d-bdd9-58ab9527dc9b"
|
|
86
|
+
/>
|
|
87
|
+
|
|
88
|
+
Navigate to the **URLs** tab, and save the **issuer** URL.
|
|
89
|
+
|
|
90
|
+
<Image
|
|
91
|
+
alt="Create ZITADEL Application S8"
|
|
92
|
+
inStep
|
|
83
93
|
src="https://github.com/lobehub/lobe-chat/assets/8692892/d12a2661-7b98-484f-8f3d-07e84d42ae08"
|
|
84
94
|
/>
|
|
85
95
|
|
|
@@ -51,8 +51,9 @@ http(s)://your-domain/api/auth/callback/zitadel
|
|
|
51
51
|
/>
|
|
52
52
|
|
|
53
53
|
<Callout type={'important'}>
|
|
54
|
-
- 可以创建应用后再填写或修改重定向 URL,但请确保填写的 URL 与部署的 URL 一致。
|
|
55
|
-
|
|
54
|
+
- 可以创建应用后再填写或修改重定向 URL,但请确保填写的 URL 与部署的 URL 一致。
|
|
55
|
+
|
|
56
|
+
- 请将 `http(s)://your-domain` 替换为 LobeChat 部署的实际 URL。
|
|
56
57
|
</Callout>
|
|
57
58
|
|
|
58
59
|
确认配置并点击「创建」。
|
|
@@ -71,11 +72,19 @@ http(s)://your-domain/api/auth/callback/zitadel
|
|
|
71
72
|
src="https://github.com/lobehub/lobe-chat/assets/8692892/40bb6b4c-18e0-4ae5-abae-ae0cf202cf08"
|
|
72
73
|
/>
|
|
73
74
|
|
|
74
|
-
|
|
75
|
+
在应用设置页面中,切换到「令牌设置」选项卡,勾选「在 ID Token 中包含用户信息」选项,点击「保存」。
|
|
75
76
|
|
|
76
77
|
<Image
|
|
77
78
|
alt="创建 ZITADEL 应用 7"
|
|
78
79
|
inStep
|
|
80
|
+
src="https://github.com/lobehub/lobe-chat/assets/8692892/20a257b5-d086-46f3-b5c2-f76394b11f55"
|
|
81
|
+
/>
|
|
82
|
+
|
|
83
|
+
切换到「URLs」选项卡,记录下「issuer」URL。
|
|
84
|
+
|
|
85
|
+
<Image
|
|
86
|
+
alt="创建 ZITADEL 应用 8"
|
|
87
|
+
inStep
|
|
79
88
|
src="https://github.com/lobehub/lobe-chat/assets/8692892/79c55d44-8dcb-429c-a072-d3eb014bbceb"
|
|
80
89
|
/>
|
|
81
90
|
|
package/locales/ar/welcome.json
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"replaceBtn": "تغيير",
|
|
10
10
|
"title": "إضافة توصيات المساعدين:"
|
|
11
11
|
},
|
|
12
|
-
"defaultMessage": "أنا
|
|
12
|
+
"defaultMessage": "أنا مساعدك الذكي الشخصي LobeChat، كيف يمكنني مساعدتك اليوم؟\nإذا كنت بحاجة إلى مساعد أكثر احترافية أو مخصصة، يمكنك النقر على `+` لإنشاء مساعد مخصص",
|
|
13
13
|
"qa": {
|
|
14
14
|
"q01": "ما هو LobeHub؟",
|
|
15
15
|
"q02": "ما هو LobeChat؟",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"replaceBtn": "Смени",
|
|
10
10
|
"title": "Препоръчване на нови асистенти:"
|
|
11
11
|
},
|
|
12
|
-
"defaultMessage": "Аз съм
|
|
12
|
+
"defaultMessage": "Аз съм вашият личен интелигентен асистент LobeChat. Как мога да ви помогна сега?\nАко искате по-професионален или персонализиран асистент, може да кликнете върху `+`, за да създадете персонализиран асистент.",
|
|
13
13
|
"qa": {
|
|
14
14
|
"q01": "Какво е LobeHub?",
|
|
15
15
|
"q02": "Какво е LobeChat?",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"replaceBtn": "Ersetzen",
|
|
10
10
|
"title": "Neue Assistentenempfehlung:"
|
|
11
11
|
},
|
|
12
|
-
"defaultMessage": "Ich bin
|
|
12
|
+
"defaultMessage": "Ich bin Ihr persönlicher intelligenter Assistent LobeChat. Wie kann ich Ihnen jetzt helfen?\nWenn Sie einen professionelleren oder maßgeschneiderten Assistenten benötigen, klicken Sie auf `+`, um einen benutzerdefinierten Assistenten zu erstellen.",
|
|
13
13
|
"qa": {
|
|
14
14
|
"q01": "Was ist LobeHub?",
|
|
15
15
|
"q02": "Was ist LobeChat?",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"replaceBtn": "Replace Batch",
|
|
10
10
|
"title": "New Assistant Recommendations:"
|
|
11
11
|
},
|
|
12
|
-
"defaultMessage": "I
|
|
12
|
+
"defaultMessage": "I am your personal intelligent assistant LobeChat, how can I help you now?\nIf you need a more professional or customized assistant, you can click on `+` to create a custom assistant",
|
|
13
13
|
"qa": {
|
|
14
14
|
"q01": "What is LobeHub?",
|
|
15
15
|
"q02": "What is LobeChat?",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"replaceBtn": "Cambiar grupo",
|
|
10
10
|
"title": "Recomendación de asistentes nuevos:"
|
|
11
11
|
},
|
|
12
|
-
"defaultMessage": "Soy
|
|
12
|
+
"defaultMessage": "Soy tu asistente de inteligencia artificial personal, LobeChat. ¿En qué puedo ayudarte ahora?\nSi necesitas un asistente más profesional o personalizado, puedes hacer clic en `+` para crear un asistente personalizado",
|
|
13
13
|
"qa": {
|
|
14
14
|
"q01": "¿Qué es LobeHub?",
|
|
15
15
|
"q02": "¿Qué es LobeChat?",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"replaceBtn": "Remplacer",
|
|
10
10
|
"title": "Nouvelles recommandations d'assistants :"
|
|
11
11
|
},
|
|
12
|
-
"defaultMessage": "Je suis
|
|
12
|
+
"defaultMessage": "Je suis votre assistant intelligent personnel LobeChat. Que puis-je faire pour vous maintenant ?\nSi vous avez besoin d'une assistance plus professionnelle ou personnalisée, vous pouvez cliquer sur `+` pour créer un assistant personnalisé.",
|
|
13
13
|
"qa": {
|
|
14
14
|
"q01": "Qu'est-ce que LobeHub ?",
|
|
15
15
|
"q02": "Qu'est-ce que LobeChat ?",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"replaceBtn": "Cambia gruppo",
|
|
10
10
|
"title": "Nuova raccomandazione assistente:"
|
|
11
11
|
},
|
|
12
|
-
"defaultMessage": "Sono
|
|
12
|
+
"defaultMessage": "Sono il tuo assistente intelligente personale LobeChat, in che modo posso aiutarti ora?\nSe hai bisogno di un'assistenza più professionale o personalizzata, clicca su `+` per creare un assistente personalizzato",
|
|
13
13
|
"qa": {
|
|
14
14
|
"q01": "Cos'è LobeHub?",
|
|
15
15
|
"q02": "Cos'è LobeChat?",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"replaceBtn": "別のグループ",
|
|
10
10
|
"title": "新しいアシスタントのおすすめ:"
|
|
11
11
|
},
|
|
12
|
-
"defaultMessage": "
|
|
12
|
+
"defaultMessage": "私はあなたの個人的なスマートアシスタント、LobeChatです。今、何を手伝えますか?\nより専門的またはカスタマイズされたアシスタントが必要な場合は、`+`をクリックしてカスタムアシスタントを作成してください",
|
|
13
13
|
"qa": {
|
|
14
14
|
"q01": "LobeHub とは?",
|
|
15
15
|
"q02": "LobeChat とは?",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"replaceBtn": "다른 것으로 바꾸기",
|
|
10
10
|
"title": "새로운 보조 추천: "
|
|
11
11
|
},
|
|
12
|
-
"defaultMessage": "
|
|
12
|
+
"defaultMessage": "저는 여러분의 개인 인공 지능 비서 LobeChat입니다. 지금 무엇을 도와드릴까요?\n더 전문적이거나 맞춤형 비서가 필요하다면 `+`를 클릭하여 사용자 정의 비서를 만들 수 있습니다.",
|
|
13
13
|
"qa": {
|
|
14
14
|
"q01": "LobeHub은 무엇인가요?",
|
|
15
15
|
"q02": "LobeChat은 무엇인가요?",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"replaceBtn": "Vervang een groep",
|
|
10
10
|
"title": "Nieuwe aanbeveling assistent: "
|
|
11
11
|
},
|
|
12
|
-
"defaultMessage": "Ik ben
|
|
12
|
+
"defaultMessage": "Ik ben uw persoonlijke slimme assistent LobeChat, waarmee kan ik u helpen?\nAls u een meer professionele of op maat gemaakte assistent nodig heeft, kunt u op `+` klikken om een aangepaste assistent te maken",
|
|
13
13
|
"qa": {
|
|
14
14
|
"q01": "Wat is LobeHub?",
|
|
15
15
|
"q02": "Wat is LobeChat?",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"replaceBtn": "Zmień",
|
|
10
10
|
"title": "Nowe zalecenia asystenta:"
|
|
11
11
|
},
|
|
12
|
-
"defaultMessage": "Jestem
|
|
12
|
+
"defaultMessage": "Jestem Twoim prywatnym asystentem LobeChat. W czym mogę pomóc?\nJeśli potrzebujesz bardziej profesjonalnej lub spersonalizowanej pomocy, kliknij `+` aby stworzyć niestandardowego asystenta",
|
|
13
13
|
"qa": {
|
|
14
14
|
"q01": "Czym jest LobeHub?",
|
|
15
15
|
"q02": "Czym jest LobeChat?",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"replaceBtn": "Trocar",
|
|
10
10
|
"title": "Recomendação de assistentes adicionais:"
|
|
11
11
|
},
|
|
12
|
-
"defaultMessage": "Eu sou o
|
|
12
|
+
"defaultMessage": "Eu sou o seu assistente de IA pessoal, LobeChat. Como posso ajudar você agora?\nSe precisar de assistência mais profissional ou personalizada, clique em `+` para criar um assistente personalizado",
|
|
13
13
|
"qa": {
|
|
14
14
|
"q01": "O que é o LobeHub?",
|
|
15
15
|
"q02": "O que é o LobeChat?",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"replaceBtn": "Заменить",
|
|
10
10
|
"title": "Рекомендации новых агентов:"
|
|
11
11
|
},
|
|
12
|
-
"defaultMessage": "Я
|
|
12
|
+
"defaultMessage": "Я ваш персональный интеллектуальный помощник LobeChat. Чем я могу помочь вам сейчас?\nЕсли вам нужна более профессиональная или настраиваемая помощь, нажмите `+`, чтобы создать пользовательского помощника.",
|
|
13
13
|
"qa": {
|
|
14
14
|
"q01": "Что такое LobeHub?",
|
|
15
15
|
"q02": "Что такое LobeChat?",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"replaceBtn": "Başka bir grup",
|
|
10
10
|
"title": "Yeni Asistan Önerileri:"
|
|
11
11
|
},
|
|
12
|
-
"defaultMessage": "Ben
|
|
12
|
+
"defaultMessage": "Ben sizin kişisel akıllı asistanınız LobeChat'ım, şu anda size nasıl yardımcı olabilirim?\nDaha profesyonel veya özelleştirilmiş bir asistana ihtiyacınız varsa, özel bir asistan oluşturmak için `+` simgesine tıklayabilirsiniz",
|
|
13
13
|
"qa": {
|
|
14
14
|
"q01": "LobeHub nedir?",
|
|
15
15
|
"q02": "LobeChat nedir?",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"replaceBtn": "Thay đổi",
|
|
10
10
|
"title": "Đề xuất trợ lý mới: "
|
|
11
11
|
},
|
|
12
|
-
"defaultMessage": "Tôi là
|
|
12
|
+
"defaultMessage": "Tôi là trợ lý thông minh cá nhân của bạn, LobeChat. Bạn cần giúp đỡ gì bây giờ?\nNếu bạn cần một trợ lý chuyên nghiệp hoặc tùy chỉnh hơn, hãy nhấn vào dấu `+` để tạo trợ lý cá nhân",
|
|
13
13
|
"qa": {
|
|
14
14
|
"q01": "LobeHub là gì?",
|
|
15
15
|
"q02": "LobeChat là gì?",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"replaceBtn": "换一批",
|
|
10
10
|
"title": "新增助理推荐:"
|
|
11
11
|
},
|
|
12
|
-
"defaultMessage": "
|
|
12
|
+
"defaultMessage": "我是您的私人智能助理 LobeChat ,请问现在能帮您做什么?\n如果需要获得更加专业或定制的助手,可以点击 `+` 创建自定义助手",
|
|
13
13
|
"qa": {
|
|
14
14
|
"q01": "LobeHub 是什么?",
|
|
15
15
|
"q02": "LobeChat 是什么?",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"replaceBtn": "換一批",
|
|
10
10
|
"title": "新增助理推薦:"
|
|
11
11
|
},
|
|
12
|
-
"defaultMessage": "
|
|
12
|
+
"defaultMessage": "我是您的私人智能助理 LobeChat ,請問現在能幫您做什麼?\n如果需要獲得更加專業或定制的助手,可以點擊 `+` 創建自定義助手",
|
|
13
13
|
"qa": {
|
|
14
14
|
"q01": "LobeHub 是什麼?",
|
|
15
15
|
"q02": "LobeChat 是什麼?",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lobehub/chat",
|
|
3
|
-
"version": "0.151.
|
|
3
|
+
"version": "0.151.5",
|
|
4
4
|
"description": "Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"framework",
|
|
@@ -3,7 +3,6 @@ import { createStyles } from 'antd-style';
|
|
|
3
3
|
import dynamic from 'next/dynamic';
|
|
4
4
|
import { memo } from 'react';
|
|
5
5
|
|
|
6
|
-
import TopicListContent from '@/app/chat/features/TopicListContent';
|
|
7
6
|
import SafeSpacing from '@/components/SafeSpacing';
|
|
8
7
|
import { CHAT_SIDEBAR_WIDTH } from '@/const/layoutTokens';
|
|
9
8
|
import { useGlobalStore } from '@/store/global';
|
|
@@ -11,6 +10,8 @@ import { featureFlagsSelectors, useServerConfigStore } from '@/store/serverConfi
|
|
|
11
10
|
import { useSessionStore } from '@/store/session';
|
|
12
11
|
import { sessionSelectors } from '@/store/session/selectors';
|
|
13
12
|
|
|
13
|
+
import TopicListContent from '../../../features/TopicListContent';
|
|
14
|
+
|
|
14
15
|
const SystemRole = dynamic(() => import('./SystemRole'));
|
|
15
16
|
|
|
16
17
|
const useStyles = createStyles(({ css, token }) => ({
|
|
@@ -3,7 +3,7 @@ import { useRouter } from 'next/navigation';
|
|
|
3
3
|
import { memo } from 'react';
|
|
4
4
|
import { useTranslation } from 'react-i18next';
|
|
5
5
|
|
|
6
|
-
import HeaderContent from '@/app/chat/settings/features/HeaderContent';
|
|
6
|
+
import HeaderContent from '@/app/(main)/chat/settings/features/HeaderContent';
|
|
7
7
|
import { pathString } from '@/utils/url';
|
|
8
8
|
|
|
9
9
|
const Header = memo(() => {
|
|
@@ -3,10 +3,11 @@ import { memo } from 'react';
|
|
|
3
3
|
import { useTranslation } from 'react-i18next';
|
|
4
4
|
import { Flexbox } from 'react-layout-kit';
|
|
5
5
|
|
|
6
|
-
import { useStyles } from '@/app/settings/about/style';
|
|
7
6
|
import { useUserStore } from '@/store/user';
|
|
8
7
|
import { preferenceSelectors } from '@/store/user/selectors';
|
|
9
8
|
|
|
9
|
+
import { useStyles } from './style';
|
|
10
|
+
|
|
10
11
|
const Analytics = memo(() => {
|
|
11
12
|
const { t } = useTranslation('setting');
|
|
12
13
|
const { styles } = useStyles();
|
|
@@ -6,7 +6,7 @@ import { signIn, signOut } from 'next-auth/react';
|
|
|
6
6
|
import { memo, useCallback } from 'react';
|
|
7
7
|
import { useTranslation } from 'react-i18next';
|
|
8
8
|
|
|
9
|
-
import { useSyncSettings } from '@/app/settings/hooks/useSyncSettings';
|
|
9
|
+
import { useSyncSettings } from '@/app/(main)/settings/hooks/useSyncSettings';
|
|
10
10
|
import { FORM_STYLE } from '@/const/layoutTokens';
|
|
11
11
|
import { DEFAULT_SETTINGS } from '@/const/settings';
|
|
12
12
|
import { useOAuthSession } from '@/hooks/useOAuthSession';
|
|
@@ -5,7 +5,7 @@ import { Monitor, Moon, Palette, Sun } from 'lucide-react';
|
|
|
5
5
|
import { memo } from 'react';
|
|
6
6
|
import { useTranslation } from 'react-i18next';
|
|
7
7
|
|
|
8
|
-
import { useSyncSettings } from '@/app/settings/hooks/useSyncSettings';
|
|
8
|
+
import { useSyncSettings } from '@/app/(main)/settings/hooks/useSyncSettings';
|
|
9
9
|
import { FORM_STYLE } from '@/const/layoutTokens';
|
|
10
10
|
import { imageUrl } from '@/const/url';
|
|
11
11
|
import AvatarWithUpload from '@/features/AvatarWithUpload';
|
|
@@ -4,13 +4,13 @@ import { debounce } from 'lodash-es';
|
|
|
4
4
|
import { ReactNode, memo } from 'react';
|
|
5
5
|
import { useTranslation } from 'react-i18next';
|
|
6
6
|
|
|
7
|
-
import { useSyncSettings } from '@/app/settings/hooks/useSyncSettings';
|
|
7
|
+
import { useSyncSettings } from '@/app/(main)/settings/hooks/useSyncSettings';
|
|
8
8
|
import {
|
|
9
9
|
LLMProviderApiTokenKey,
|
|
10
10
|
LLMProviderBaseUrlKey,
|
|
11
11
|
LLMProviderConfigKey,
|
|
12
12
|
LLMProviderModelListKey,
|
|
13
|
-
} from '@/app/settings/llm/const';
|
|
13
|
+
} from '@/app/(main)/settings/llm/const';
|
|
14
14
|
import { FORM_STYLE } from '@/const/layoutTokens';
|
|
15
15
|
import { useUserStore } from '@/store/user';
|
|
16
16
|
import { modelConfigSelectors } from '@/store/user/selectors';
|
|
@@ -5,7 +5,7 @@ import { LucideDices } from 'lucide-react';
|
|
|
5
5
|
import { memo, useState } from 'react';
|
|
6
6
|
import { useTranslation } from 'react-i18next';
|
|
7
7
|
|
|
8
|
-
import { generateRandomRoomName } from '
|
|
8
|
+
import { generateRandomRoomName } from '../util';
|
|
9
9
|
|
|
10
10
|
interface ChannelNameInputProps extends Omit<InputProps, 'form'> {
|
|
11
11
|
form: FormInstance;
|
|
@@ -4,7 +4,7 @@ import { GridShowcase } from '@lobehub/ui';
|
|
|
4
4
|
import { memo } from 'react';
|
|
5
5
|
import { Flexbox } from 'react-layout-kit';
|
|
6
6
|
|
|
7
|
-
import Banner from '@/app/welcome/features/Banner';
|
|
7
|
+
import Banner from '@/app/(main)/welcome/features/Banner';
|
|
8
8
|
|
|
9
9
|
const Showcase = memo(() => (
|
|
10
10
|
<Flexbox
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { memo } from 'react';
|
|
2
2
|
import { Center, Flexbox } from 'react-layout-kit';
|
|
3
3
|
|
|
4
|
-
import Banner from '
|
|
4
|
+
import Banner from '../features/Banner';
|
|
5
5
|
|
|
6
6
|
const Showcase = memo(() => (
|
|
7
7
|
<Flexbox align={'center'} justify={'center'} style={{ height: 'calc(100% - 44px)' }}>
|
package/src/app/page.tsx
CHANGED
|
@@ -2,17 +2,19 @@ import { Metadata } from 'next';
|
|
|
2
2
|
|
|
3
3
|
import { getCanonicalUrl } from '@/const/url';
|
|
4
4
|
|
|
5
|
-
import
|
|
6
|
-
import Redirect from './
|
|
5
|
+
import Client from './(loading)/Client';
|
|
6
|
+
import Redirect from './(loading)/Redirect';
|
|
7
7
|
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
const Page = () => {
|
|
9
|
+
return (
|
|
10
|
+
<>
|
|
11
|
+
<Client />
|
|
12
|
+
<Redirect />
|
|
13
|
+
</>
|
|
14
|
+
);
|
|
15
|
+
};
|
|
14
16
|
|
|
15
|
-
export default
|
|
17
|
+
export default Page;
|
|
16
18
|
|
|
17
19
|
export const metadata: Metadata = {
|
|
18
20
|
alternates: { canonical: getCanonicalUrl('/') },
|
|
@@ -7,14 +7,15 @@ import BackBottom from './BackBottom';
|
|
|
7
7
|
|
|
8
8
|
interface AutoScrollProps {
|
|
9
9
|
atBottom: boolean;
|
|
10
|
+
isScrolling: boolean;
|
|
10
11
|
onScrollToBottom: (type: 'auto' | 'click') => void;
|
|
11
12
|
}
|
|
12
|
-
const AutoScroll = memo<AutoScrollProps>(({ atBottom, onScrollToBottom }) => {
|
|
13
|
+
const AutoScroll = memo<AutoScrollProps>(({ atBottom, isScrolling, onScrollToBottom }) => {
|
|
13
14
|
const trackVisibility = useChatStore((s) => !!s.chatLoadingId);
|
|
14
15
|
const str = useChatStore(chatSelectors.chatsMessageString);
|
|
15
16
|
|
|
16
17
|
useEffect(() => {
|
|
17
|
-
if (atBottom && trackVisibility) {
|
|
18
|
+
if (atBottom && trackVisibility && !isScrolling) {
|
|
18
19
|
onScrollToBottom?.('auto');
|
|
19
20
|
}
|
|
20
21
|
}, [atBottom, trackVisibility, str]);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import isEqual from 'fast-deep-equal';
|
|
2
|
-
import React, { memo, useEffect, useRef, useState } from 'react';
|
|
2
|
+
import React, { memo, useCallback, useEffect, useRef, useState } from 'react';
|
|
3
3
|
import { Flexbox } from 'react-layout-kit';
|
|
4
4
|
import { Virtuoso, VirtuosoHandle } from 'react-virtuoso';
|
|
5
5
|
|
|
@@ -35,6 +35,7 @@ const VirtualizedList = memo<VirtualizedListProps>(({ mobile }) => {
|
|
|
35
35
|
|
|
36
36
|
const virtuosoRef = useRef<VirtuosoHandle>(null);
|
|
37
37
|
const [atBottom, setAtBottom] = useState(true);
|
|
38
|
+
const [isScrolling, setIsScrolling] = useState(false);
|
|
38
39
|
|
|
39
40
|
const [id, chatLoading] = useChatStore((s) => [
|
|
40
41
|
chatSelectors.currentChatKey(s),
|
|
@@ -53,6 +54,14 @@ const VirtualizedList = memo<VirtualizedListProps>(({ mobile }) => {
|
|
|
53
54
|
}
|
|
54
55
|
}, [id]);
|
|
55
56
|
|
|
57
|
+
const prevDataLengthRef = useRef(data.length);
|
|
58
|
+
|
|
59
|
+
const getFollowOutput = useCallback(() => {
|
|
60
|
+
const newFollowOutput = data.length > prevDataLengthRef.current ? 'auto' : false;
|
|
61
|
+
prevDataLengthRef.current = data.length;
|
|
62
|
+
return newFollowOutput;
|
|
63
|
+
}, [data.length]);
|
|
64
|
+
|
|
56
65
|
// overscan should be 1.5 times the height of the window
|
|
57
66
|
const overscan = typeof window !== 'undefined' ? window.innerHeight * 1.5 : 0;
|
|
58
67
|
|
|
@@ -62,17 +71,20 @@ const VirtualizedList = memo<VirtualizedListProps>(({ mobile }) => {
|
|
|
62
71
|
<Flexbox height={'100%'}>
|
|
63
72
|
<Virtuoso
|
|
64
73
|
atBottomStateChange={setAtBottom}
|
|
65
|
-
atBottomThreshold={
|
|
74
|
+
atBottomThreshold={50 * (mobile ? 2 : 1)}
|
|
66
75
|
computeItemKey={(_, item) => item}
|
|
67
76
|
data={data}
|
|
68
|
-
followOutput={
|
|
77
|
+
followOutput={getFollowOutput}
|
|
78
|
+
// increaseViewportBy={overscan}
|
|
69
79
|
initialTopMostItemIndex={data?.length - 1}
|
|
80
|
+
isScrolling={setIsScrolling}
|
|
70
81
|
itemContent={itemContent}
|
|
71
82
|
overscan={overscan}
|
|
72
83
|
ref={virtuosoRef}
|
|
73
84
|
/>
|
|
74
85
|
<AutoScroll
|
|
75
86
|
atBottom={atBottom}
|
|
87
|
+
isScrolling={isScrolling}
|
|
76
88
|
onScrollToBottom={(type) => {
|
|
77
89
|
const virtuoso = virtuosoRef.current;
|
|
78
90
|
switch (type) {
|
|
@@ -10,7 +10,7 @@ export default {
|
|
|
10
10
|
title: '新增助理推荐:',
|
|
11
11
|
},
|
|
12
12
|
defaultMessage:
|
|
13
|
-
'
|
|
13
|
+
'我是您的私人智能助理 LobeChat ,请问现在能帮您做什么?\n如果需要获得更加专业或定制的助手,可以点击 `+` 创建自定义助手',
|
|
14
14
|
qa: {
|
|
15
15
|
q01: 'LobeHub 是什么?',
|
|
16
16
|
q02: 'LobeChat 是什么?',
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/src/app/{chat → (main)/chat}/(desktop)/features/ChatInput/__tests__/useAutoFocus.test.ts
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|