mirror of
https://github.com/claude-code-best/claude-code.git
synced 2026-06-15 12:55:51 +00:00
67 lines
1.3 KiB
TypeScript
67 lines
1.3 KiB
TypeScript
import React from 'react';
|
|
import { Box, Text } from '../index.js';
|
|
import { Spinner } from './Spinner.js';
|
|
|
|
type LoadingStateProps = {
|
|
/**
|
|
* The loading message to display next to the spinner.
|
|
*/
|
|
message: string;
|
|
|
|
/**
|
|
* Display the message in bold.
|
|
* @default false
|
|
*/
|
|
bold?: boolean;
|
|
|
|
/**
|
|
* Display the message in dimmed color.
|
|
* @default false
|
|
*/
|
|
dimColor?: boolean;
|
|
|
|
/**
|
|
* Optional subtitle displayed below the main message.
|
|
*/
|
|
subtitle?: string;
|
|
};
|
|
|
|
/**
|
|
* A spinner with loading message for async operations.
|
|
*
|
|
* @example
|
|
* // Basic loading
|
|
* <LoadingState message="Loading..." />
|
|
*
|
|
* @example
|
|
* // Bold loading message
|
|
* <LoadingState message="Loading sessions" bold />
|
|
*
|
|
* @example
|
|
* // With subtitle
|
|
* <LoadingState
|
|
* message="Loading sessions"
|
|
* bold
|
|
* subtitle="Fetching your Claude Code sessions..."
|
|
* />
|
|
*/
|
|
export function LoadingState({
|
|
message,
|
|
bold = false,
|
|
dimColor = false,
|
|
subtitle,
|
|
}: LoadingStateProps): React.ReactNode {
|
|
return (
|
|
<Box flexDirection="column">
|
|
<Box flexDirection="row">
|
|
<Spinner />
|
|
<Text bold={bold} dimColor={dimColor}>
|
|
{' '}
|
|
{message}
|
|
</Text>
|
|
</Box>
|
|
{subtitle && <Text dimColor>{subtitle}</Text>}
|
|
</Box>
|
|
);
|
|
}
|