@@ -18,7 +18,12 @@ import { setSetting } from "~/utils/extensionSettings";
1818import {
1919 getFeatureFlag ,
2020 setFeatureFlag ,
21+ isNewSettingsStoreEnabled ,
2122} from "~/components/settings/utils/accessors" ;
23+ import {
24+ onSettingChange ,
25+ settingKeys ,
26+ } from "~/components/settings/utils/settingsEmitter" ;
2227import {
2328 getSupabaseContext ,
2429 getLoggedInClient ,
@@ -367,6 +372,7 @@ const FeatureFlagsTab = (): React.ReactElement => {
367372 ) ;
368373 const [ isAlertOpen , setIsAlertOpen ] = useState ( false ) ;
369374 const [ isInstructionOpen , setIsInstructionOpen ] = useState ( false ) ;
375+ const isReactive = isNewSettingsStoreEnabled ( ) ;
370376
371377 return (
372378 < div className = "flex flex-col gap-4 p-4" >
@@ -424,26 +430,30 @@ const FeatureFlagsTab = (): React.ReactElement => {
424430 < p > Are you sure you want to proceed?</ p >
425431 </ Alert >
426432
427- { /* TODO(ENG-1484): Add pull watcher reactivity so toggling suggestive mode
428- starts/stops sync and shows the tab without requiring a reload. */ }
429433 < Alert
430434 isOpen = { isInstructionOpen }
431- onConfirm = { ( ) => window . location . reload ( ) }
432- onCancel = { ( ) => setIsInstructionOpen ( false ) }
433- confirmButtonText = "Reload Graph"
434- cancelButtonText = "Later"
435+ onConfirm = { ( ) =>
436+ isReactive
437+ ? setIsInstructionOpen ( false )
438+ : window . location . reload ( )
439+ }
440+ onCancel = { isReactive ? undefined : ( ) => setIsInstructionOpen ( false ) }
441+ confirmButtonText = { isReactive ? "OK" : "Reload Graph" }
442+ cancelButtonText = { isReactive ? undefined : "Later" }
435443 intent = { Intent . PRIMARY }
436444 >
437445 < p >
438446 If this is the first time enabling it, you will need to generate and
439447 upload all node embeddings to supabase.
440448 </ p >
449+ { ! isReactive && (
450+ < p >
451+ Please reload the graph to see the new 'Suggestive Mode'
452+ tab.
453+ </ p >
454+ ) }
441455 < p >
442- Please reload the graph to see the new 'Suggestive Mode'
443- tab.
444- </ p >
445- < p >
446- Then go to Suggestive Mode{ " " }
456+ Go to Suggestive Mode{ " " }
447457 { "-> Sync Config -> Click on 'Generate & Upload All Node Embeddings'" }
448458 </ p >
449459 </ Alert >
@@ -500,6 +510,15 @@ const FeatureFlagsTab = (): React.ReactElement => {
500510
501511const AdminPanel = ( ) : React . ReactElement => {
502512 const [ selectedTabId , setSelectedTabId ] = useState < TabId > ( "admin" ) ;
513+ const [ showSuggestiveTab , setShowSuggestiveTab ] = useState (
514+ getFeatureFlag ( "Suggestive mode enabled" ) ,
515+ ) ;
516+
517+ useEffect ( ( ) => {
518+ return onSettingChange ( settingKeys . suggestiveModeEnabled , ( newValue ) => {
519+ setShowSuggestiveTab ( Boolean ( newValue ) ) ;
520+ } ) ;
521+ } , [ ] ) ;
503522
504523 return (
505524 < Tabs
@@ -534,7 +553,7 @@ const AdminPanel = (): React.ReactElement => {
534553 </ div >
535554 }
536555 />
537- { getFeatureFlag ( "Suggestive mode enabled" ) && (
556+ { showSuggestiveTab && (
538557 < Tab
539558 id = "suggestive-mode-settings"
540559 title = "Suggestive mode"
0 commit comments