@@ -15,9 +15,9 @@ import { useRouter } from "next/navigation";
15
15
import { useSearchParams } from "next/navigation" ;
16
16
import { ExtensionLauncher } from "./ExtensionLauncher" ;
17
17
import { useAuth } from "@/lib/auth" ;
18
- import {
19
- getExtensionPluginId ,
20
- saveTokenToExtension
18
+ import {
19
+ getExtensionPluginId ,
20
+ saveTokenToExtension ,
21
21
} from "@/lib/extension-utils" ;
22
22
import { useToast } from "@/components/ui/use-toast" ;
23
23
@@ -156,7 +156,7 @@ const CompleteStep = ({ fromExtension, onFinish }: CompleteStepProps) => (
156
156
< p className = "text-muted-foreground" >
157
157
您已成功完成 Nexus 的初始设置。现在您可以开始体验全部功能。
158
158
</ p >
159
-
159
+
160
160
{ fromExtension && (
161
161
< div className = "mt-4 text-sm text-green-600 dark:text-green-400" >
162
162
您的浏览器扩展将自动配置,无需额外设置。
@@ -178,16 +178,20 @@ export function SetupContent() {
178
178
const router = useRouter ( ) ;
179
179
const { user } = useAuth ( ) ;
180
180
const searchParams = useSearchParams ( ) ;
181
- const [ extensionPluginId , setExtensionPluginId ] = useState < string | null > ( null ) ;
182
- const [ extensionCallback , setExtensionCallback ] = useState < string | null > ( null ) ;
181
+ const [ extensionPluginId , setExtensionPluginId ] = useState < string | null > (
182
+ null ,
183
+ ) ;
184
+ const [ extensionCallback , setExtensionCallback ] = useState < string | null > (
185
+ null ,
186
+ ) ;
183
187
const [ tokenSent , setTokenSent ] = useState ( false ) ;
184
188
const { toast } = useToast ( ) ;
185
-
189
+
186
190
// 检查URL参数中是否包含plugin_id和extension_callback
187
191
useEffect ( ( ) => {
188
192
const pluginId = searchParams ?. get ( "plugin_id" ) ;
189
193
const callback = searchParams ?. get ( "extension_callback" ) ;
190
-
194
+
191
195
// 如果URL中有plugin_id,则保存它
192
196
if ( pluginId ) {
193
197
console . log ( "Setup页面从URL获取了plugin_id:" , pluginId ) ;
@@ -203,27 +207,30 @@ export function SetupContent() {
203
207
}
204
208
fetchPluginId ( ) ;
205
209
}
206
-
210
+
207
211
if ( callback ) {
208
212
setExtensionCallback ( callback ) ;
209
213
}
210
214
} , [ searchParams ] ) ;
211
-
215
+
212
216
// 在完成设置时向扩展发送Token
213
217
const handleFinish = async ( ) => {
214
218
if ( user ?. token && extensionPluginId && ! tokenSent ) {
215
219
try {
216
220
console . log ( "Setup页面尝试向扩展发送Token" ) ;
217
- const success = await saveTokenToExtension ( user . token , extensionPluginId ) ;
218
-
221
+ const success = await saveTokenToExtension (
222
+ user . token ,
223
+ extensionPluginId ,
224
+ ) ;
225
+
219
226
if ( success ) {
220
227
setTokenSent ( true ) ;
221
228
toast ( {
222
229
title : "扩展配置成功" ,
223
230
description : "Nexus扩展已完成设置" ,
224
231
variant : "default" ,
225
232
} ) ;
226
-
233
+
227
234
// 如果有回调URL,则重定向
228
235
if ( extensionCallback ) {
229
236
window . location . href = `${ extensionCallback } ?token=${ encodeURIComponent ( user . token ) } ` ;
@@ -240,7 +247,7 @@ export function SetupContent() {
240
247
console . error ( "发送Token到扩展时出错:" , error ) ;
241
248
}
242
249
}
243
-
250
+
244
251
// 如果没有扩展或发送失败,则正常重定向到仪表盘
245
252
router . push ( "/dashboard" ) ;
246
253
} ;
@@ -259,17 +266,19 @@ export function SetupContent() {
259
266
setCurrentStep ( currentStep - 1 ) ;
260
267
}
261
268
} ;
262
-
269
+
263
270
// 动态添加完成步骤组件
264
271
const AllStepComponents = [
265
- ...StepComponents ,
266
- ( props : CompleteStepProps ) => < CompleteStep
267
- fromExtension = { ! ! extensionPluginId }
268
- onFinish = { handleFinish }
269
- { ...props }
270
- />
272
+ ...StepComponents ,
273
+ ( props : CompleteStepProps ) => (
274
+ < CompleteStep
275
+ fromExtension = { ! ! extensionPluginId }
276
+ onFinish = { handleFinish }
277
+ { ...props }
278
+ />
279
+ ) ,
271
280
] ;
272
-
281
+
273
282
const CurrentStepComponent = AllStepComponents [ currentStep ] ;
274
283
275
284
return (
0 commit comments