@@ -5,20 +5,26 @@ import { UserContext } from "@/context/user-context";
5
5
import useLocalStorage from "@/hooks/useLocalStorage" ;
6
6
import { useRouter } from "next/router" ;
7
7
8
- const defaultModalState = {
8
+ export const defaultAIState = {
9
+ enabled : "false" ,
10
+ expires : undefined ,
11
+ } ;
12
+
13
+ export const defaultModalState = {
9
14
isOpen : false ,
10
15
title : "Use Generative AI" ,
11
16
} ;
12
17
13
18
export default function useGenerativeAISearchToggle ( ) {
14
19
const router = useRouter ( ) ;
15
20
16
- const [ ai , setAI ] = useLocalStorage ( "ai" , "false" ) ;
21
+ const [ ai , setAI ] = useLocalStorage ( "ai" , defaultAIState ) ;
17
22
const { user } = React . useContext ( UserContext ) ;
18
23
19
24
const [ dialog , setDialog ] = useState ( defaultModalState ) ;
20
25
21
- const isAIPreference = ai === "true" ;
26
+ const expires = Date . now ( ) + 1000 * 60 * 60 ;
27
+ const isAIPreference = ai . enabled === "true" ;
22
28
const isChecked = isAIPreference && user ?. isLoggedIn ;
23
29
24
30
const loginUrl = `${ DCAPI_ENDPOINT } /auth/login?goto=${ goToLocation ( ) } ` ;
@@ -36,7 +42,7 @@ export default function useGenerativeAISearchToggle() {
36
42
if ( router . isReady ) {
37
43
const { query } = router ;
38
44
if ( query . ai === "true" ) {
39
- setAI ( "true" ) ;
45
+ setAI ( { enabled : "true" , expires } ) ;
40
46
}
41
47
}
42
48
} , [ router . asPath ] ) ;
@@ -61,7 +67,10 @@ export default function useGenerativeAISearchToggle() {
61
67
if ( ! user ?. isLoggedIn ) {
62
68
setDialog ( { ...dialog , isOpen : checked } ) ;
63
69
} else {
64
- setAI ( checked ? "true" : "false" ) ;
70
+ setAI ( {
71
+ enabled : checked ? "true" : "false" ,
72
+ expires : checked ? expires : undefined ,
73
+ } ) ;
65
74
}
66
75
}
67
76
0 commit comments