Skip to content

Commit faf2ce2

Browse files
committed
Refactor settings handlers by moving all message posting logic from into the hook
1 parent 43b6241 commit faf2ce2

2 files changed

Lines changed: 125 additions & 112 deletions

File tree

‎packages/vscode/src/views/settings/frontend/Settings.tsx‎

Lines changed: 15 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,7 @@
11
import { useState, useEffect, useMemo } from 'react'
22
import { use_settings_data } from './hooks/use-settings-data'
33
import { post_message } from './utils/post_message'
4-
import {
5-
BackendMessage,
6-
FrontendMessage,
7-
ProviderForClient,
8-
ConfigurationForClient
9-
} from '../types/messages'
4+
import { BackendMessage } from '../types/messages'
105
import { Home } from './Home/Home'
116

127
type NavItem =
@@ -49,91 +44,6 @@ export const Settings = () => {
4944

5045
if (!all_data_loaded) return null
5146

52-
const handle_reorder_providers = (
53-
reordered_providers: ProviderForClient[]
54-
) => {
55-
settings_data_hook.set_providers(reordered_providers)
56-
post_message(vscode, {
57-
command: 'REORDER_MODEL_PROVIDERS',
58-
providers: reordered_providers
59-
})
60-
}
61-
62-
const handle_add_provider = () => {
63-
post_message(vscode, { command: 'ADD_MODEL_PROVIDER' })
64-
}
65-
66-
const handle_delete_provider = (provider_name: string) => {
67-
post_message(vscode, {
68-
command: 'DELETE_MODEL_PROVIDER',
69-
provider_name
70-
})
71-
}
72-
73-
const handle_rename_provider = (provider_name: string) => {
74-
post_message(vscode, {
75-
command: 'RENAME_MODEL_PROVIDER',
76-
provider_name
77-
})
78-
}
79-
80-
const handle_change_api_key = (provider_name: string) => {
81-
post_message(vscode, {
82-
command: 'CHANGE_MODEL_PROVIDER_KEY',
83-
provider_name
84-
})
85-
}
86-
87-
const handle_add_config = (tool_name: string) => {
88-
post_message(vscode, {
89-
command: `ADD_${tool_name}_CONFIGURATION`
90-
} as FrontendMessage)
91-
}
92-
93-
const handle_reorder_configs = (
94-
tool_name: string,
95-
reordered: ConfigurationForClient[]
96-
) => {
97-
post_message(vscode, {
98-
command: `REORDER_${tool_name}_CONFIGURATIONS`,
99-
configurations: reordered
100-
} as FrontendMessage)
101-
}
102-
103-
const handle_edit_config = (tool_name: string, configuration_id: string) => {
104-
post_message(vscode, {
105-
command: `EDIT_${tool_name}_CONFIGURATION`,
106-
configuration_id
107-
} as FrontendMessage)
108-
}
109-
110-
const handle_delete_config = (
111-
tool_name: string,
112-
configuration_id: string
113-
) => {
114-
post_message(vscode, {
115-
command: `DELETE_${tool_name}_CONFIGURATION`,
116-
configuration_id
117-
} as FrontendMessage)
118-
}
119-
120-
const handle_set_default_config = (
121-
tool_name: string,
122-
configuration_id: string
123-
) => {
124-
post_message(vscode, {
125-
command: `SET_DEFAULT_${tool_name}_CONFIGURATION`,
126-
configuration_id
127-
} as FrontendMessage)
128-
}
129-
130-
const handle_unset_default_config = (tool_name: string) => {
131-
post_message(vscode, {
132-
command: `SET_DEFAULT_${tool_name}_CONFIGURATION`,
133-
configuration_id: null
134-
} as FrontendMessage)
135-
}
136-
13747
return (
13848
<Home
13949
providers={settings_data_hook.providers!}
@@ -157,26 +67,21 @@ export const Settings = () => {
15767
set_intelligent_update_configs={
15868
settings_data_hook.set_intelligent_update_configs
15969
}
160-
on_commit_instructions_change={(instructions) =>
161-
post_message(vscode, {
162-
command: 'UPDATE_COMMIT_MESSAGE_INSTRUCTIONS',
163-
instructions
164-
})
165-
}
166-
on_open_editor_settings={() =>
167-
post_message(vscode, { command: 'OPEN_EDITOR_SETTINGS' })
70+
on_commit_instructions_change={
71+
settings_data_hook.handle_commit_instructions_change
16872
}
169-
on_reorder_providers={handle_reorder_providers}
170-
on_add_provider={handle_add_provider}
171-
on_delete_provider={handle_delete_provider}
172-
on_rename_provider={handle_rename_provider}
173-
on_change_api_key={handle_change_api_key}
174-
on_add_config={handle_add_config}
175-
on_reorder_configs={handle_reorder_configs}
176-
on_edit_config={handle_edit_config}
177-
on_delete_config={handle_delete_config}
178-
on_set_default_config={handle_set_default_config}
179-
on_unset_default_config={handle_unset_default_config}
73+
on_open_editor_settings={settings_data_hook.handle_open_editor_settings}
74+
on_reorder_providers={settings_data_hook.handle_reorder_providers}
75+
on_add_provider={settings_data_hook.handle_add_provider}
76+
on_delete_provider={settings_data_hook.handle_delete_provider}
77+
on_rename_provider={settings_data_hook.handle_rename_provider}
78+
on_change_api_key={settings_data_hook.handle_change_api_key}
79+
on_add_config={settings_data_hook.handle_add_config}
80+
on_reorder_configs={settings_data_hook.handle_reorder_configs}
81+
on_edit_config={settings_data_hook.handle_edit_config}
82+
on_delete_config={settings_data_hook.handle_delete_config}
83+
on_set_default_config={settings_data_hook.handle_set_default_config}
84+
on_unset_default_config={settings_data_hook.handle_unset_default_config}
18085
scroll_to_section_on_load={scroll_to_section_on_load}
18186
/>
18287
)

‎packages/vscode/src/views/settings/frontend/hooks/use-settings-data.ts‎

Lines changed: 110 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ import { useEffect, useState } from 'react'
22
import {
33
BackendMessage,
44
ConfigurationForClient,
5-
ProviderForClient
5+
ProviderForClient,
6+
FrontendMessage
67
} from '@/views/settings/types/messages'
78
import { post_message } from '../utils/post_message'
89

@@ -67,6 +68,100 @@ export const use_settings_data = (vscode: any) => {
6768
}
6869
}, [])
6970

71+
const handle_reorder_providers = (
72+
reordered_providers: ProviderForClient[]
73+
) => {
74+
set_providers(reordered_providers)
75+
post_message(vscode, {
76+
command: 'REORDER_MODEL_PROVIDERS',
77+
providers: reordered_providers
78+
})
79+
}
80+
81+
const handle_add_provider = () => {
82+
post_message(vscode, { command: 'ADD_MODEL_PROVIDER' })
83+
}
84+
85+
const handle_delete_provider = (provider_name: string) => {
86+
post_message(vscode, {
87+
command: 'DELETE_MODEL_PROVIDER',
88+
provider_name
89+
})
90+
}
91+
92+
const handle_rename_provider = (provider_name: string) => {
93+
post_message(vscode, {
94+
command: 'RENAME_MODEL_PROVIDER',
95+
provider_name
96+
})
97+
}
98+
99+
const handle_change_api_key = (provider_name: string) => {
100+
post_message(vscode, {
101+
command: 'CHANGE_MODEL_PROVIDER_KEY',
102+
provider_name
103+
})
104+
}
105+
106+
const handle_add_config = (tool_name: string) => {
107+
post_message(vscode, {
108+
command: `ADD_${tool_name}_CONFIGURATION`
109+
} as FrontendMessage)
110+
}
111+
112+
const handle_reorder_configs = (
113+
tool_name: string,
114+
reordered: ConfigurationForClient[]
115+
) => {
116+
post_message(vscode, {
117+
command: `REORDER_${tool_name}_CONFIGURATIONS`,
118+
configurations: reordered
119+
} as FrontendMessage)
120+
}
121+
122+
const handle_edit_config = (tool_name: string, configuration_id: string) => {
123+
post_message(vscode, {
124+
command: `EDIT_${tool_name}_CONFIGURATION`,
125+
configuration_id
126+
} as FrontendMessage)
127+
}
128+
129+
const handle_delete_config = (
130+
tool_name: string,
131+
configuration_id: string
132+
) => {
133+
post_message(vscode, {
134+
command: `DELETE_${tool_name}_CONFIGURATION`,
135+
configuration_id
136+
} as FrontendMessage)
137+
}
138+
139+
const handle_set_default_config = (
140+
tool_name: string,
141+
configuration_id: string
142+
) => {
143+
post_message(vscode, {
144+
command: `SET_DEFAULT_${tool_name}_CONFIGURATION`,
145+
configuration_id
146+
} as FrontendMessage)
147+
}
148+
149+
const handle_unset_default_config = (tool_name: string) => {
150+
post_message(vscode, {
151+
command: `SET_DEFAULT_${tool_name}_CONFIGURATION`,
152+
configuration_id: null
153+
} as FrontendMessage)
154+
}
155+
156+
const handle_commit_instructions_change = (instructions: string) =>
157+
post_message(vscode, {
158+
command: 'UPDATE_COMMIT_MESSAGE_INSTRUCTIONS',
159+
instructions
160+
})
161+
162+
const handle_open_editor_settings = () =>
163+
post_message(vscode, { command: 'OPEN_EDITOR_SETTINGS' })
164+
70165
return {
71166
providers,
72167
set_providers,
@@ -78,6 +173,19 @@ export const use_settings_data = (vscode: any) => {
78173
set_edit_context_configs,
79174
intelligent_update_configs,
80175
set_intelligent_update_configs,
81-
commit_message_instructions
176+
commit_message_instructions,
177+
handle_reorder_providers,
178+
handle_add_provider,
179+
handle_delete_provider,
180+
handle_rename_provider,
181+
handle_change_api_key,
182+
handle_add_config,
183+
handle_reorder_configs,
184+
handle_edit_config,
185+
handle_delete_config,
186+
handle_set_default_config,
187+
handle_unset_default_config,
188+
handle_commit_instructions_change,
189+
handle_open_editor_settings
82190
}
83191
}

0 commit comments

Comments
 (0)