Skip to content

Commit d0e3d0b

Browse files
committed
Support comma-separated line ranges and remove unused voice input disable prop
- allow dividing ranges with comma - remove is_voice_input_disabled ├── apps │ └── editor │ └── src │ ├── commands │ │ └── set-ranges-command.ts │ ├── i18n │ │ └── translations │ │ └── commands │ │ └── set-ranges.ts │ └── views │ └── prompt │ └── frontend │ └── Main │ └── MainView │ └── MainView.tsx └── packages └── ui └── src └── components └── editor └── common └── prompts ├── PromptField │ ├── PromptField.module.scss │ ├── PromptField.stories.tsx │ ├── PromptField.tsx │ ├── hooks │ │ ├── use-drag-drop.ts │ │ ├── use-dropdown.ts │ │ ├── use-ghost-text.ts │ │ ├── use-handlers │ │ │ ├── handle-copy.ts │ │ │ ├── handle-cut.ts │ │ │ ├── handle-input-change.ts │ │ │ ├── handle-input-click.ts │ │ │ ├── handle-key-down.ts │ │ │ ├── handle-paste.ts │ │ │ ├── handle-submit.ts │ │ │ ├── index.ts │ │ │ ├── types.ts │ │ │ ├── use-handlers.ts │ │ │ └── utils.ts │ │ └── use-keyboard-shortcuts.ts │ └── index.ts ├── Template │ ├── Template.module.scss │ ├── Template.tsx │ └── index.ts └── shared └── symbols ├── caret.ts ├── get-highlighted-text.tsx ├── index.ts ├── position-mapping.ts ├── prompt-symbols.module.scss ├── reconstruct-raw-value.ts └── use-symbol-deletion.ts
1 parent 06103a3 commit d0e3d0b

5 files changed

Lines changed: 29 additions & 28 deletions

File tree

