chore: misc UI improvements (#317)
Co-authored-by: Letta <noreply@letta.com>
This commit is contained in:
@@ -5,16 +5,19 @@ import { colors } from "./colors.js";
|
||||
|
||||
interface ShimmerTextProps {
|
||||
color?: string;
|
||||
boldPrefix?: string;
|
||||
message: string;
|
||||
shimmerOffset: number;
|
||||
}
|
||||
|
||||
export const ShimmerText: React.FC<ShimmerTextProps> = ({
|
||||
color = colors.status.processing,
|
||||
boldPrefix,
|
||||
message,
|
||||
shimmerOffset,
|
||||
}) => {
|
||||
const fullText = `${message}…`;
|
||||
const fullText = `${boldPrefix ? `${boldPrefix} ` : ""}${message}…`;
|
||||
const prefixLength = boldPrefix ? boldPrefix.length + 1 : 0; // +1 for space
|
||||
|
||||
// Create the shimmer effect - simple 3-char highlight
|
||||
const shimmerText = fullText
|
||||
@@ -22,11 +25,14 @@ export const ShimmerText: React.FC<ShimmerTextProps> = ({
|
||||
.map((char, i) => {
|
||||
// Check if this character is within the 3-char shimmer window
|
||||
const isInShimmer = i >= shimmerOffset && i < shimmerOffset + 3;
|
||||
const isInPrefix = i < prefixLength;
|
||||
|
||||
if (isInShimmer) {
|
||||
return chalk.hex(colors.status.processingShimmer)(char);
|
||||
const styledChar = chalk.hex(colors.status.processingShimmer)(char);
|
||||
return isInPrefix ? chalk.bold(styledChar) : styledChar;
|
||||
}
|
||||
return chalk.hex(color)(char);
|
||||
const styledChar = chalk.hex(color)(char);
|
||||
return isInPrefix ? chalk.bold(styledChar) : styledChar;
|
||||
})
|
||||
.join("");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user