@@ -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 { useCheckServerHealth , type ServerHealth } from "@/utils/server-health"
1818
1919interface ServerFormProps {
2020 value : string
@@ -41,13 +41,15 @@ function showRequestError(language: ReturnType<typeof useLanguage>, err: unknown
4141 } )
4242}
4343
44- function useDefaultServer ( platform : ReturnType < typeof usePlatform > , language : ReturnType < typeof useLanguage > ) {
45- const [ defaultUrl , defaultUrlActions ] = createResource (
44+ function useDefaultServer ( ) {
45+ const language = useLanguage ( )
46+ const platform = usePlatform ( )
47+ const [ defaultKey , defaultUrlActions ] = createResource (
4648 async ( ) => {
4749 try {
48- const url = await platform . getDefaultServerUrl ?.( )
49- if ( ! url ) return null
50- return normalizeServerUrl ( url ) ?? null
50+ const key = await platform . getDefaultServer ?.( )
51+ if ( ! key ) return null
52+ return key
5153 } catch ( err ) {
5254 showRequestError ( language , err )
5355 return null
@@ -56,20 +58,22 @@ function useDefaultServer(platform: ReturnType<typeof usePlatform>, language: Re
5658 { initialValue : null } ,
5759 )
5860
59- const canDefault = createMemo ( ( ) => ! ! platform . getDefaultServerUrl && ! ! platform . setDefaultServerUrl )
60- const setDefault = async ( url : string | null ) => {
61+ const canDefault = createMemo ( ( ) => ! ! platform . getDefaultServer && ! ! platform . setDefaultServer )
62+ const setDefault = async ( key : ServerConnection . Key | null ) => {
6163 try {
62- await platform . setDefaultServerUrl ?.( url )
63- defaultUrlActions . mutate ( url )
64+ await platform . setDefaultServer ?.( key )
65+ defaultUrlActions . mutate ( key )
6466 } catch ( err ) {
6567 showRequestError ( language , err )
6668 }
6769 }
6870
69- return { defaultUrl , canDefault, setDefault }
71+ return { defaultKey , canDefault, setDefault }
7072}
7173
72- function useServerPreview ( fetcher : typeof fetch ) {
74+ function useServerPreview ( ) {
75+ const checkServerHealth = useCheckServerHealth ( )
76+
7377 const looksComplete = ( value : string ) => {
7478 const normalized = normalizeServerUrl ( value )
7579 if ( ! normalized ) return false
@@ -92,7 +96,7 @@ function useServerPreview(fetcher: typeof fetch) {
9296 const http : ServerConnection . HttpBase = { url : normalized }
9397 if ( username ) http . username = username
9498 if ( password ) http . password = password
95- const result = await checkServerHealth ( http , fetcher )
99+ const result = await checkServerHealth ( http )
96100 setStatus ( result . healthy )
97101 }
98102
@@ -170,9 +174,9 @@ export function DialogSelectServer() {
170174 const server = useServer ( )
171175 const platform = usePlatform ( )
172176 const language = useLanguage ( )
173- const fetcher = platform . fetch ?? globalThis . fetch
174- const { defaultUrl , canDefault , setDefault } = useDefaultServer ( platform , language )
175- const { previewStatus } = useServerPreview ( fetcher )
177+ const { defaultKey , canDefault , setDefault } = useDefaultServer ( )
178+ const { previewStatus } = useServerPreview ( )
179+ const checkServerHealth = useCheckServerHealth ( )
176180 const [ store , setStore ] = createStore ( {
177181 status : { } as Record < ServerConnection . Key , ServerHealth | undefined > ,
178182 addServer : {
@@ -264,7 +268,7 @@ export function DialogSelectServer() {
264268 const results : Record < ServerConnection . Key , ServerHealth > = { }
265269 await Promise . all (
266270 items ( ) . map ( async ( conn ) => {
267- results [ ServerConnection . key ( conn ) ] = await checkServerHealth ( conn . http , fetcher )
271+ results [ ServerConnection . key ( conn ) ] = await checkServerHealth ( conn . http )
268272 } ) ,
269273 )
270274 setStore ( "status" , reconcile ( results ) )
@@ -364,7 +368,7 @@ export function DialogSelectServer() {
364368 if ( store . addServer . name . trim ( ) ) conn . displayName = store . addServer . name . trim ( )
365369 if ( store . addServer . username ) conn . http . username = store . addServer . username
366370 if ( store . addServer . password ) conn . http . password = store . addServer . password
367- const result = await checkServerHealth ( conn . http , fetcher )
371+ const result = await checkServerHealth ( conn . http )
368372 setStore ( "addServer" , { adding : false } )
369373 if ( ! result . healthy ) {
370374 setStore ( "addServer" , { error : language . t ( "dialog.server.add.error" ) } )
@@ -404,7 +408,7 @@ export function DialogSelectServer() {
404408 displayName : name ,
405409 http : { url : normalized , username, password } ,
406410 }
407- const result = await checkServerHealth ( conn . http , fetcher )
411+ const result = await checkServerHealth ( conn . http )
408412 setStore ( "editServer" , { busy : false } )
409413 if ( ! result . healthy ) {
410414 setStore ( "editServer" , { error : language . t ( "dialog.server.add.error" ) } )
@@ -494,8 +498,8 @@ export function DialogSelectServer() {
494498
495499 async function handleRemove ( url : ServerConnection . Key ) {
496500 server . remove ( url )
497- if ( ( await platform . getDefaultServerUrl ?.( ) ) === url ) {
498- platform . setDefaultServerUrl ?.( null )
501+ if ( ( await platform . getDefaultServer ?.( ) ) === url ) {
502+ platform . setDefaultServer ?.( null )
499503 }
500504 }
501505
@@ -551,7 +555,7 @@ export function DialogSelectServer() {
551555 status = { store . status [ key ] }
552556 class = "flex items-center gap-3 min-w-0 flex-1"
553557 badge = {
554- < Show when = { defaultUrl ( ) === i . http . url } >
558+ < Show when = { defaultKey ( ) === i . http . url } >
555559 < span class = "text-text-base bg-surface-base text-14-regular px-1.5 rounded-xs" >
556560 { language . t ( "dialog.server.status.default" ) }
557561 </ span >
@@ -584,14 +588,14 @@ export function DialogSelectServer() {
584588 >
585589 < DropdownMenu . ItemLabel > { language . t ( "dialog.server.menu.edit" ) } </ DropdownMenu . ItemLabel >
586590 </ DropdownMenu . Item >
587- < Show when = { canDefault ( ) && defaultUrl ( ) !== i . http . url } >
588- < DropdownMenu . Item onSelect = { ( ) => setDefault ( i . http . url ) } >
591+ < Show when = { canDefault ( ) && defaultKey ( ) !== key } >
592+ < DropdownMenu . Item onSelect = { ( ) => setDefault ( key ) } >
589593 < DropdownMenu . ItemLabel >
590594 { language . t ( "dialog.server.menu.default" ) }
591595 </ DropdownMenu . ItemLabel >
592596 </ DropdownMenu . Item >
593597 </ Show >
594- < Show when = { canDefault ( ) && defaultUrl ( ) === i . http . url } >
598+ < Show when = { canDefault ( ) && defaultKey ( ) === key } >
595599 < DropdownMenu . Item onSelect = { ( ) => setDefault ( null ) } >
596600 < DropdownMenu . ItemLabel >
597601 { language . t ( "dialog.server.menu.defaultRemove" ) }
0 commit comments