@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.
Files changed (240) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/README.md +1 -1
  3. package/docs/self-hosting/advanced/sso-providers/zitadel.mdx +13 -3
  4. package/docs/self-hosting/advanced/sso-providers/zitadel.zh-CN.mdx +12 -3
  5. package/locales/ar/welcome.json +1 -1
  6. package/locales/bg-BG/welcome.json +1 -1
  7. package/locales/de-DE/welcome.json +1 -1
  8. package/locales/en-US/welcome.json +1 -1
  9. package/locales/es-ES/welcome.json +1 -1
  10. package/locales/fr-FR/welcome.json +1 -1
  11. package/locales/it-IT/welcome.json +1 -1
  12. package/locales/ja-JP/welcome.json +1 -1
  13. package/locales/ko-KR/welcome.json +1 -1
  14. package/locales/nl-NL/welcome.json +1 -1
  15. package/locales/pl-PL/welcome.json +1 -1
  16. package/locales/pt-BR/welcome.json +1 -1
  17. package/locales/ru-RU/welcome.json +1 -1
  18. package/locales/tr-TR/welcome.json +1 -1
  19. package/locales/vi-VN/welcome.json +1 -1
  20. package/locales/zh-CN/welcome.json +1 -1
  21. package/locales/zh-TW/welcome.json +1 -1
  22. package/package.json +1 -1
  23. package/src/app/{chat → (main)/chat}/(desktop)/features/SideBar/index.tsx +2 -1
  24. package/src/app/{chat → (main)/chat}/settings/(desktop)/Header.tsx +1 -1
  25. package/src/app/{market → (main)/market}/features/TagList/index.tsx +1 -1
  26. package/src/app/{settings → (main)/settings}/about/Analytics.tsx +2 -1
  27. package/src/app/{settings → (main)/settings}/common/Common.tsx +1 -1
  28. package/src/app/{settings → (main)/settings}/common/Theme.tsx +1 -1
  29. package/src/app/{settings → (main)/settings}/llm/components/ProviderConfig/index.tsx +2 -2
  30. package/src/app/{settings → (main)/settings}/sync/WebRTC/ChannelNameInput.tsx +1 -1
  31. package/src/app/{welcome → (main)/welcome}/(desktop)/features/Showcase.tsx +1 -1
  32. package/src/app/{welcome → (main)/welcome}/(mobile)/index.tsx +1 -1
  33. package/src/app/page.tsx +11 -9
  34. package/src/features/Conversation/components/AutoScroll.tsx +3 -2
  35. package/src/features/Conversation/components/VirtualizedList/index.tsx +15 -3
  36. package/src/locales/default/welcome.ts +1 -1
  37. /package/src/app/{home/index.tsx → (loading)/Client.tsx} +0 -0
  38. /package/src/app/{home → (loading)}/Redirect.tsx +0 -0
  39. /package/src/app/{chat → (main)/chat}/(desktop)/features/ChatHeader/HeaderAction.tsx +0 -0
  40. /package/src/app/{chat → (main)/chat}/(desktop)/features/ChatHeader/Main.tsx +0 -0
  41. /package/src/app/{chat → (main)/chat}/(desktop)/features/ChatHeader/Tags.tsx +0 -0
  42. /package/src/app/{chat → (main)/chat}/(desktop)/features/ChatHeader/index.tsx +0 -0
  43. /package/src/app/{chat → (main)/chat}/(desktop)/features/ChatInput/Footer/DragUpload.tsx +0 -0
  44. /package/src/app/{chat → (main)/chat}/(desktop)/features/ChatInput/Footer/LocalFiles.tsx +0 -0
  45. /package/src/app/{chat → (main)/chat}/(desktop)/features/ChatInput/Footer/SendMore.tsx +0 -0
  46. /package/src/app/{chat → (main)/chat}/(desktop)/features/ChatInput/Footer/index.tsx +0 -0
  47. /package/src/app/{chat → (main)/chat}/(desktop)/features/ChatInput/Header/index.tsx +0 -0
  48. /package/src/app/{chat → (main)/chat}/(desktop)/features/ChatInput/TextArea.test.tsx +0 -0
  49. /package/src/app/{chat → (main)/chat}/(desktop)/features/ChatInput/TextArea.tsx +0 -0
  50. /package/src/app/{chat → (main)/chat}/(desktop)/features/ChatInput/__tests__/useAutoFocus.test.ts +0 -0
  51. /package/src/app/{chat → (main)/chat}/(desktop)/features/ChatInput/index.tsx +0 -0
  52. /package/src/app/{chat → (main)/chat}/(desktop)/features/ChatInput/useAutoFocus.ts +0 -0
  53. /package/src/app/{chat → (main)/chat}/(desktop)/features/Conversation.tsx +0 -0
  54. /package/src/app/{chat → (main)/chat}/(desktop)/features/HotKeys.tsx +0 -0
  55. /package/src/app/{chat → (main)/chat}/(desktop)/features/SideBar/SystemRole/index.tsx +0 -0
  56. /package/src/app/{chat → (main)/chat}/(desktop)/features/SideBar/SystemRole/style.ts +0 -0
  57. /package/src/app/{chat → (main)/chat}/(desktop)/index.tsx +0 -0
  58. /package/src/app/{chat → (main)/chat}/(mobile)/features/ChatInput/Files.tsx +0 -0
  59. /package/src/app/{chat → (main)/chat}/(mobile)/features/ChatInput/index.tsx +0 -0
  60. /package/src/app/{chat → (main)/chat}/(mobile)/features/SessionHeader.tsx +0 -0
  61. /package/src/app/{chat → (main)/chat}/(mobile)/features/SessionList.tsx +0 -0
  62. /package/src/app/{chat → (main)/chat}/(mobile)/features/TopicList.tsx +0 -0
  63. /package/src/app/{chat → (main)/chat}/(mobile)/index.tsx +0 -0
  64. /package/src/app/{chat → (main)/chat}/(mobile)/mobile/ChatHeader/ChatHeaderTitle.tsx +0 -0
  65. /package/src/app/{chat → (main)/chat}/(mobile)/mobile/ChatHeader/index.tsx +0 -0
  66. /package/src/app/{chat → (main)/chat}/(mobile)/mobile/page.tsx +0 -0
  67. /package/src/app/{chat → (main)/chat}/_layout/Desktop/SessionHeader.tsx +0 -0
  68. /package/src/app/{chat → (main)/chat}/_layout/Desktop/SessionList.tsx +0 -0
  69. /package/src/app/{chat → (main)/chat}/_layout/Desktop/index.tsx +0 -0
  70. /package/src/app/{chat → (main)/chat}/_layout/Mobile/index.tsx +0 -0
  71. /package/src/app/{chat → (main)/chat}/components/SessionHydration/index.tsx +0 -0
  72. /package/src/app/{chat → (main)/chat}/components/SidebarHeader/index.tsx +0 -0
  73. /package/src/app/{chat → (main)/chat}/features/Migration/ExportConfigButton.tsx +0 -0
  74. /package/src/app/{chat → (main)/chat}/features/Migration/Failed.tsx +0 -0
  75. /package/src/app/{chat → (main)/chat}/features/Migration/Modal.tsx +0 -0
  76. /package/src/app/{chat → (main)/chat}/features/Migration/Start.tsx +0 -0
  77. /package/src/app/{chat → (main)/chat}/features/Migration/UpgradeButton.tsx +0 -0
  78. /package/src/app/{chat → (main)/chat}/features/Migration/const.ts +0 -0
  79. /package/src/app/{chat → (main)/chat}/features/Migration/index.tsx +0 -0
  80. /package/src/app/{chat → (main)/chat}/features/PageTitle/index.tsx +0 -0
  81. /package/src/app/{chat → (main)/chat}/features/PluginTag/PluginStatus.tsx +0 -0
  82. /package/src/app/{chat → (main)/chat}/features/PluginTag/index.tsx +0 -0
  83. /package/src/app/{chat → (main)/chat}/features/SessionListContent/CollapseGroup/Actions.tsx +0 -0
  84. /package/src/app/{chat → (main)/chat}/features/SessionListContent/CollapseGroup/index.tsx +0 -0
  85. /package/src/app/{chat → (main)/chat}/features/SessionListContent/DefaultMode.tsx +0 -0
  86. /package/src/app/{chat → (main)/chat}/features/SessionListContent/Inbox/index.tsx +0 -0
  87. /package/src/app/{chat → (main)/chat}/features/SessionListContent/List/AddButton.tsx +0 -0
  88. /package/src/app/{chat → (main)/chat}/features/SessionListContent/List/Item/Actions.tsx +0 -0
  89. /package/src/app/{chat → (main)/chat}/features/SessionListContent/List/Item/index.tsx +0 -0
  90. /package/src/app/{chat → (main)/chat}/features/SessionListContent/List/index.tsx +0 -0
  91. /package/src/app/{chat → (main)/chat}/features/SessionListContent/ListItem/index.tsx +0 -0
  92. /package/src/app/{chat → (main)/chat}/features/SessionListContent/Modals/ConfigGroupModal/GroupItem.tsx +0 -0
  93. /package/src/app/{chat → (main)/chat}/features/SessionListContent/Modals/ConfigGroupModal/index.tsx +0 -0
  94. /package/src/app/{chat → (main)/chat}/features/SessionListContent/Modals/CreateGroupModal.tsx +0 -0
  95. /package/src/app/{chat → (main)/chat}/features/SessionListContent/Modals/RenameGroupModal.tsx +0 -0
  96. /package/src/app/{chat → (main)/chat}/features/SessionListContent/SearchMode.tsx +0 -0
  97. /package/src/app/{chat → (main)/chat}/features/SessionListContent/SkeletonList.tsx +0 -0
  98. /package/src/app/{chat → (main)/chat}/features/SessionListContent/index.tsx +0 -0
  99. /package/src/app/{chat → (main)/chat}/features/SessionSearchBar/index.tsx +0 -0
  100. /package/src/app/{chat → (main)/chat}/features/SettingButton.tsx +0 -0
  101. /package/src/app/{chat → (main)/chat}/features/ShareButton/Preview.tsx +0 -0
  102. /package/src/app/{chat → (main)/chat}/features/ShareButton/ShareModal.tsx +0 -0
  103. /package/src/app/{chat → (main)/chat}/features/ShareButton/index.tsx +0 -0
  104. /package/src/app/{chat → (main)/chat}/features/ShareButton/style.ts +0 -0
  105. /package/src/app/{chat → (main)/chat}/features/ShareButton/type.ts +0 -0
  106. /package/src/app/{chat → (main)/chat}/features/ShareButton/useScreenshot.ts +0 -0
  107. /package/src/app/{chat → (main)/chat}/features/TelemetryNotification/index.tsx +0 -0
  108. /package/src/app/{chat → (main)/chat}/features/TopicListContent/Header.tsx +0 -0
  109. /package/src/app/{chat → (main)/chat}/features/TopicListContent/Topic/DefaultContent.tsx +0 -0
  110. /package/src/app/{chat → (main)/chat}/features/TopicListContent/Topic/SkeletonList.tsx +0 -0
  111. /package/src/app/{chat → (main)/chat}/features/TopicListContent/Topic/TopicContent.tsx +0 -0
  112. /package/src/app/{chat → (main)/chat}/features/TopicListContent/Topic/TopicItem.tsx +0 -0
  113. /package/src/app/{chat → (main)/chat}/features/TopicListContent/Topic/index.tsx +0 -0
  114. /package/src/app/{chat → (main)/chat}/features/TopicListContent/TopicSearchBar/index.tsx +0 -0
  115. /package/src/app/{chat → (main)/chat}/features/TopicListContent/index.tsx +0 -0
  116. /package/src/app/{chat → (main)/chat}/layout.ts +0 -0
  117. /package/src/app/{chat → (main)/chat}/page.tsx +0 -0
  118. /package/src/app/{chat → (main)/chat}/settings/(desktop)/index.tsx +0 -0
  119. /package/src/app/{chat → (main)/chat}/settings/(mobile)/Header.tsx +0 -0
  120. /package/src/app/{chat → (main)/chat}/settings/(mobile)/index.tsx +0 -0
  121. /package/src/app/{chat → (main)/chat}/settings/features/EditPage.tsx +0 -0
  122. /package/src/app/{chat → (main)/chat}/settings/features/HeaderContent.tsx +0 -0
  123. /package/src/app/{chat → (main)/chat}/settings/features/SubmitAgentButton/SubmitAgentModal.tsx +0 -0
  124. /package/src/app/{chat → (main)/chat}/settings/features/SubmitAgentButton/index.tsx +0 -0
  125. /package/src/app/{chat → (main)/chat}/settings/features/SubmitAgentButton/style.ts +0 -0
  126. /package/src/app/{chat → (main)/chat}/settings/layout.tsx +0 -0
  127. /package/src/app/{chat → (main)/chat}/settings/page.tsx +0 -0
  128. /package/src/app/{market → (main)/market}/(desktop)/index.tsx +0 -0
  129. /package/src/app/{market → (main)/market}/(mobile)/features/AgentCard.tsx +0 -0
  130. /package/src/app/{market → (main)/market}/(mobile)/features/AgentDetail.tsx +0 -0
  131. /package/src/app/{market → (main)/market}/(mobile)/index.tsx +0 -0
  132. /package/src/app/{market → (main)/market}/_layout/Desktop/AgentDetail.tsx +0 -0
  133. /package/src/app/{market → (main)/market}/_layout/Desktop/Header.tsx +0 -0
  134. /package/src/app/{market → (main)/market}/_layout/Desktop/index.tsx +0 -0
  135. /package/src/app/{market → (main)/market}/_layout/Mobile/Header.tsx +0 -0
  136. /package/src/app/{market → (main)/market}/_layout/Mobile/index.tsx +0 -0
  137. /package/src/app/{market → (main)/market}/components/Loading.tsx +0 -0
  138. /package/src/app/{market → (main)/market}/features/AgentCard/AgentCardBanner.tsx +0 -0
  139. /package/src/app/{market → (main)/market}/features/AgentCard/AgentCardItem.tsx +0 -0
  140. /package/src/app/{market → (main)/market}/features/AgentCard/index.tsx +0 -0
  141. /package/src/app/{market → (main)/market}/features/AgentCard/style.ts +0 -0
  142. /package/src/app/{market → (main)/market}/features/AgentDetailContent/AgentInfo/Comment.tsx +0 -0
  143. /package/src/app/{market → (main)/market}/features/AgentDetailContent/AgentInfo/Header.tsx +0 -0
  144. /package/src/app/{market → (main)/market}/features/AgentDetailContent/AgentInfo/Loading.tsx +0 -0
  145. /package/src/app/{market → (main)/market}/features/AgentDetailContent/AgentInfo/TokenTag.tsx +0 -0
  146. /package/src/app/{market → (main)/market}/features/AgentDetailContent/AgentInfo/index.tsx +0 -0
  147. /package/src/app/{market → (main)/market}/features/AgentDetailContent/AgentInfo/style.ts +0 -0
  148. /package/src/app/{market → (main)/market}/features/AgentDetailContent/index.tsx +0 -0
  149. /package/src/app/{market → (main)/market}/features/AgentSearchBar/index.tsx +0 -0
  150. /package/src/app/{market → (main)/market}/features/PageTitle/index.tsx +0 -0
  151. /package/src/app/{market → (main)/market}/features/ShareAgentButton/Inner.tsx +0 -0
  152. /package/src/app/{market → (main)/market}/features/ShareAgentButton/index.tsx +0 -0
  153. /package/src/app/{market → (main)/market}/features/TagList/Inner.tsx +0 -0
  154. /package/src/app/{market → (main)/market}/layout.ts +0 -0
  155. /package/src/app/{market → (main)/market}/loading.tsx +0 -0
  156. /package/src/app/{market → (main)/market}/page.tsx +0 -0
  157. /package/src/app/{settings → (main)/settings}/(desktop)/index.tsx +0 -0
  158. /package/src/app/{settings → (main)/settings}/(mobile)/features/AvatarBanner.tsx +0 -0
  159. /package/src/app/{settings → (main)/settings}/(mobile)/features/ExtraList.tsx +0 -0
  160. /package/src/app/{settings → (main)/settings}/(mobile)/index.tsx +0 -0
  161. /package/src/app/{settings → (main)/settings}/_layout/Desktop/Header.tsx +0 -0
  162. /package/src/app/{settings → (main)/settings}/_layout/Desktop/SideBar.tsx +0 -0
  163. /package/src/app/{settings → (main)/settings}/_layout/Desktop/index.tsx +0 -0
  164. /package/src/app/{settings → (main)/settings}/_layout/Mobile/SubSettingHeader.tsx +0 -0
  165. /package/src/app/{settings → (main)/settings}/_layout/Mobile/index.tsx +0 -0
  166. /package/src/app/{settings → (main)/settings}/about/AboutList.tsx +0 -0
  167. /package/src/app/{settings → (main)/settings}/about/page.tsx +0 -0
  168. /package/src/app/{settings → (main)/settings}/about/style.ts +0 -0
  169. /package/src/app/{settings → (main)/settings}/agent/Agent.tsx +0 -0
  170. /package/src/app/{settings → (main)/settings}/agent/loading.tsx +0 -0
  171. /package/src/app/{settings → (main)/settings}/agent/page.tsx +0 -0
  172. /package/src/app/{settings → (main)/settings}/common/index.tsx +0 -0
  173. /package/src/app/{settings → (main)/settings}/common/loading.tsx +0 -0
  174. /package/src/app/{settings → (main)/settings}/common/page.tsx +0 -0
  175. /package/src/app/{settings → (main)/settings}/features/Footer.tsx +0 -0
  176. /package/src/app/{settings → (main)/settings}/features/SettingList/Item.tsx +0 -0
  177. /package/src/app/{settings → (main)/settings}/features/SettingList/index.tsx +0 -0
  178. /package/src/app/{settings → (main)/settings}/features/ThemeSwatches/ThemeSwatchesNeutral.tsx +0 -0
  179. /package/src/app/{settings → (main)/settings}/features/ThemeSwatches/ThemeSwatchesPrimary.tsx +0 -0
  180. /package/src/app/{settings → (main)/settings}/features/ThemeSwatches/index.ts +0 -0
  181. /package/src/app/{settings → (main)/settings}/features/UpgradeAlert.tsx +0 -0
  182. /package/src/app/{settings → (main)/settings}/hooks/useSyncSettings.ts +0 -0
  183. /package/src/app/{settings → (main)/settings}/layout.ts +0 -0
  184. /package/src/app/{settings → (main)/settings}/llm/Anthropic/index.tsx +0 -0
  185. /package/src/app/{settings → (main)/settings}/llm/Azure/index.tsx +0 -0
  186. /package/src/app/{settings → (main)/settings}/llm/Bedrock/index.tsx +0 -0
  187. /package/src/app/{settings → (main)/settings}/llm/Google/index.tsx +0 -0
  188. /package/src/app/{settings → (main)/settings}/llm/Groq/index.tsx +0 -0
  189. /package/src/app/{settings → (main)/settings}/llm/Minimax/index.tsx +0 -0
  190. /package/src/app/{settings → (main)/settings}/llm/Mistral/index.tsx +0 -0
  191. /package/src/app/{settings → (main)/settings}/llm/Moonshot/index.tsx +0 -0
  192. /package/src/app/{settings → (main)/settings}/llm/Ollama/Checker.tsx +0 -0
  193. /package/src/app/{settings → (main)/settings}/llm/Ollama/index.tsx +0 -0
  194. /package/src/app/{settings → (main)/settings}/llm/OpenAI/index.tsx +0 -0
  195. /package/src/app/{settings → (main)/settings}/llm/OpenRouter/index.tsx +0 -0
  196. /package/src/app/{settings → (main)/settings}/llm/Perplexity/index.tsx +0 -0
  197. /package/src/app/{settings → (main)/settings}/llm/TogetherAI/index.tsx +0 -0
  198. /package/src/app/{settings → (main)/settings}/llm/ZeroOne/index.tsx +0 -0
  199. /package/src/app/{settings → (main)/settings}/llm/Zhipu/index.tsx +0 -0
  200. /package/src/app/{settings → (main)/settings}/llm/components/Checker.tsx +0 -0
  201. /package/src/app/{settings → (main)/settings}/llm/components/ProviderModelList/CustomModelOption.tsx +0 -0
  202. /package/src/app/{settings → (main)/settings}/llm/components/ProviderModelList/MaxTokenSlider.tsx +0 -0
  203. /package/src/app/{settings → (main)/settings}/llm/components/ProviderModelList/ModelConfigModal.tsx +0 -0
  204. /package/src/app/{settings → (main)/settings}/llm/components/ProviderModelList/ModelFetcher.tsx +0 -0
  205. /package/src/app/{settings → (main)/settings}/llm/components/ProviderModelList/Option.tsx +0 -0
  206. /package/src/app/{settings → (main)/settings}/llm/components/ProviderModelList/index.tsx +0 -0
  207. /package/src/app/{settings → (main)/settings}/llm/const.ts +0 -0
  208. /package/src/app/{settings → (main)/settings}/llm/index.tsx +0 -0
  209. /package/src/app/{settings → (main)/settings}/llm/layout.tsx +0 -0
  210. /package/src/app/{settings → (main)/settings}/llm/loading.tsx +0 -0
  211. /package/src/app/{settings → (main)/settings}/llm/page.tsx +0 -0
  212. /package/src/app/{settings → (main)/settings}/page.tsx +0 -0
  213. /package/src/app/{settings → (main)/settings}/sync/Alert.tsx +0 -0
  214. /package/src/app/{settings → (main)/settings}/sync/DeviceInfo/Card.tsx +0 -0
  215. /package/src/app/{settings → (main)/settings}/sync/DeviceInfo/DeviceName.tsx +0 -0
  216. /package/src/app/{settings → (main)/settings}/sync/DeviceInfo/index.tsx +0 -0
  217. /package/src/app/{settings → (main)/settings}/sync/PageTitle.tsx +0 -0
  218. /package/src/app/{settings → (main)/settings}/sync/WebRTC/index.tsx +0 -0
  219. /package/src/app/{settings → (main)/settings}/sync/components/SyncSwitch/index.css +0 -0
  220. /package/src/app/{settings → (main)/settings}/sync/components/SyncSwitch/index.tsx +0 -0
  221. /package/src/app/{settings → (main)/settings}/sync/components/SystemIcon.tsx +0 -0
  222. /package/src/app/{settings → (main)/settings}/sync/layout.tsx +0 -0
  223. /package/src/app/{settings → (main)/settings}/sync/loading.tsx +0 -0
  224. /package/src/app/{settings → (main)/settings}/sync/page.tsx +0 -0
  225. /package/src/app/{settings → (main)/settings}/sync/util.ts +0 -0
  226. /package/src/app/{settings → (main)/settings}/tts/TTS/index.tsx +0 -0
  227. /package/src/app/{settings → (main)/settings}/tts/TTS/options.ts +0 -0
  228. /package/src/app/{settings → (main)/settings}/tts/loading.tsx +0 -0
  229. /package/src/app/{settings → (main)/settings}/tts/page.tsx +0 -0
  230. /package/src/app/{welcome → (main)/welcome}/(desktop)/features/Footer.tsx +0 -0
  231. /package/src/app/{welcome → (main)/welcome}/(desktop)/index.tsx +0 -0
  232. /package/src/app/{welcome → (main)/welcome}/_layout/Desktop.tsx +0 -0
  233. /package/src/app/{welcome → (main)/welcome}/_layout/Mobile.tsx +0 -0
  234. /package/src/app/{welcome → (main)/welcome}/features/Banner/AgentCard.tsx +0 -0
  235. /package/src/app/{welcome → (main)/welcome}/features/Banner/AgentTemplate.tsx +0 -0
  236. /package/src/app/{welcome → (main)/welcome}/features/Banner/Hero.tsx +0 -0
  237. /package/src/app/{welcome → (main)/welcome}/features/Banner/index.tsx +0 -0
  238. /package/src/app/{welcome → (main)/welcome}/features/Banner/style.ts +0 -0
  239. /package/src/app/{welcome → (main)/welcome}/layout.ts +0 -0
  240. /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
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#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
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#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 © 2023 [LobeHub][profile-link]. <br />
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. - Replace `http(s)://your-domain` with the actual URL
59
- that LobeChat is deployed to.
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 **URLs** tab, and save the **issuer** URL.
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
- `http(s)://your-domain` 替换为 LobeChat 部署的实际 URL。
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
- 在应用设置页面中,切换到「URLs」选项卡,记录下「issuer」URL。
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
 
