Skip to content

Commit e7aa727

Browse files
committed
unify placeholders
1 parent e47518c commit e7aa727

3 files changed

Lines changed: 18 additions & 6 deletions

File tree

packages/app/src/components/prompt-input-v2.tsx

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { DialogSelectModelUnpaidV2 } from "@/components/dialog-select-model-unpa
1212
import type { PromptInputProps } from "@/components/prompt-input/contracts"
1313
import { normalizePromptHistoryEntry, promptLength, type PromptHistoryComment } from "@/components/prompt-input/history"
1414
import { createPersistedPromptInputHistory } from "@/components/prompt-input/history-store"
15+
import { promptDesignPlaceholder, promptPlaceholder } from "@/components/prompt-input/placeholder"
1516
import { createPromptSubmit } from "@/components/prompt-input/submit"
1617
import { selectionFromLines, type SelectedLineRange, useFile } from "@/context/file"
1718
import { useComments } from "@/context/comments"
@@ -194,7 +195,16 @@ export function usePromptInputV2Controller(props: PromptInputV2ControllerProps):
194195
return text.trim().length === 0 && attachments().length === 0 && commentCount() === 0
195196
})
196197
const stopping = createMemo(() => working() && blank())
197-
const designPlaceholder = () => (mode() === "shell" ? "git status" : "Ask anything, / for commands, @ for context...")
198+
const placeholder = createMemo(() =>
199+
promptPlaceholder({
200+
mode: mode(),
201+
commentCount: commentCount(),
202+
example: mode() === "shell" ? "git status" : "",
203+
suggest: false,
204+
t: (key, params) => language.t(key as Parameters<typeof language.t>[0], params as never),
205+
}),
206+
)
207+
const designPlaceholder = () => promptDesignPlaceholder(mode(), placeholder())
198208

199209
const historyComments = () => {
200210
const byID = new Map(comments.all().map((item) => [`${item.file}\n${item.id}`, item] as const))

packages/app/src/components/prompt-input.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ import { PromptPopover, type AtOption, type SlashCommand } from "./prompt-input/
7878
import { PromptContextItems } from "./prompt-input/context-items"
7979
import { PromptImageAttachments } from "./prompt-input/image-attachments"
8080
import { PromptDragOverlay } from "./prompt-input/drag-overlay"
81-
import { promptPlaceholder } from "./prompt-input/placeholder"
81+
import { promptDesignPlaceholder, promptPlaceholder } from "./prompt-input/placeholder"
8282
import { createPromptInputTransientState } from "./prompt-input/transient-state"
8383
import { showToast } from "@/utils/toast"
8484
import { ImagePreview } from "@opencode-ai/ui/image-preview"
@@ -1450,10 +1450,7 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
14501450
(p) => p,
14511451
)
14521452

1453-
const designPlaceholder = () => {
1454-
if (store.mode === "shell") return placeholder()
1455-
return "Ask anything, / for commands, @ for context..."
1456-
}
1453+
const designPlaceholder = () => promptDesignPlaceholder(store.mode, placeholder())
14571454

14581455
const modelControlState = createMemo<ComposerModelControlState>(() => ({
14591456
loading: providersLoading(),

packages/app/src/components/prompt-input/placeholder.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,8 @@ export function promptPlaceholder(input: PromptPlaceholderInput) {
1313
if (!input.suggest) return input.t("prompt.placeholder.simple")
1414
return input.t("prompt.placeholder.normal", { example: input.example })
1515
}
16+
17+
export function promptDesignPlaceholder(mode: PromptPlaceholderInput["mode"], placeholder: string) {
18+
if (mode === "shell") return placeholder
19+
return "Ask anything, / for commands, @ for context..."
20+
}

0 commit comments

Comments
 (0)