@@ -5,15 +5,24 @@ import { checkOpenaiApiKey } from "@/lib/openai/openai";
5
5
import { toast } from "react-hot-toast" ;
6
6
import { useTranslation } from 'next-i18next' ;
7
7
import { useRouter } from "next/router" ;
8
+ import { useEffect , useState } from "react" ;
8
9
9
10
export default function Header ( ) {
10
11
const [ userKey , setUserKey ] = useLocalStorage < string > ( "user-openai-apikey-trans" ) ;
11
- const [ translateEngine , setTranslateEngine ] = useLocalStorage < string > ( "translate-engine" ) ;
12
+
13
+ // note: Hydration error when use SSR, do not use localStorage for display now
14
+ const [ translateEngine , setTranslateEngine ] = useState ( "" ) ;
15
+ const [ translateEngineStore , setTranslateEngineStore ] = useLocalStorage < string > ( "translate-engine" ) ;
16
+
12
17
const { t } = useTranslation ( "common" ) ;
13
18
const { i18n } = useTranslation ( ) ;
14
19
const router = useRouter ( ) ;
15
20
const tooltip = "Current using " + ( translateEngine === "google" ? "google translate" : "GPT" ) + ", Click to change" ;
16
21
22
+ useEffect ( ( ) => {
23
+ setTranslateEngine ( translateEngineStore || "" ) ;
24
+ } , [ ] ) ;
25
+
17
26
const changeLang = ( ) => {
18
27
const newLang = i18n . language === "en" ? "zh-CN" : "en" ;
19
28
@@ -26,6 +35,7 @@ export default function Header() {
26
35
const changeEngine = ( ) => {
27
36
const newEngine = translateEngine === "google" ? "openai" : "google" ;
28
37
setTranslateEngine ( newEngine ) ;
38
+ setTranslateEngineStore ( newEngine ) ;
29
39
}
30
40
31
41
const setOpenAIKey = ( ) => {
0 commit comments