@@ -9,7 +9,7 @@
9
9
  "replaceBtn": "تغيير",
10
10
  "title": "إضافة توصيات المساعدين:"
11
11
  },
12
- "defaultMessage": "أنا LobeChat، مساعدك الذكي الشخصي. كيف يمكنني مساعدتك اليوم؟\nإذا كنت بحاجة إلى مساعد أكثر احترافية أو تخصيصًا، يمكنك النقر على `+` لإنشاء مساعد مخصص",
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": "Аз съм LobeChat, твоят личен интелигентен асистент. Как мога да ти помогна днес?\nАко искаш по-професионален или персонализиран асистент, кликни на `+` за създаване на персонализиран асистент.",
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 LobeChat, dein persönlicher intelligenter Assistent. Wie kann ich dir heute helfen?\nWenn du einen professionelleren oder maßgeschneiderten Assistenten benötigst, klicke auf `+`, um einen benutzerdefinierten Assistenten zu erstellen.",
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'm LobeChat, your personal intelligent assistant. How can I assist you today?\nIf you need a more professional or customized assistant, click on `+` to create a custom assistant.",
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 LobeChat, tu asistente inteligente personal. ¿En qué puedo ayudarte hoy?\nSi necesitas un asistente más profesional o personalizado, haz clic en `+` para crear un asistente personalizado.",
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 LobeChat, votre assistant intelligent personnel. Comment puis-je vous aider aujourd'hui ?\nSi vous avez besoin d'une assistance plus professionnelle ou personnalisée, cliquez sur `+` pour créer un assistant personnalisé.",
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 LobeChat, il tuo assistente intelligente personale. Come posso aiutarti oggi?\nSe hai bisogno di un assistente più professionale o personalizzato, clicca su `+` per creare un assistente personalizzato.",
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": "私はLobeChat、あなたの個人的なスマートアシスタントです。今日は何を手伝えますか?\nより専門的またはカスタマイズされたアシスタントが必要な場合は、`+` をクリックしてカスタムアシスタントを作成してください。",
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": "나는 LobeChat, 당신의 개인 지능형 보조입니다. 오늘은 무엇을 도와드릴까요?\n더 전문적이거나 맞춤형 보조가 필요하다면 `+`를 클릭하여 사용자 정의 보조를 만들 수 있습니다.",
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 LobeChat, jouw persoonlijke slimme assistent. Waarmee kan ik je vandaag helpen?\nAls je een meer professionele of aangepaste assistent nodig hebt, klik dan op `+` om een aangepaste assistent te maken.",
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 LobeChat, Twoim osobistym inteligentnym asystentem. Jak mogę Ci dzisiaj pomóc?\nJeśli potrzebujesz bardziej profesjonalnej lub spersonalizowanej pomocy, kliknij `+` aby stworzyć niestandardowego asystenta.",
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 LobeChat, seu assistente de inteligência artificial pessoal. Como posso ajudar hoje?\nSe precisar de assistência mais profissional ou personalizada, clique em `+` para criar um assistente personalizado.",
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": "Я LobeChat, ваш персональный интеллектуальный помощник. Чем я могу помочь вам сегодня?\nЕсли вам нужна более профессиональная или настраиваемая помощь, нажмите на `+` для создания пользовательского помощника.",
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 LobeChat, senin kişisel akıllı asistanınım. Bugün sana nasıl yardımcı olabilirim?\nDaha profesyonel veya özelleştirilmiş bir asistana ihtiyacın varsa, özel bir asistan oluşturmak için `+` tıklayabilirsin.",
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à LobeChat, trợ lý thông minh cá nhân của bạn. Hôm nay tôi thể giúp cho bạn?\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 `+` để tạo trợ lý cá nhân của bạn",
12
+ "defaultMessage": "Tôi là trợ lý thông minh cá nhân của bạn, LobeChat. Bạn cần giúp đỡ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": "我是 LobeChat 你的私人智能助理,我今天能帮你做什么?\n如果需要获得更加专业或定制的助手,可以点击 `+` 创建自定义助手",
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": "我是 LobeChat 你的私人智能助理,我今天能幫你做什麼?\n如果需要獲得更加專業或定制的助手,可以點擊 `+` 創建自定義助手",
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",
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(() => {
@@ -2,7 +2,7 @@ import { Skeleton } from 'antd';
2
2
  import { Suspense, memo } from 'react';
3
3
  import { Flexbox } from 'react-layout-kit';
4
4
 
5
- import Inner from '@/app/market/features/TagList/Inner';
5
+ import Inner from './Inner';
6
6
 
7
7
  const TagList = memo(() => {
8
8
  return (
@@ -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 '@/app/settings/sync/util';
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 '@/app/welcome/features/Banner';
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 Page from './home';
6
- import Redirect from './home/Redirect';
5
+ import Client from './(loading)/Client';
6
+ import Redirect from './(loading)/Redirect';
7
7
 
8
- const Index = () => (
9
- <>
10
- <Page />
11
- <Redirect />
12
- </>
13
- );
8
+ const Page = () => {
9
+ return (
10
+ <>
11
+ <Client />
12
+ <Redirect />
13
+ </>
14
+ );
15
+ };
14
16
 
15
- export default Index;
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={60 * (mobile ? 2 : 1)}
74
+ atBottomThreshold={50 * (mobile ? 2 : 1)}
66
75
  computeItemKey={(_, item) => item}
67
76
  data={data}
68
- followOutput={'auto'}
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
- '我是 LobeChat 你的私人智能助理,我今天能帮你做什么?\n如果需要获得更加专业或定制的助手,可以点击 `+` 创建自定义助手',
13
+ '我是您的私人智能助理 LobeChat ,请问现在能帮您做什么?\n如果需要获得更加专业或定制的助手,可以点击 `+` 创建自定义助手',
14
14
  qa: {
15
15
  q01: 'LobeHub 是什么?',
16
16
  q02: 'LobeChat 是什么?',
File without changes