@lobehub/lobehub 2.0.0-next.323 → 2.0.0-next.324

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 CHANGED
@@ -2,6 +2,31 @@
2
2
 
3
3
  # Changelog
4
4
 
5
+ ## [Version 2.0.0-next.324](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.323...v2.0.0-next.324)
6
+
7
+ <sup>Released on **2026-01-20**</sup>
8
+
9
+ #### 🐛 Bug Fixes
10
+
11
+ - **misc**: TypewriterEffect not refreshing on language change.
12
+
13
+ <br/>
14
+
15
+ <details>
16
+ <summary><kbd>Improvements and Fixes</kbd></summary>
17
+
18
+ #### What's fixed
19
+
20
+ - **misc**: TypewriterEffect not refreshing on language change, closes [#11657](https://github.com/lobehub/lobe-chat/issues/11657) ([ba30f46](https://github.com/lobehub/lobe-chat/commit/ba30f46))
21
+
22
+ </details>
23
+
24
+ <div align="right">
25
+
26
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
27
+
28
+ </div>
29
+
5
30
  ## [Version 2.0.0-next.323](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.322...v2.0.0-next.323)
6
31
 
7
32
  <sup>Released on **2026-01-20**</sup>
package/changelog/v1.json CHANGED
@@ -1,4 +1,13 @@
1
1
  [
2
+ {
3
+ "children": {
4
+ "fixes": [
5
+ "TypewriterEffect not refreshing on language change."
6
+ ]
7
+ },
8
+ "date": "2026-01-20",
9
+ "version": "2.0.0-next.324"
10
+ },
2
11
  {
3
12
  "children": {
4
13
  "improvements": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/lobehub",
3
- "version": "2.0.0-next.323",
3
+ "version": "2.0.0-next.324",
4
4
  "description": "LobeHub - an open-source,comprehensive AI Agent 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",
@@ -2,6 +2,7 @@ import { Flexbox, type FlexboxProps, Text } from '@lobehub/ui';
2
2
  import { TypewriterEffect, type TypewriterEffectProps } from '@lobehub/ui/awesome';
3
3
  import { LoadingDots } from '@lobehub/ui/chat';
4
4
  import { memo } from 'react';
5
+ import { useTranslation } from 'react-i18next';
5
6
 
6
7
  import { ProductLogo } from '@/components/Branding';
7
8
 
@@ -11,6 +12,9 @@ interface LobeMessageProps extends Omit<FlexboxProps, 'children'> {
11
12
  }
12
13
 
13
14
  const LobeMessage = memo<LobeMessageProps>(({ sentences, fontSize = 24, ...rest }) => {
15
+ const { i18n } = useTranslation();
16
+ const locale = i18n.language;
17
+
14
18
  return (
15
19
  <Flexbox gap={8} {...rest}>
16
20
  <ProductLogo size={fontSize * 2} />
@@ -21,6 +25,7 @@ const LobeMessage = memo<LobeMessageProps>(({ sentences, fontSize = 24, ...rest
21
25
  deletePauseDuration={1000}
22
26
  deletingSpeed={32}
23
27
  hideCursorWhileTyping={'afterTyping'}
28
+ key={locale}
24
29
  pauseDuration={16_000}
25
30
  sentences={sentences}
26
31
  typingSpeed={64}
@@ -17,7 +17,8 @@ interface WelcomeStepProps {
17
17
  }
18
18
 
19
19
  const WelcomeStep = memo<WelcomeStepProps>(({ onNext }) => {
20
- const { t } = useTranslation('onboarding');
20
+ const { t, i18n } = useTranslation('onboarding');
21
+ const locale = i18n.language;
21
22
  const updateGeneralConfig = useUserStore((s) => s.updateGeneralConfig);
22
23
 
23
24
  const handleNext = () => {
@@ -53,6 +54,7 @@ const WelcomeStep = memo<WelcomeStepProps>(({ onNext }) => {
53
54
  deletePauseDuration={1000}
54
55
  deletingSpeed={32}
55
56
  hideCursorWhileTyping={'afterTyping'}
57
+ key={locale}
56
58
  pauseDuration={16_000}
57
59
  sentences={[
58
60
  t('telemetry.title', { name: 'Lobe AI' }),
@@ -7,7 +7,8 @@ import { memo, useMemo } from 'react';
7
7
  import { useTranslation } from 'react-i18next';
8
8
 
9
9
  const WelcomeText = memo(() => {
10
- const { t } = useTranslation('welcome');
10
+ const { t, i18n } = useTranslation('welcome');
11
+ const locale = i18n.language;
11
12
 
12
13
  const sentences = useMemo(() => {
13
14
  const messages = t('welcomeMessages', { returnObjects: true }) as Record<string, string>;
@@ -28,6 +29,7 @@ const WelcomeText = memo(() => {
28
29
  deletePauseDuration={1000}
29
30
  deletingSpeed={32}
30
31
  hideCursorWhileTyping={'afterTyping'}
32
+ key={locale}
31
33
  pauseDuration={16_000}
32
34
  sentences={sentences}
33
35
  typingSpeed={64}
@@ -2,6 +2,7 @@ import { Flexbox, type FlexboxProps, Text } from '@lobehub/ui';
2
2
  import { TypewriterEffect, type TypewriterEffectProps } from '@lobehub/ui/awesome';
3
3
  import { LoadingDots } from '@lobehub/ui/chat';
4
4
  import { memo } from 'react';
5
+ import { useTranslation } from 'react-i18next';
5
6
 
6
7
  import { ProductLogo } from '@/components/Branding';
7
8
 
@@ -11,6 +12,9 @@ interface LobeMessageProps extends Omit<FlexboxProps, 'children'> {
11
12
  }
12
13
 
13
14
  const LobeMessage = memo<LobeMessageProps>(({ sentences, fontSize = 24, ...rest }) => {
15
+ const { i18n } = useTranslation();
16
+ const locale = i18n.language;
17
+
14
18
  return (
15
19
  <Flexbox gap={8} {...rest}>
16
20
  <ProductLogo size={fontSize * 2} />
@@ -21,6 +25,7 @@ const LobeMessage = memo<LobeMessageProps>(({ sentences, fontSize = 24, ...rest
21
25
  deletePauseDuration={1000}
22
26
  deletingSpeed={32}
23
27
  hideCursorWhileTyping={'afterTyping'}
28
+ key={locale}
24
29
  pauseDuration={16_000}
25
30
  sentences={sentences}
26
31
  typingSpeed={64}
@@ -19,7 +19,8 @@ interface TelemetryStepProps {
19
19
  }
20
20
 
21
21
  const TelemetryStep = memo<TelemetryStepProps>(({ onNext }) => {
22
- const { t } = useTranslation('onboarding');
22
+ const { t, i18n } = useTranslation('onboarding');
23
+ const locale = i18n.language;
23
24
  const [check, setCheck] = useState(true);
24
25
  const [isNavigating, setIsNavigating] = useState(false);
25
26
  const isNavigatingRef = useRef(false);
@@ -63,6 +64,7 @@ const TelemetryStep = memo<TelemetryStepProps>(({ onNext }) => {
63
64
  deletePauseDuration={1000}
64
65
  deletingSpeed={32}
65
66
  hideCursorWhileTyping={'afterTyping'}
67
+ key={locale}
66
68
  pauseDuration={16_000}
67
69
  sentences={[
68
70
  t('telemetry.title', { name: 'Lobe AI' }),