@@ -32,7 +32,9 @@ type Props = {
3232
3333export const Home : React . FC < Props > = ( props ) => {
3434 const [ is_connected , set_is_connected ] = useState < boolean > ( )
35- const [ presets , set_presets ] = useState < Preset [ ] > ( )
35+ const [ all_presets , set_all_presets ] = useState < {
36+ [ T in WebMode ] : Preset [ ]
37+ } > ( )
3638 const [ selected_presets , set_selected_presets ] = useState < string [ ] > ( [ ] )
3739 const [ has_active_editor , set_has_active_editor ] = useState < boolean > ( )
3840 const [ has_active_selection , set_has_active_selection ] = useState < boolean > ( )
@@ -60,7 +62,7 @@ export const Home: React.FC<Props> = (props) => {
6062 set_is_connected ( message . connected )
6163 break
6264 case 'PRESETS' :
63- set_presets ( ( message as PresetsMessage ) . presets )
65+ set_all_presets ( ( message as PresetsMessage ) . presets )
6466 break
6567 case 'SELECTED_PRESETS' :
6668 set_selected_presets ( message . names )
@@ -198,8 +200,10 @@ export const Home: React.FC<Props> = (props) => {
198200 }
199201
200202 const handle_presets_reorder = ( reordered_presets : Preset [ ] ) => {
201- // Update local state
202- set_presets ( reordered_presets )
203+ if ( all_presets ) {
204+ // Update local state
205+ set_all_presets ( { ...all_presets , [ current_mode ] : reordered_presets } )
206+ }
203207
204208 // Send message to extension to save the new order
205209 props . vscode . postMessage ( {
@@ -227,7 +231,14 @@ export const Home: React.FC<Props> = (props) => {
227231 }
228232
229233 const handle_preset_edit = ( name : string ) => {
230- const preset = presets ?. find ( ( preset ) => preset . name == name )
234+ const current_presets = all_presets
235+ ? all_presets [
236+ props . home_view_type === HOME_VIEW_TYPES . WEB
237+ ? props . web_mode
238+ : props . api_mode
239+ ]
240+ : [ ]
241+ const preset = current_presets . find ( ( preset ) => preset . name == name )
231242 if ( preset ) props . on_preset_edit ( preset )
232243 }
233244
@@ -392,7 +403,7 @@ export const Home: React.FC<Props> = (props) => {
392403
393404 if (
394405 is_connected === undefined ||
395- presets === undefined ||
406+ all_presets === undefined ||
396407 has_active_editor === undefined ||
397408 has_active_selection === undefined ||
398409 ask_history === undefined ||
@@ -407,6 +418,13 @@ export const Home: React.FC<Props> = (props) => {
407418 return < > </ >
408419 }
409420
421+ const presets_for_current_mode =
422+ all_presets [
423+ props . home_view_type === HOME_VIEW_TYPES . WEB
424+ ? props . web_mode
425+ : props . api_mode
426+ ]
427+
410428 return (
411429 < HomeView
412430 on_show_intro = { props . on_show_intro }
@@ -415,7 +433,7 @@ export const Home: React.FC<Props> = (props) => {
415433 on_search_click = { handle_search_click }
416434 on_at_sign_click = { handle_at_sign_click }
417435 is_connected = { is_connected }
418- presets = { presets }
436+ presets = { presets_for_current_mode }
419437 selected_presets = { selected_presets }
420438 on_create_preset = { handle_create_preset }
421439 on_quick_action_click = { handle_quick_action_click }
0 commit comments