‎apps/editor/src/commands/set-ranges-command.ts‎

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,10 @@ export const set_ranges_command = (
7979
validateInput: (value) => {
8080
if (value.trim() == '') return null
8181

82-
const parts = value.trim().split(/\s+/)
82+
const parts = value
83+
.trim()
84+
.split(/[\s,]+/)
85+
.filter(Boolean)
8386
const parsed_ranges: {
8487
start: number
8588
end: number
@@ -223,7 +226,11 @@ export const set_ranges_command = (
223226
}
224227

225228
if (new_ranges) {
226-
const formatted_range = new_ranges.trim().split(/\s+/).join(' ')
229+
const formatted_range = new_ranges
230+
.trim()
231+
.split(/[\s,]+/)
232+
.filter(Boolean)
233+
.join(' ')
227234

228235
if (save_location == 'file') {
229236
file_ranges[relative_path] = formatted_range

‎apps/editor/src/i18n/translations/commands/set-ranges.ts‎

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -54,22 +54,22 @@ export const translations = {
5454
bg: 'Диапазони'
5555
},
5656
'command.ranges.placeholder': {
57-
en: 'e.g., 100-300 400- -500 or empty to clear',
58-
pl: 'np. 100-300 400- -500 lub puste by wyczyścić',
59-
'zh-cn': '例如:100-300 400- -500,或留空以清除',
60-
ja: '例: 100-300 400- -500、または空にしてクリア',
61-
'zh-tw': '例如:100-300 400- -500,或留空以清除',
62-
de: 'z.B. 100-300 400- -500 oder leer lassen zum Löschen',
63-
es: 'ej., 100-300 400- -500 o vacío para borrar',
64-
fr: 'ex., 100-300 400- -500 ou vide pour effacer',
65-
'pt-br': 'ex., 100-300 400- -500 ou vazio para limpar',
66-
ru: 'напр. 100-300 400- -500 или пусто для очистки',
67-
ko: '예: 100-300 400- -500 또는 비워서 지우기',
68-
it: 'es., 100-300 400- -500 o vuoto per cancellare',
69-
tr: 'örn., 100-300 400- -500 veya temizlemek için boş bırakın',
70-
cs: 'např., 100-300 400- -500 nebo prázdné pro vymazání',
71-
hu: 'pl. 100-300 400- -500, vagy üres a törléshez',
72-
bg: 'напр., 100-300 400- -500 или празно за изчистване'
57+
en: 'e.g., 100-300, 400-, -500 or empty to clear',
58+
pl: 'np. 100-300, 400-, -500 lub puste by wyczyścić',
59+
'zh-cn': '例如:100-300, 400-, -500,或留空以清除',
60+
ja: '例: 100-300, 400-, -500、または空にしてクリア',
61+
'zh-tw': '例如:100-300, 400-, -500,或留空以清除',
62+
de: 'z.B. 100-300, 400-, -500 oder leer lassen zum Löschen',
63+
es: 'ej., 100-300, 400-, -500 o vacío para borrar',
64+
fr: 'ex., 100-300, 400-, -500 ou vide pour effacer',
65+
'pt-br': 'ex., 100-300, 400-, -500 ou vazio para limpar',
66+
ru: 'напр. 100-300, 400-, -500 или пусто для очистки',
67+
ko: '예: 100-300, 400-, -500 또는 비워서 지우기',
68+
it: 'es., 100-300, 400-, -500 o vuoto per cancellare',
69+
tr: 'örn., 100-300, 400-, -500 veya temizlemek için boş bırakın',
70+
cs: 'např., 100-300, 400-, -500 nebo prázdné pro vymazání',
71+
hu: 'pl. 100-300, 400-, -500, vagy üres a törléshez',
72+
bg: 'напр., 100-300, 400-, -500 или празно за изчистване'
7373
},
7474
'command.ranges.validation.invalid-format': {
7575
en: 'Invalid format in "{part}". Use formats like 100-300, 100-, -300.',

‎apps/editor/src/views/prompt/frontend/Main/MainView/MainView.tsx‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,6 @@ export const MainView: React.FC<Props> = (props) => {
369369
(props.target == TARGET.API &&
370370
props.api_configurations.length == 0)
371371
}
372-
// is_voice_input_disabled={props.api_configurations.length == 0}
373372
is_preview_disabled={
374373
(props.target == TARGET.WEB
375374
? props.web_prompt_type

‎packages/ui/src/components/editor/common/prompts/PromptField/PromptField.tsx‎

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,6 @@ export type PromptFieldProps = {
8989
voice_input_push_to_talk?: boolean
9090
prompt_token_count: number
9191
is_copy_only?: boolean
92-
is_voice_input_disabled?: boolean
9392
target: Target
9493
on_target_change: (target: Target) => void
9594
active_border_color?: 'blue' | 'purple'
@@ -375,8 +374,7 @@ export const PromptField: React.FC<PromptFieldProps> = (props) => {
375374
on_click: () => {
376375
props.on_recording_started()
377376
close_dropdown()
378-
},
379-
is_disabled: props.is_voice_input_disabled
377+
}
380378
}
381379
]
382380
: []),
@@ -412,8 +410,7 @@ export const PromptField: React.FC<PromptFieldProps> = (props) => {
412410
on_click: () => {
413411
props.on_recording_started()
414412
close_dropdown()
415-
},
416-
is_disabled: props.is_voice_input_disabled
413+
}
417414
}
418415
]
419416
: []),
@@ -742,7 +739,6 @@ export const PromptField: React.FC<PromptFieldProps> = (props) => {
742739
}}
743740
onMouseEnter={() => set_is_recording_hovered(true)}
744741
onMouseLeave={() => set_is_recording_hovered(false)}
745-
disabled={props.is_voice_input_disabled}
746742
/>
747743
) : (
748744
<button
@@ -825,7 +821,6 @@ export const PromptField: React.FC<PromptFieldProps> = (props) => {
825821
}}
826822
onMouseEnter={() => set_is_recording_hovered(true)}
827823
onMouseLeave={() => set_is_recording_hovered(false)}
828-
disabled={props.is_voice_input_disabled}
829824
/>
830825
) : (
831826
<>

‎packages/ui/src/components/editor/common/prompts/PromptField/hooks/use-handlers/handle-key-down.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,13 @@ export const create_handle_key_down = (
4949
e.preventDefault()
5050
if (props.is_recording) {
5151
props.on_recording_finished()
52-
} else if (!props.is_voice_input_disabled) {
52+
} else {
5353
props.on_recording_started()
5454
}
5555
}
5656

5757
const handle_space_key = (e: React.KeyboardEvent<HTMLDivElement>) => {
58-
if (!props.voice_input_push_to_talk || props.is_voice_input_disabled) {
58+
if (!props.voice_input_push_to_talk) {
5959
return false
6060
}
6161

0 commit comments

Comments
 (0)