@@ -53,27 +53,31 @@ export const ProxyProvider: FC<PropsWithChildren> = ({ children }) => {
53
53
54
54
55
55
const dashboard = useDashboard ( )
56
- const experimentEnabled = ! dashboard ?. experiments . includes ( "moons" )
56
+ const experimentEnabled = dashboard ?. experiments . includes ( "moons" )
57
57
const queryKey = [ "get-proxies" ]
58
- const { data : proxies , error : proxiesError , isLoading : proxiesLoading , isFetched : proxiesFetched } = useQuery ( {
58
+ const { data : proxiesResp , error : proxiesError , isLoading : proxiesLoading , isFetched : proxiesFetched } = useQuery ( {
59
59
queryKey,
60
60
queryFn : getWorkspaceProxies ,
61
61
// This onSuccess ensures the local storage is synchronized with the
62
62
// proxies returned by coderd. If the selected proxy is not in the list,
63
63
// then the user selection is removed.
64
- onSuccess : ( ) => {
65
- setAndSaveProxy ( proxy . selectedProxy )
64
+ onSuccess : ( resp ) => {
65
+ setAndSaveProxy ( proxy . selectedProxy , resp . regions )
66
66
} ,
67
67
enabled : experimentEnabled ,
68
68
} )
69
69
70
70
const setAndSaveProxy = (
71
71
selectedProxy ?: Region ,
72
+ // By default the proxies come from the api call above.
73
+ // Allow the caller to override this if they have a more up
74
+ // to date list of proxies.
75
+ proxies : Region [ ] = proxiesResp ?. regions || [ ] ,
72
76
) => {
73
77
if ( ! proxies ) {
74
78
throw new Error ( "proxies are not yet loaded, so selecting a proxy makes no sense. How did you get here?" )
75
79
}
76
- const preferred = getPreferredProxy ( proxies . regions , selectedProxy )
80
+ const preferred = getPreferredProxy ( proxies , selectedProxy )
77
81
// Save to local storage to persist the user's preference across reloads
78
82
// and other tabs.
79
83
savePreferredProxy ( preferred )
@@ -105,7 +109,7 @@ export const ProxyProvider: FC<PropsWithChildren> = ({ children }) => {
105
109
preferredWildcardHostname :
106
110
applicationHostResult ?. host || "" ,
107
111
} ,
108
- proxies : experimentEnabled ? proxies ?. regions : [ ] ,
112
+ proxies : experimentEnabled ? proxiesResp ?. regions : [ ] ,
109
113
isLoading : experimentEnabled ? proxiesLoading : appHostLoading ,
110
114
isFetched : experimentEnabled ? proxiesFetched : appHostFetched ,
111
115
error : experimentEnabled ? proxiesError : appHostError ,
0 commit comments