@@ -85,7 +85,7 @@ export interface ConfigPageProps extends React.HTMLProps<HTMLElement> {
85
85
// Config Page can be loaded either as a page or as a component in the landing helper-ui page
86
86
const ConfigPage : FunctionComponent < ConfigPageProps > = ( ) => {
87
87
const { gotoPage } = useContext ( RouteContext )
88
- const { setConfig, resetConfig, gateways, routers, dnsJsonResolvers, debug, enableGatewayProviders, enableRecursiveGateways, enableWss, enableWebTransport, fetchTimeout, _supportsSubdomains, isLoading : isConfigDataLoading } = useContext ( ConfigContext )
88
+ const { setConfig, resetConfig, gateways, routers, dnsJsonResolvers, debug, enableGatewayProviders, enableRecursiveGateways, enableWss, enableWebTransport, enableProviderQueryParameter , fetchTimeout, _supportsSubdomains, isLoading : isConfigDataLoading } = useContext ( ConfigContext )
89
89
const [ isSaving , setIsSaving ] = useState ( false )
90
90
const [ error , setError ] = useState < Error | null > ( null )
91
91
const [ resetKey , setResetKey ] = useState ( 0 )
@@ -98,7 +98,7 @@ const ConfigPage: FunctionComponent<ConfigPageProps> = () => {
98
98
}
99
99
// we get the iframe origin from a query parameter called 'origin', if this is loaded in an iframe
100
100
const targetOrigin = decodeURIComponent ( window . location . hash . split ( '@origin=' ) [ 1 ] )
101
- const config = { gateways, routers, dnsJsonResolvers, debug, enableGatewayProviders, enableRecursiveGateways, enableWss, enableWebTransport, fetchTimeout, _supportsSubdomains }
101
+ const config = { gateways, routers, dnsJsonResolvers, debug, enableGatewayProviders, enableRecursiveGateways, enableWss, enableWebTransport, enableProviderQueryParameter , fetchTimeout, _supportsSubdomains }
102
102
log . trace ( 'config-page: postMessage config to origin ' , JSON . stringify ( config ) , targetOrigin )
103
103
/**
104
104
* The reload page in the parent window is listening for this message, and then it passes a RELOAD_CONFIG message to the service worker
@@ -107,7 +107,7 @@ const ConfigPage: FunctionComponent<ConfigPageProps> = () => {
107
107
targetOrigin
108
108
} )
109
109
log . trace ( 'config-page: RELOAD_CONFIG sent to parent window' )
110
- } , [ gateways , routers , dnsJsonResolvers , debug , enableGatewayProviders , enableRecursiveGateways , enableWss , enableWebTransport , fetchTimeout ] )
110
+ } , [ gateways , routers , dnsJsonResolvers , debug , enableGatewayProviders , enableRecursiveGateways , enableWss , enableWebTransport , enableProviderQueryParameter , fetchTimeout ] )
111
111
112
112
useEffect ( ( ) => {
113
113
if ( ! isConfigDataLoading ) {
@@ -120,7 +120,7 @@ const ConfigPage: FunctionComponent<ConfigPageProps> = () => {
120
120
121
121
const saveConfig = useCallback ( async ( ) => {
122
122
try {
123
- const config = { gateways, routers, dnsJsonResolvers, debug, enableGatewayProviders, enableRecursiveGateways, enableWss, enableWebTransport, fetchTimeout }
123
+ const config = { gateways, routers, dnsJsonResolvers, debug, enableGatewayProviders, enableRecursiveGateways, enableWss, enableWebTransport, enableProviderQueryParameter , fetchTimeout }
124
124
setIsSaving ( true )
125
125
await storeConfig ( config , uiComponentLogger )
126
126
log . trace ( 'config-page: sending RELOAD_CONFIG to service worker' )
@@ -139,7 +139,7 @@ const ConfigPage: FunctionComponent<ConfigPageProps> = () => {
139
139
} finally {
140
140
setIsSaving ( false )
141
141
}
142
- } , [ gateways , routers , dnsJsonResolvers , debug , enableGatewayProviders , enableRecursiveGateways , enableWss , enableWebTransport , fetchTimeout ] )
142
+ } , [ gateways , routers , dnsJsonResolvers , debug , enableGatewayProviders , enableRecursiveGateways , enableWss , enableWebTransport , enableProviderQueryParameter , fetchTimeout ] )
143
143
144
144
const doResetConfig = useCallback ( async ( ) => {
145
145
// we need to clear out the localStorage items and make sure default values are set, and that all of our inputs are updated
@@ -183,6 +183,14 @@ const ConfigPage: FunctionComponent<ConfigPageProps> = () => {
183
183
onChange = { ( value ) => { setConfig ( 'enableWebTransport' , value ) } }
184
184
resetKey = { resetKey }
185
185
/>
186
+ < InputToggle
187
+ className = 'e2e-config-page-input e2e-config-page-input-enableProviderQueryParameter'
188
+ label = 'Enable WebTransport Providers'
189
+ description = 'Use WebTransport providers returned from delegated routers for direct retrieval.'
190
+ value = { enableProviderQueryParameter }
191
+ onChange = { ( value ) => { setConfig ( 'enableProviderQueryParameter' , value ) } }
192
+ resetKey = { resetKey }
193
+ />
186
194
< TextInput
187
195
className = 'e2e-config-page-input e2e-config-page-input-routers'
188
196
description = 'A newline delimited list of delegated IPFS router URLs.'
0 commit comments