@@ -2,6 +2,7 @@ import { SupportedLocale } from '@studio/common/lib/locale';
22import { useI18n } from '@wordpress/react-i18n' ;
33import { useEffect , useState } from 'react' ;
44import Button from 'src/components/button' ;
5+ import { FormPathInputComponent } from 'src/components/form-path-input' ;
56import { useFeatureFlags } from 'src/hooks/use-feature-flags' ;
67import { isWindowsStore } from 'src/lib/app-globals' ;
78import { getIpcApi } from 'src/lib/get-ipc-api' ;
@@ -22,7 +23,7 @@ import {
2223 useGetStudioCliIsInstalledQuery ,
2324 useSaveStudioCliIsInstalledMutation ,
2425} from 'src/stores/installed-apps-api' ;
25- import { DefaultDirectoryPicker } from './default-directory-picker ' ;
26+ import { SettingsFormField } from './settings-form-field ' ;
2627
2728export const PreferencesTab = ( { onClose } : { onClose : ( ) => void } ) => {
2829 const { __ } = useI18n ( ) ;
@@ -45,7 +46,6 @@ export const PreferencesTab = ( { onClose }: { onClose: () => void } ) => {
4546 const [ storedDefaultSiteDirectory , setStoredDefaultSiteDirectory ] = useState < string > ( ) ;
4647 const [ defaultSiteDirectory , setDefaultSiteDirectory ] = useState < string > ( ) ;
4748 const [ isLoadingDefaultSiteDirectory , setIsLoadingDefaultSiteDirectory ] = useState ( true ) ;
48- const [ isSelectingDefaultDirectory , setIsSelectingDefaultDirectory ] = useState ( false ) ;
4949
5050 const savePreferences = async ( ) => {
5151 if ( dirtyLocale ) {
@@ -105,17 +105,12 @@ export const PreferencesTab = ( { onClose }: { onClose: () => void } ) => {
105105 } , [ ] ) ;
106106
107107 const handleChangeDefaultDirectory = async ( ) => {
108- setIsSelectingDefaultDirectory ( true ) ;
109- try {
110- const response = await getIpcApi ( ) . showOpenFolderDialog (
111- __ ( 'Select default site directory' ) ,
112- defaultSiteDirectory ?? ''
113- ) ;
114- if ( response ?. path ) {
115- setDefaultSiteDirectory ( response . path ) ;
116- }
117- } finally {
118- setIsSelectingDefaultDirectory ( false ) ;
108+ const response = await getIpcApi ( ) . showOpenFolderDialog (
109+ __ ( 'Select default site directory' ) ,
110+ defaultSiteDirectory ?? ''
111+ ) ;
112+ if ( response ?. path ) {
113+ setDefaultSiteDirectory ( response . path ) ;
119114 }
120115 } ;
121116
@@ -134,12 +129,13 @@ export const PreferencesTab = ( { onClose }: { onClose: () => void } ) => {
134129 { enableAgentSuite && < McpSettings /> }
135130 </ >
136131 ) }
137- < DefaultDirectoryPicker
138- directory = { defaultSiteDirectory }
139- isLoading = { isLoadingDefaultSiteDirectory }
140- isSelecting = { isSelectingDefaultDirectory }
141- onPick = { handleChangeDefaultDirectory }
142- />
132+ < SettingsFormField label = { __ ( 'Default site directory' ) } >
133+ < FormPathInputComponent
134+ value = { isLoadingDefaultSiteDirectory ? __ ( 'Loading...' ) : defaultSiteDirectory ?? '' }
135+ onClick = { handleChangeDefaultDirectory }
136+ doesPathContainWordPress = { false }
137+ />
138+ </ SettingsFormField >
143139 < div className = "mt-auto pt-2 flex justify-end gap-3" >
144140 < Button
145141 variant = "tertiary"
0 commit comments