@@ -14,7 +14,7 @@ import { ServerHealthIndicator, ServerRow } from "@/components/server/server-row
1414import { useLanguage } from "@/context/language"
1515import { usePlatform } from "@/context/platform"
1616import { normalizeServerUrl , ServerConnection , useServer } from "@/context/server"
17- import { checkServerHealth , type ServerHealth } from "@/utils/server-health"
17+ import { type ServerHealth , useCheckServerHealth } from "@/utils/server-health"
1818
1919const DEFAULT_USERNAME = "opencode"
2020
@@ -43,13 +43,15 @@ function showRequestError(language: ReturnType<typeof useLanguage>, err: unknown
4343 } )
4444}
4545
46- function useDefaultServer ( platform : ReturnType < typeof usePlatform > , language : ReturnType < typeof useLanguage > ) {
47- const [ defaultUrl , defaultUrlActions ] = createResource (
46+ function useDefaultServer ( ) {
47+ const language = useLanguage ( )
48+ const platform = usePlatform ( )
49+ const [ defaultKey , defaultUrlActions ] = createResource (
4850 async ( ) => {
4951 try {
50- const url = await platform . getDefaultServerUrl ?.( )
51- if ( ! url ) return null
52- return normalizeServerUrl ( url ) ?? null
52+ const key = await platform . getDefaultServer ?.( )
53+ if ( ! key ) return null
54+ return key
5355 } catch ( err ) {
5456 showRequestError ( language , err )
5557 return null
@@ -58,20 +60,22 @@ function useDefaultServer(platform: ReturnType<typeof usePlatform>, language: Re
5860 { initialValue : null } ,
5961 )
6062
61- const canDefault = createMemo ( ( ) => ! ! platform . getDefaultServerUrl && ! ! platform . setDefaultServerUrl )
62- const setDefault = async ( url : string | null ) => {
63+ const canDefault = createMemo ( ( ) => ! ! platform . getDefaultServer && ! ! platform . setDefaultServer )
64+ const setDefault = async ( key : ServerConnection . Key | null ) => {
6365 try {
64- await platform . setDefaultServerUrl ?.( url )
65- defaultUrlActions . mutate ( url )
66+ await platform . setDefaultServer ?.( key )
67+ defaultUrlActions . mutate ( key )
6668 } catch ( err ) {
6769 showRequestError ( language , err )
6870 }
6971 }
7072
71- return { defaultUrl , canDefault, setDefault }
73+ return { defaultKey , canDefault, setDefault }
7274}
7375
74- function useServerPreview ( fetcher : typeof fetch ) {
76+ function useServerPreview ( ) {
77+ const checkServerHealth = useCheckServerHealth ( )
78+
7579 const looksComplete = ( value : string ) => {
7680 const normalized = normalizeServerUrl ( value )
7781 if ( ! normalized ) return false
@@ -94,7 +98,7 @@ function useServerPreview(fetcher: typeof fetch) {
9498 const http : ServerConnection . HttpBase = { url : normalized }
9599 if ( username ) http . username = username
96100 if ( password ) http . password = password
97- const result = await checkServerHealth ( http , fetcher )
101+ const result = await checkServerHealth ( http )
98102 setStatus ( result . healthy )
99103 }
100104
@@ -172,9 +176,9 @@ export function DialogSelectServer() {
172176 const server = useServer ( )
173177 const platform = usePlatform ( )
174178 const language = useLanguage ( )
175- const fetcher = platform . fetch ?? globalThis . fetch
176- const { defaultUrl , canDefault , setDefault } = useDefaultServer ( platform , language )
177- const { previewStatus } = useServerPreview ( fetcher )
179+ const { defaultKey , canDefault , setDefault } = useDefaultServer ( )
180+ const { previewStatus } = useServerPreview ( )
181+ const checkServerHealth = useCheckServerHealth ( )
178182 const [ store , setStore ] = createStore ( {
179183 status : { } as Record < ServerConnection . Key , ServerHealth | undefined > ,
180184 addServer : {
@@ -266,7 +270,7 @@ export function DialogSelectServer() {
266270 const results : Record < ServerConnection . Key , ServerHealth > = { }
267271 await Promise . all (
268272 items ( ) . map ( async ( conn ) => {
269- results [ ServerConnection . key ( conn ) ] = await checkServerHealth ( conn . http , fetcher )
273+ results [ ServerConnection . key ( conn ) ] = await checkServerHealth ( conn . http )
270274 } ) ,
271275 )
272276 setStore ( "status" , reconcile ( results ) )
@@ -366,7 +370,7 @@ export function DialogSelectServer() {
366370 if ( store . addServer . name . trim ( ) ) conn . displayName = store . addServer . name . trim ( )
367371 if ( store . addServer . password ) conn . http . password = store . addServer . password
368372 if ( store . addServer . password && store . addServer . username ) conn . http . username = store . addServer . username
369- const result = await checkServerHealth ( conn . http , fetcher )
373+ const result = await checkServerHealth ( conn . http )
370374 setStore ( "addServer" , { adding : false } )
371375 if ( ! result . healthy ) {
372376 setStore ( "addServer" , { error : language . t ( "dialog.server.add.error" ) } )
@@ -406,7 +410,7 @@ export function DialogSelectServer() {
406410 displayName : name ,
407411 http : { url : normalized , username, password } ,
408412 }
409- const result = await checkServerHealth ( conn . http , fetcher )
413+ const result = await checkServerHealth ( conn . http )
410414 setStore ( "editServer" , { busy : false } )
411415 if ( ! result . healthy ) {
412416 setStore ( "editServer" , { error : language . t ( "dialog.server.add.error" ) } )
@@ -496,8 +500,8 @@ export function DialogSelectServer() {
496500
497501 async function handleRemove ( url : ServerConnection . Key ) {
498502 server . remove ( url )
499- if ( ( await platform . getDefaultServerUrl ?.( ) ) === url ) {
500- platform . setDefaultServerUrl ?.( null )
503+ if ( ( await platform . getDefaultServer ?.( ) ) === url ) {
504+ platform . setDefaultServer ?.( null )
501505 }
502506 }
503507
@@ -553,7 +557,7 @@ export function DialogSelectServer() {
553557 status = { store . status [ key ] }
554558 class = "flex items-center gap-3 min-w-0 flex-1"
555559 badge = {
556- < Show when = { defaultUrl ( ) === i . http . url } >
560+ < Show when = { defaultKey ( ) === ServerConnection . key ( i ) } >
557561 < span class = "text-text-base bg-surface-base text-14-regular px-1.5 rounded-xs" >
558562 { language . t ( "dialog.server.status.default" ) }
559563 </ span >
@@ -586,14 +590,14 @@ export function DialogSelectServer() {
586590 >
587591 < DropdownMenu . ItemLabel > { language . t ( "dialog.server.menu.edit" ) } </ DropdownMenu . ItemLabel >
588592 </ DropdownMenu . Item >
589- < Show when = { canDefault ( ) && defaultUrl ( ) !== i . http . url } >
590- < DropdownMenu . Item onSelect = { ( ) => setDefault ( i . http . url ) } >
593+ < Show when = { canDefault ( ) && defaultKey ( ) !== key } >
594+ < DropdownMenu . Item onSelect = { ( ) => setDefault ( key ) } >
591595 < DropdownMenu . ItemLabel >
592596 { language . t ( "dialog.server.menu.default" ) }
593597 </ DropdownMenu . ItemLabel >
594598 </ DropdownMenu . Item >
595599 </ Show >
596- < Show when = { canDefault ( ) && defaultUrl ( ) === i . http . url } >
600+ < Show when = { canDefault ( ) && defaultKey ( ) === key } >
597601 < DropdownMenu . Item onSelect = { ( ) => setDefault ( null ) } >
598602 < DropdownMenu . ItemLabel >
599603 { language . t ( "dialog.server.menu.defaultRemove" ) }
0 commit comments