feat: update custom status line prompt input (#938)

This commit is contained in:
jnjpng
2026-02-12 16:23:00 -08:00
committed by GitHub
parent 58002fb28a
commit 86a0fc9b1d
8 changed files with 151 additions and 55 deletions

View File

@@ -8,6 +8,7 @@
import { useCallback, useEffect, useRef, useState } from "react";
import {
type NormalizedStatusLineConfig,
resolvePromptChar,
resolveStatusLineConfig,
} from "../helpers/statusLineConfig";
import {
@@ -46,6 +47,7 @@ export interface StatusLineState {
executing: boolean;
lastError: string | null;
padding: number;
prompt: string;
}
function toPayloadInput(inputs: StatusLineInputs): StatusLinePayloadBuildInput {
@@ -77,6 +79,7 @@ export function useConfigurableStatusLine(
const [executing, setExecuting] = useState(false);
const [lastError, setLastError] = useState<string | null>(null);
const [padding, setPadding] = useState(0);
const [prompt, setPrompt] = useState(">");
const inputsRef = useRef(inputs);
const configRef = useRef<NormalizedStatusLineConfig | null>(null);
@@ -108,6 +111,9 @@ export function useConfigurableStatusLine(
const workingDirectory = inputsRef.current.currentDirectory;
const config = resolveStatusLineConfig(workingDirectory);
// Always resolve prompt, independent of whether a command is configured.
setPrompt(resolvePromptChar(workingDirectory));
if (!config) {
configRef.current = null;
// Abort any in-flight execution so stale results don't surface.
@@ -225,5 +231,5 @@ export function useConfigurableStatusLine(
currentDirectory,
]);
return { text, rightText, active, executing, lastError, padding };
return { text, rightText, active, executing, lastError, padding, prompt };
}