Skip to content

Commit da44735

Browse files
committed
Implement selected preset count display for all groups in the Presets UI and quick pick menus
1 parent 599c8dc commit da44735

3 files changed

Lines changed: 47 additions & 9 deletions

File tree

‎packages/ui/src/components/editor/panel/Presets/Presets.tsx‎

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,21 @@ export const Presets: React.FC<Presets.Props> = (props) => {
9696
is_group: boolean
9797
}>()
9898

99+
const ungrouped_selected_count = (() => {
100+
let count = 0
101+
if (props.presets[0]?.chatbot !== undefined) {
102+
for (const p of props.presets) {
103+
if (!p.chatbot) {
104+
break
105+
}
106+
if (p.is_selected) {
107+
count++
108+
}
109+
}
110+
}
111+
return count
112+
})()
113+
99114
const pinned_presets = props.presets.filter((p) => p.is_pinned && p.chatbot)
100115

101116
const get_visible_presets = (presets: Presets.Preset[]): Presets.Preset[] => {
@@ -493,7 +508,11 @@ export const Presets: React.FC<Presets.Props> = (props) => {
493508
/>
494509
</div>
495510
<div className={styles.presets__item__left__text}>
496-
Ungrouped
511+
<span>Ungrouped</span>
512+
<span>
513+
{ungrouped_selected_count > 0 &&
514+
`${ungrouped_selected_count} selected`}
515+
</span>
497516
</div>
498517
</div>
499518
<div
@@ -602,6 +621,29 @@ export const Presets: React.FC<Presets.Props> = (props) => {
602621
const { chatbot, model } = preset
603622

604623
if (!chatbot) {
624+
const group_index = props.presets.findIndex(
625+
(p) => p.name === preset.name
626+
)
627+
628+
if (group_index !== -1) {
629+
let selected_count = 0
630+
for (
631+
let i = group_index + 1;
632+
i < props.presets.length;
633+
i++
634+
) {
635+
const child_preset = props.presets[i]
636+
if (!child_preset.chatbot) {
637+
break
638+
}
639+
if (child_preset.is_selected) {
640+
selected_count++
641+
}
642+
}
643+
if (selected_count > 0) {
644+
return `${selected_count} selected`
645+
}
646+
}
605647
return model || ''
606648
}
607649

‎packages/vscode/src/views/panel/backend/message-handlers/handle-send-prompt.ts‎

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -320,9 +320,7 @@ async function show_preset_quick_pick(params: {
320320
items.push({
321321
label: 'Ungrouped',
322322
group_name: 'Ungrouped',
323-
description: `${selected_count} selected preset${
324-
selected_count !== 1 ? 's' : ''
325-
}`
323+
description: `${selected_count} selected`
326324
})
327325
}
328326
}
@@ -344,9 +342,7 @@ async function show_preset_quick_pick(params: {
344342
? 'Group'
345343
: preset.name.replace(/ \(\d+\)$/, ''),
346344
group_name: preset.name,
347-
description: `${selected_presets_count} selected preset${
348-
selected_presets_count != 1 ? 's' : ''
349-
}`
345+
description: `${selected_presets_count} selected`
350346
})
351347
} else {
352348
// Preset

‎packages/vscode/src/views/panel/frontend/Main/MainView/components/Header/Header.tsx‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ export const Header: React.FC<Props> = (props) => {
9292
selected_value={props.web_mode}
9393
on_change={props.on_web_mode_change}
9494
max_width={dropdown_max_width}
95-
info="mode"
95+
info="prompt"
9696
/>
9797
)}
9898
{props.home_view_type == HOME_VIEW_TYPES.API && (
@@ -103,7 +103,7 @@ export const Header: React.FC<Props> = (props) => {
103103
selected_value={props.api_mode}
104104
on_change={props.on_api_mode_change}
105105
max_width={dropdown_max_width}
106-
info="mode"
106+
info="prompt"
107107
/>
108108
)}
109109
</div>

0 commit comments

Comments
 (0)