Skip to content

Commit 821cdb3

Browse files
committed
Refactor panel message handlers to dedicated files for managing configurations, retrieving collapsed states, and saving component collapsed states
1 parent 359881a commit 821cdb3

5 files changed

Lines changed: 83 additions & 48 deletions

File tree

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import {
2+
get_configurations_collapsed_state_key,
3+
get_presets_collapsed_state_key
4+
} from '@/constants/state-keys'
5+
import { PanelProvider } from '@/views/panel/backend/panel-provider'
6+
import { ApiMode, WebMode } from '@shared/types/modes'
7+
8+
export const handle_get_collapsed_states = (
9+
panel_provider: PanelProvider
10+
): void => {
11+
const WEB_MODES: WebMode[] = [
12+
'ask',
13+
'edit-context',
14+
'code-completions',
15+
'no-context'
16+
]
17+
const API_MODES: ApiMode[] = ['edit-context', 'code-completions']
18+
panel_provider.send_message({
19+
command: 'COLLAPSED_STATES',
20+
presets_collapsed_by_web_mode: Object.fromEntries(
21+
WEB_MODES.map((mode) => [
22+
mode,
23+
panel_provider.context.globalState.get<boolean>(
24+
get_presets_collapsed_state_key(mode),
25+
false
26+
)
27+
])
28+
),
29+
configurations_collapsed_by_api_mode: Object.fromEntries(
30+
API_MODES.map((mode) => [
31+
mode,
32+
panel_provider.context.globalState.get<boolean>(
33+
get_configurations_collapsed_state_key(mode),
34+
false
35+
)
36+
])
37+
)
38+
})
39+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import * as vscode from 'vscode'
2+
import { ManageConfigurationsMessage } from '@/views/panel/types/messages'
3+
4+
export const handle_manage_configurations = async (
5+
message: ManageConfigurationsMessage
6+
): Promise<void> => {
7+
const section =
8+
message.api_mode == 'edit-context' ? 'edit-context' : 'code-completions'
9+
await vscode.commands.executeCommand('codeWebChat.settings', section)
10+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import {
2+
get_configurations_collapsed_state_key,
3+
get_presets_collapsed_state_key
4+
} from '@/constants/state-keys'
5+
import { PanelProvider } from '@/views/panel/backend/panel-provider'
6+
import { SaveComponentCollapsedStateMessage } from '@/views/panel/types/messages'
7+
import { ApiMode, WebMode } from '@shared/types/modes'
8+
9+
export const handle_save_component_collapsed_state = async (
10+
panel_provider: PanelProvider,
11+
message: SaveComponentCollapsedStateMessage
12+
): Promise<void> => {
13+
if (message.component == 'presets') {
14+
await panel_provider.context.globalState.update(
15+
get_presets_collapsed_state_key(message.mode as WebMode),
16+
message.is_collapsed
17+
)
18+
} else if (message.component == 'configurations') {
19+
await panel_provider.context.globalState.update(
20+
get_configurations_collapsed_state_key(message.mode as ApiMode),
21+
message.is_collapsed
22+
)
23+
}
24+
}

‎packages/vscode/src/views/panel/backend/message-handlers/index.ts‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,6 @@ export * from './handle-intelligent-update-file-in-preview'
4343
export * from './handle-commit-changes'
4444
export * from './handle-accept-commit-message'
4545
export * from './handle-cancel-commit-message'
46+
export * from './handle-get-collapsed-states'
47+
export * from './handle-manage-configurations'
48+
export * from './handle-save-component-collapsed-state'

‎packages/vscode/src/views/panel/backend/panel-provider.ts‎

Lines changed: 7 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,10 @@ import {
5353
handle_accept_commit_message,
5454
handle_cancel_commit_message,
5555
handle_hash_sign_quick_pick,
56-
handle_proceed_with_commit
56+
handle_proceed_with_commit,
57+
handle_get_collapsed_states,
58+
handle_manage_configurations,
59+
handle_save_component_collapsed_state
5760
} from './message-handlers'
5861
import {
5962
API_EDIT_FORMAT_STATE_KEY,
@@ -549,55 +552,11 @@ export class PanelProvider implements vscode.WebviewViewProvider {
549552
} else if (message.command == 'CANCEL_COMMIT_MESSAGE') {
550553
await handle_cancel_commit_message(this)
551554
} else if (message.command == 'MANAGE_CONFIGURATIONS') {
552-
const section =
553-
message.api_mode == 'edit-context'
554-
? 'edit-context'
555-
: 'code-completions'
556-
await vscode.commands.executeCommand(
557-
'codeWebChat.settings',
558-
section
559-
)
555+
await handle_manage_configurations(message)
560556
} else if (message.command == 'GET_COLLAPSED_STATES') {
561-
const WEB_MODES: WebMode[] = [
562-
'ask',
563-
'edit-context',
564-
'code-completions',
565-
'no-context'
566-
]
567-
const API_MODES: ApiMode[] = ['edit-context', 'code-completions']
568-
this.send_message({
569-
command: 'COLLAPSED_STATES',
570-
presets_collapsed_by_web_mode: Object.fromEntries(
571-
WEB_MODES.map((mode) => [
572-
mode,
573-
this.context.globalState.get<boolean>(
574-
get_presets_collapsed_state_key(mode),
575-
false
576-
)
577-
])
578-
),
579-
configurations_collapsed_by_api_mode: Object.fromEntries(
580-
API_MODES.map((mode) => [
581-
mode,
582-
this.context.globalState.get<boolean>(
583-
get_configurations_collapsed_state_key(mode),
584-
false
585-
)
586-
])
587-
)
588-
})
557+
handle_get_collapsed_states(this)
589558
} else if (message.command == 'SAVE_COMPONENT_COLLAPSED_STATE') {
590-
if (message.component == 'presets') {
591-
await this.context.globalState.update(
592-
get_presets_collapsed_state_key(message.mode as WebMode),
593-
message.is_collapsed
594-
)
595-
} else if (message.component == 'configurations') {
596-
await this.context.globalState.update(
597-
get_configurations_collapsed_state_key(message.mode as ApiMode),
598-
message.is_collapsed
599-
)
600-
}
559+
await handle_save_component_collapsed_state(this, message)
601560
}
602561
} catch (error: any) {
603562
Logger.error({

0 commit comments

Comments
 (0)